查看“Mysql upgrade - 检查并升级MySQL表”的源代码
←
Mysql upgrade - 检查并升级MySQL表
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
<blockquote>注意 从MySQL 8.0.16开始,MySQL服务器不再执行由mysql_upgrade处理的升级任务。因此,自该版本起,mysql_upgrade不再需要,并在该版本中被弃用;预计在未来的MySQL版本中将其移除。因为mysql_upgrade不再执行升级任务,所以它无条件地以状态码0退出。 </blockquote> 每次升级MySQL时,您都应该执行mysql_upgrade,它会查找与升级后的MySQL服务器的不兼容之处: * 它升级mysql模式中的系统表,以便您可以利用可能添加的新权限或功能。 * 它升级Performance Schema、INFORMATION_SCHEMA和sys模式。 * 它检查用户模式。 如果mysql_upgrade发现一个表可能存在不兼容性,它会执行表检查,如果发现问题,尝试进行表修复。 <br> mysql_upgrade直接与MySQL服务器通信,发送执行升级所需的SQL语句。 <blockquote>警告 在执行升级之前,您应该始终备份当前的MySQL安装。 </blockquote> 一些升级不兼容性可能需要在升级MySQL安装并运行mysql_upgrade之前进行特殊处理。 <br> 使用mysql_upgrade的方式如下: <ol style="list-style-type: decimal;"> <li><p>确保服务器正在运行。</p></li> <li><p>调用mysql_upgrade来升级mysql模式中的系统表并检查和修复其他模式中的表:</p> <pre> mysql_upgrade [options]</pre></li> <li><p>停止服务器并重新启动,以便任何系统表更改生效。</p></li></ol> <br> 如果您有多个要升级的MySQL服务器实例,使用适当的连接参数连接到每个所需服务器的实例。例如,对于在本地主机上运行的部分3306到3308的服务器,通过连接到适当的端口升级每个服务器: mysql_upgrade –protocol=tcp -P 3306 [other_options] mysql_upgrade –protocol=tcp -P 3307 [other_options] mysql_upgrade –protocol=tcp -P 3308 [other_options] 对于Unix主机上的本地主机连接,–protocol=tcp选项强制使用TCP/IP而不是Unix套接字文件。 <br> 默认情况下,mysql_upgrade以MySQL根用户身份运行。如果在运行mysql_upgrade时根密码已过期,它将显示一条消息,指出您的密码已过期,并且mysql_upgrade失败。要解决此问题,重置根密码以使其未过期,然后再次运行mysql_upgrade。首先,以root身份连接到服务器: <pre>$> mysql -u root -p 输入密码:**** <- 在这里输入root密码 使用ALTER USER重置密码: mysql> ALTER USER USER() IDENTIFIED BY 'root-password';</pre> <br> 然后退出mysql并再次运行mysql_upgrade: <pre>$> mysql_upgrade [options]</pre> <blockquote>注意 如果您以禁用某些存储引擎(例如MyISAM)的disabled_storage_engines系统变量设置为禁用的存储引擎运行服务器,mysql_upgrade可能会因错误而失败,如下所示: <pre> mysql_upgrade: [ERROR] 3161: Storage engine MyISAM is disabled (Table creation is disallowed).</pre> 要处理此问题,以禁用的存储引擎为禁用状态重新启动服务器。然后,您应该能够成功运行mysql_upgrade。之后,以disabled_storage_engines设置为其原始值重新启动服务器。 </blockquote> 除非使用–upgrade-system-tables选项调用,否则mysql_upgrade将处理所有用户模式中的所有表。表检查可能需要很长时间才能完成。每个表在处理过程中都被锁定,因此对其他会话不可用。检查和修复操作可能需要很长时间,特别是对于大型表。表检查使用CHECK TABLE语句的FOR UPGRADE选项。 <br> mysql_upgrade将所有检查和修复的表标记为当前MySQL版本号。这确保了下次使用相同版本的服务器运行mysql_upgrade时,可以确定是否需要再次检查或修复给定的表。 mysql_upgrade将MySQL版本号保存在名为mysql_upgrade_info的数据目录中的文件中。这将用于快速检查所有表是否已为此发布进行了检查,以便跳过表检查。要忽略此文件并无论如何执行检查,请使用–force选项。 <blockquote>注意 mysql_upgrade_info文件已被弃用;预计它将在未来的MySQL版本中被移除。 </blockquote> mysql_upgrade检查mysql.user系统表行,并为具有空插件列的任何行设置该列(如果凭据使用与该插件兼容的哈希格式),则将该列设置为’mysql_native_password’。 mysql_upgrade不会升级时区表或帮助表的内容。 <br> mysql_upgrade支持以下选项,这些选项可以在命令行或选项文件中的[mysql_upgrade]和[client]组中指定。 {| class="wikitable" |- ! 选项名称 ! 描述 |- | –bind-address | 使用指定的网络接口连接到MySQL服务器 |- | –character-sets-dir | 字符集安装的目录 |- | –compress | 压缩客户端和服务器之间发送的所有信息 |- | –compression-algorithms | 允许连接到服务器的压缩算法 |- | –debug | 写入调试日志 |- | –debug-check | 程序退出时打印调试信息 |- | –debug-info | 程序退出时打印调试信息、内存和CPU统计信息 |- | –default-auth | 要使用的认证插件 |- | –default-character-set | 指定默认字符集 |- | –defaults-extra-file | 除了通常的选项文件之外,读取命名选项文件 |- | –defaults-file | 只读取命名选项文件 |- | –defaults-group-suffix | 选项组后缀值 |- | –force | 即使已经为当前MySQL版本执行了mysql_upgrade,也强制执行 |- | –get-server-public-key | 从服务器请求RSA公钥 |- | –help | 显示帮助消息并退出 |- | –host | MySQL服务器所在的主机 |- | –login-path | 从.mylogin.cnf读取登录路径选项 |- | –max-allowed-packet | 发送到或从服务器的最大数据包长度 |- | –net-buffer-length | TCP/IP和套接字通信的缓冲区大小 |- | –no-defaults | 不读取任何选项文件 |- | –password | 连接到服务器时使用的密码 |- | –pipe | 使用命名管道(仅限Windows)连接到服务器 |- | –plugin-dir | 插件安装的目录 |- | –port | 用于连接的TCP/IP端口号 |- | –print-defaults | 打印默认选项 |- | –protocol | 要使用的传输协议 |- | –server-public-key-path | 文件路径名,包含RSA公钥 |- | –shared-memory-base-name | 共享内存连接的共享内存名称(仅限Windows) |- | –skip-sys-schema | 不安装或升级sys模式 |- | –socket | Unix套接字文件或Windows命名管道以使用 |- | –ssl-ca | 包含受信任的SSL证书颁发机构列表的文件 |- | –ssl-capath | 包含受信任的SSL证书颁发机构证书文件的目录 |- | –ssl-cert | 包含X.509证书的文件 |- | –ssl-cipher | 允许用于连接加密的密码套件 |- | –ssl-crl | 包含证书吊销列表的文件 |- | –ssl-crlpath | 包含证书吊销列表文件的目录 |- | –ssl-fips-mode | 是否在客户端启用FIPS模式 |- | –ssl-key | 包含X.509密钥的文件 |- | –ssl-mode | 连接到服务器的期望安全状态 |- | –ssl-session-data | 包含SSL会话数据的文件 |- | –ssl-session-data-continue-on-failed-reuse | 如果会话重用失败,是否建立连接 |- | –tls-ciphersuites | 允许用于加密连接的TLSv1.3密码套件 |- | –tls-version | 允许用于加密连接的TLS协议 |- | –upgrade-system-tables | 仅更新系统表,不更新用户模式 |- | –user | 连接到服务器时使用的MySQL用户名 |- | –verbose | 详细模式 |- | –version-check | 检查正确的服务器版本 |- | –write-binlog | 将所有语句写入二进制日志 |- | –zstd-compression-level | 对于使用zstd压缩的连接,压缩级别 |}
返回至“
Mysql upgrade - 检查并升级MySQL表
”。
导航菜单
个人工具
登录
命名空间
页面
讨论
大陆简体
查看
阅读
查看源代码
查看历史
更多
搜索
导航
首页
基础知识
正则表达式
Markdown
分布式
项目管理
系统集成项目管理基础知识
云原生
Docker
云原生安全
云原生词汇表
十二因素应用
Kubernetes
音频处理
音频合成
Edge-tts
CMS系统
Docsify
VuePress
Mediawiki
自动生成
Marp
CI/CD
GitLab
设计
颜色
平面设计
AI
数字人
操作系统
GNU/Linux
数据库
Mysql
工具
链入页面
相关更改
特殊页面
页面信息