10bet网址
MySQL 5.7参考手册
相关的文档10bet官方网站 下载本手册
PDF(美国高级主任)- 36.3 mb
PDF (A4)- 36.3 mb
手册页(TGZ)- 235.6 kb
手册页(Zip)- 347.2 kb
信息(Gzip)- 3.3 mb
信息(邮政编码)- 3.3 mb
本手册节选

MySQL 5.7参考手册/.../ mysql_upgrade -检查和升级MySQL表

4.4.7 mysql_upgrade检查和升级MySQL表

每次升级MySQL时,都应该执行mysql_upgrade,查找与升级后的MySQL服务器不兼容的地方:

  • 中的系统表进行升级mysql模式,以便您可以利用可能已添加的新权限或功能。

  • 它升级了性能模式和sys模式。

  • 它检查用户模式。

如果mysql_upgrade查找可能存在不兼容性的表,执行表检查,如果发现问题,则尝试修复表。如果桌子不能修理,请参见第2.11.12节,“重建或修复表或索引”用于手动表修复策略。

mysql_upgrade直接与MySQL服务器通信,向其发送执行升级所需的SQL语句。

重要的

在MySQL 5.7.11中,默认为——early-plugin-load对象的名称keyring_file插件库文件,导致该插件默认加载。在MySQL 5.7.12及更高版本中,默认为——early-plugin-loadValue为空;加载keyring_file插件时,必须显式指定该选项,并将其值命名为keyring_file插件库文件。

InnoDB表空间加密要求先加载要使用的keyring插件InnoDB初始化,也就是默认值的改变——early-plugin-loadValue引入了从5.7.11升级到5.7.12或更高版本的不兼容性。已加密的管理员InnoDB表空间必须采取显式的操作来确保继续加载keyring插件——early-plugin-load选项,用于命名插件库文件。有关其他信息,请参见章节6.4.4.1,“Keyring插件安装”

重要的

如果您从5.7.2之前的版本升级到MySQL 5.7.2或更高版本,将更改到mysql.user表需要一个特殊的步骤序列来执行升级mysql_upgrade.详细信息请参见章节2.11.3,“MySQL 5.7的变化”

请注意

在Windows上,你必须运行mysql_upgrade具有管理员权限。您可以以管理员身份运行命令提示符并运行该命令来完成此操作。否则可能导致升级无法正常执行。

谨慎

您应该始终备份当前的MySQL安装之前升级。看到第7.2节“数据库备份方法”

某些升级不兼容可能需要特殊处理之前升级MySQL的安装和运行mysql_upgrade.看到章节2.11,“升级MySQL”,以获取有关确定是否有此类不兼容性适用于您的安装以及如何处理它们的说明。

使用mysql_upgrade是这样的:

  1. 确保服务器正在运行。

  2. 调用mysql_upgrade中升级系统表mysqlSchema和检查和修复其他Schema中的表:

    mysql_upgrade [选项
  3. 停止服务器并重新启动,以便任何系统表更改生效。

如果您有多个MySQL服务器实例要升级,请调用mysql_upgrade具有适合连接到每个所需服务器的连接参数。例如,服务器运行在部件3306到3308的本地主机上,通过连接到相应的端口来升级每个服务器:

mysql_upgrade——protocol=tcp -P 3306 [other_optionsmysql_upgrade—protocol=tcp -P 3307 [other_optionsmysql_upgrade——protocol=tcp -P 3308 [other_options

对于Unix上的本地主机连接,使用——= tcp协议option强制使用TCP/IP连接,而不是Unix套接字文件。

默认情况下,mysql_upgrade以MySQL运行用户。如果运行时密码已过期mysql_upgrade,它会显示一条消息,告诉您的密码已过期mysql_upgrade结果失败了。若要纠正此错误,请重置密码来解除过期并运行mysql_upgrade一次。首先,连接到服务器

shell> mysql -u root -p Enter password: **** <- Enter root password here

使用以下命令重置密码改变用户

mysql> ALTER USER()根密码”;

然后退出mysql和运行mysql_upgrade再次:

Shell > mysql_upgrade [选项
请注意

方法运行服务器disabled_storage_engines设置为禁用某些存储引擎的系统变量(例如,MyISAM),mysql_upgrade可能会出现如下错误:

mysql_upgrade: [ERROR] 3161: Storage engine MyISAM is disabled(不允许创建表)。

要处理此问题,请使用disabled_storage_engines禁用。那你就能跑了mysql_upgrade成功。在此之后,使用disabled_storage_engines设置为其原始值。

除非使用——upgrade-system-tables选项,mysql_upgrade根据需要处理所有用户模式中的所有表。表检查可能需要很长时间才能完成。每个表都是锁定的,因此在处理它时其他会话不可用。检查和修复操作可能非常耗时,特别是对于大型表。表检查使用为升级选项检查表声明。有关此选项的详细信息,请参见第13.7.2.2节“检查表声明”

mysql_upgrade用当前MySQL版本号标记所有检查和修复的表。这可以确保您下次运行时mysql_upgrade对于相同版本的服务器,可以确定是否需要再次检查或修复给定的表。

mysql_upgrade将MySQL版本号保存在一个名为mysql_upgrade_info在data目录中。这用于快速检查该版本是否检查了所有表,以便可以跳过表检查。若要忽略此文件并执行检查,请使用——力选择。

mysql_upgrade检查mysql.user系统表行和,对于任何带有空值的行插件列,将该列设置为“mysql_native_password”“mysql_old_password”类型的哈希格式密码列值。

支持4.1之前的密码散列和mysql_old_password已经被移除了,所以呢mysql_upgrade集空插件“mysql_native_password”如果凭证使用与该插件兼容的散列格式。必须手动升级具有4.1之前密码哈希的行。有关帐户升级说明,请参见第6.4.1.3节“从4.1之前的密码哈希和mysql_old_password插件迁移”

mysql_upgrade不升级时区表或帮助表的内容。升级说明请参见章节5.1.13,“MySQL服务器时区支持”,章节5.1.14,“服务器端帮助支持”

除非使用——skip-sys-schema选项,mysql_upgrade安装sys模式,否则将其升级到当前版本。类时,将发生错误sysSchema存在但不存在版本视图,假设它的缺失表示用户创建的模式:

不存在sys模式。视图版本。如果用户创建了sys模式,则必须重命名该模式才能成功升级。

在这种情况下,若要升级,请删除或重命名现有的sys模式。

mysql_upgrade检查分区InnoDB使用通用分区处理程序创建并试图将其升级到的表InnoDB本地分区。(Bug #76734, Bug #20727344)你可以在mysql客户端使用修改表…升级分区SQL语句。

mysql_upgrade支持以下选项,这些选项可以在命令行上指定,也可以在(mysql_upgrade)而且(客户端)选项文件的组。有关MySQL程序使用的选项文件的信息,请参见第4.2.2.2节“使用选项文件”

表4.11 mysql_upgrade选项

选项名称 描述 介绍了
——bind-address 使用指定的网络接口连接MySQL服务器
——character-sets-dir 字符集的安装目录
——压缩 压缩客户端和服务器之间发送的所有信息
——调试 编写调试日志
——debug-check 当程序退出时打印调试信息
——debug-info 当程序退出时,打印调试信息、内存和CPU统计信息
——default-auth 使用的身份验证插件
——default-character-set 指定默认字符集
——defaults-extra-file 除了通常的选项文件外,还可以读取命名选项文件
——defaults-file 只读命名选项文件
——defaults-group-suffix 选项组后缀值
——力 强制执行,即使mysql_upgrade已经执行了当前MySQL版本
——帮助 显示帮助信息并退出
——主机 MySQL服务器所在的主机
——登录路径 从.mylogin.cnf读取登录路径选项
——max-allowed-packet 发送到服务器或从服务器接收的最大数据包长度
——net-buffer-length 用于TCP/IP和套接字通信的缓冲区大小
——已 读取无选项文件
——密码 连接到服务器时使用的密码
——管 使用命名管道连接到服务器(仅限Windows)
——plugin-dir 安装插件的目录
——港口 TCP/IP连接端口号
——print-defaults 打印默认选项
——协议 要使用的传输协议
——shared-memory-base-name 共享内存连接的共享内存名称(仅限Windows)
——skip-sys-schema 不安装或升级系统架构
——套接字 Unix套接字文件或Windows命名管道使用
——ssl 启用连接加密
——ssl-ca 包含受信任SSL证书颁发机构列表的文件
——ssl-capath 包含受信任的SSL证书颁发机构证书文件的目录
——ssl-cert 包含X.509证书的文件
——ssl cipher 用于连接加密的允许密码
——ssl-crl 包含证书撤销列表的文件
——ssl-crlpath 包含证书撤销列表文件的目录
——ssl密钥 包含X.509密钥的文件
——ssl-mode 到服务器的连接所需的安全状态 5.7.11
——ssl-verify-server-cert 根据服务器证书验证主机名
——tls版本 加密连接允许使用TLS协议 5.7.10
——upgrade-system-tables 只更新系统表,不更新用户模式
——用户 连接到服务器时使用的MySQL用户名
——详细 详细模式
——版本检查 检查正确的服务器版本
——write-binlog 将所有语句写入二进制日志