查看“Mysql upgrade”的源代码
←
Mysql upgrade
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
注意 从MySQL 8.0.16版本开始,MySQL服务器执行了以前由mysql_upgrade处理的升级任务。因此,mysql_upgrade不再需要,并且在该版本中已被弃用;预计在将来的MySQL版本中会删除该功能。由于mysql_upgrade不再执行升级任务,它无条件地以状态0退出。 每次升级MySQL时,都应执行mysql_upgrade,该工具检查与升级后的MySQL服务器的兼容性问题: *它升级mysql模式中的系统表,以便您可以利用可能已添加的新特权或能力。 *它升级了Performance Schema、INFORMATION_SCHEMA和sys模式。 *它检查用户模式。 如果mysql_upgrade发现某个表存在潜在的不兼容性,它会执行表检查,如果发现问题,则尝试表修复。 mysql_upgrade直接与MySQL服务器通信,发送执行升级所需的SQL语句。 注意: 在执行升级操作之前,应始终备份当前的MySQL安装。 某些升级不兼容性可能需要在升级MySQL安装和运行mysql_upgrade之前进行特殊处理。 使用以下方式运行mysql_upgrade: *确保服务器正在运行。 *调用mysql_upgrade来升级mysql模式中的系统表,并检查和修复其他模式中的表: mysql_upgrade [options] *停止服务器并重新启动,以使任何系统表更改生效。 如果要升级多个MySQL服务器实例,请为连接到各个目标服务器的连接参数调用mysql_upgrade。例如,在本地主机上的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套接字文件。 默认情况下,mysql_upgrade以MySQL的root用户身份运行。如果在运行mysql_upgrade时root密码已过期,则会显示一个消息提示您的密码已过期,并且mysql_upgrade因此而失败。为了纠正这个问题,重新设置root密码以取消过期状态,并再次运行mysql_upgrade。首先,以root身份连接到服务器: $> mysql -u root -p 输入密码:**** <- 在这里输入root密码 使用ALTER USER命令重置密码: mysql> ALTER USER USER() IDENTIFIED BY 'root-password'; 然后退出mysql并再次运行mysql_upgrade: $> mysql_upgrade [选项] 注意 如果使用disabled_storage_engines系统变量禁用某些存储引擎(例如MyISAM)运行服务器,则mysql_upgrade可能会失败并显示如下错误: mysql_upgrade: [ERROR] 3161: Storage engine MyISAM is disabled (Table creation is disallowed). 要解决此问题,请关闭disabled_storage_engines参数并重启服务器。然后应该能够成功运行mysql_upgrade。之后,再以原始值启动disabled_storage_engines参数来重启服务器。 除非使用--upgrade-system-tables选项调用,否则mysql_upgrade将根据需要处理所有用户架构中的所有表格。表格检查可能需要很长时间才能完成。在处理过程中,每个表格都被锁定,因此对其他会话不可用。检查和修复操作可能会耗费大量时间,尤其是对于大型表格。表格检查使用CHECK TABLE语句的FOR UPGRADE选项。 mysql_upgrade使用当前MySQL版本号标记所有检查和修复的表格。这样可以确保下次使用相同版本的服务器运行mysql_upgrade时,可以确定是否需要再次检查或修复某个表格。 mysql_upgrade将MySQL版本号保存在名为mysql_upgrade_info的文件中,该文件位于数据目录中。这用于快速检查是否对此发布的所有表格进行了检查,以便可以跳过表格检查。要忽略此文件并执行检查,请使用--force选项。 注意 mysql_upgrade_info文件已被弃用;预计将在以后的MySQL版本中删除该文件。 mysql_upgrade会检查mysql.user系统表中的行,并对其中插件列为空的行将该列设置为 'mysql_native_password'。 mysql_upgrade不会升级时区表格或帮助表格的内容。 除非使用--skip-sys-schema选项调用,否则mysql_upgrade将安装sys模式(如果尚未安装)并将其升级到当前版本。如果存在sys模式但没有版本视图,则会发生错误,因为假设不存在版本视图表示用户创建的模式: 存在sys模式但没有sys.version视图。如果 您有一个用户创建的sys模式,则必须将其重命名以使升级成功。 在这种情况下进行升级,请首先删除或重命名现有的sys模式。 mysql_upgrade支持以下选项,可以在命令行或选项文件的[mysql_upgrade]和[client]组中指定。 *--help 显示简短的帮助信息并退出。 *--bind-address=ip_address 在具有多个网络接口的计算机上,使用此选项选择用于连接到MySQL服务器的接口。 *--character-sets-dir=dir_name 字符集安装的目录。 *--compress, -C 如果可能的话,压缩客户端和服务器之间发送的所有信息。 从MySQL 8.0.18开始,此选项已被弃用。预计将在未来的MySQL版本中删除。请参阅“配置传统连接压缩”。 *--compression-algorithms=value 用于与服务器建立连接的允许的压缩算法。可用的算法与protocol_compression_algorithms系统变量相同。默认值为未压缩。 此选项在MySQL 8.0.18中添加。 *--debug[=debug_options], -# [debug_options] 编写调试日志。一个典型的debug_options字符串是d:t:o,file_name。默认值为d:t:O,/tmp/mysql_upgrade.trace。 *--debug-check 程序退出时打印一些调试信息。 *--debug-info, -T 程序退出时打印调试信息以及内存和CPU使用统计信息。 *--default-auth=plugin 关于要使用的客户端身份验证插件的提示。 *--default-character-set=charset_name 将charset_name作为默认字符集。 *--defaults-extra-file=file_name 在全局选项文件之后但(在Unix上)在用户选项文件之前读取此选项文件。如果文件不存在或无法访问,则会出错。如果file_name不是绝对路径名,则解释为相对于当前目录。 *--defaults-file=file_name 使用给定的选项文件。如果文件不存在或无法访问,将会出现错误。如果file_name不是绝对路径名,则相对于当前目录进行解释。 *--defaults-group-suffix=str 读取通常的选项组以及带有后缀str的通常名称的组。例如,mysql_upgrade通常会读取[client]和[mysql_upgrade]组。如果给定了此选项作为--defaults-group-suffix=_other,mysql_upgrade还将读取[client_other]和[mysql_upgrade_other]组。 *--force 忽略mysql_upgrade_info文件并强制执行,即使已经为当前版本的MySQL执行过mysql_upgrade。 *--get-server-public-key 向服务器请求用于基于RSA密钥对的密码交换所需的公钥。该选项适用于使用caching_sha2_password身份验证插件进行身份验证的客户端。对于该插件,除非被请求,否则服务器不会发送公钥。对于不使用基于RSA的密码交换(例如,客户端使用安全连接连接到服务器时),此选项将被忽略。 如果给定了--server-public-key-path=file_name并指定了有效的公钥文件,它将优先于--get-server-public-key。 *--host=host_name,-h host_name 连接到给定主机上的MySQL服务器。 *--login-path=name 在.mylogin.cn登录路径文件中读取指定登录路径的选项。 "登录路径"是包含指定要连接到的MySQL服务器和要进行身份验证的帐户的选项组。要创建或修改登录路径文件,请使用mysql_config_editor实用程序。 *--max-allowed-packet=value 客户端/服务器通信缓冲区的最大大小。默认值为24MB。最小和最大值分别为4KB和2GB。 *--net-buffer-length=value 客户端/服务器通信缓冲区的初始大小。默认值为1MB-1KB。最小和最大值分别为4KB和16MB。 *--no-defaults 不读取任何选项文件。如果由于从选项文件中读取未知选项导致程序启动失败,可以使用--no-defaults来防止读取它们。 例外情况是无论在哪种情况下都会读取.mylogin.cnf文件,如果它存在。这样即使使用--no-defaults也能以比在命令行中更安全的方式指定密码。要创建.mylogin.cnf,请使用mysql_config_editor实用程序。 *--password[=password],-p[password] 用于连接到MySQL服务器的账户的密码。密码值是可选的。如果不提供,则mysql_upgrade会提示输入密码。如果提供了密码,--password=或者-p后面的密码之间不能有空格。如果没有指定密码选项,则默认不发送密码。 在命令行上指定密码应被视为不安全。为避免在命令行上给出密码,请使用选项文件。 要明确指定没有密码,并且mysql_upgrade不需要提示输入密码,请使用--skip-password选项。 *--pipe, -W 在Windows上,使用命名管道与服务器建立连接。此选项仅适用于以启用named_pipe系统变量来支持命名管道连接的方式启动的服务器。此外,进行连接的用户必须是由named_pipe_full_access_group系统变量指定的Windows组的成员。 *--plugin-dir=dir_name 查找插件的目录。如果使用--default-auth选项指定了认证插件但mysql_upgrade无法找到它, *--port=port_num,-P port_num 对于TCP/IP连接,要使用的端口号。 *--print-defaults 打印程序名称和从选项文件获取的所有选项。 *--protocol={TCP|SOCKET|PIPE|MEMORY} 用于连接到服务器的传输协议。当其他连接参数通常导致使用不是您想要的协议时,此选项很有用。 *--server-public-key-path=file_name 包含服务器对于基于RSA密钥对的密码交换所需的公钥的客户端端副本的PEM格式文件的路径名。此选项适用于使用sha256_password或caching_sha2_password认证插件进行身份验证的客户端。对于不使用基于RSA的密码交换的不进行身份验证的账号,此选项会被忽略。如果客户端使用安全连接连接服务器,则同样会被忽略。 如果给出了--server-public-key-path=file_name并且指定了一个有效的公钥文件,则它将覆盖--get-server-public-key。 对于sha256_password,此选项仅在使用OpenSSL构建MySQL时适用。 *--shared-memory-base-name=name 在Windows上,连接到本地服务器的使用共享内存的连接所使用的共享内存名称。默认值为MYSQL。共享内存名称区分大小写。 此选项仅适用于以启用shared_memory系统变量来支持共享内存连接的方式启动的服务器。 *--skip-sys-schema 默认情况下,如果sys模式尚未安装,则mysql_upgrade会安装该模式,并升级到当前版本。--skip-sys-schema选项可以取消此行为。 *--socket=path, -S path 用于本地连接的Unix套接字文件(对于Windows,使用的是命名管道的名称)。 在Windows上,仅当服务器启用了named_pipe系统变量以支持命名管道连接时,此选项才适用。此外,进行连接的用户必须是由named_pipe_full_access_group系统变量指定的Windows组的成员。 *--ssl* 以 --ssl 开头的选项指定是否使用加密连接,并指示 SSL 密钥和证书的位置。请参阅“加密连接的命令选项”。 *--ssl-fips-mode={OFF|ON|STRICT} 控制是否在客户端启用 FIPS 模式。--ssl-fips-mode 选项与其他 --ssl-xxx 选项的区别在于它不用于建立加密连接,而是影响允许的加密操作。 允许使用以下 --ssl-fips-mode 值: OFF:禁用 FIPS 模式。 ON:启用 FIPS 模式。 STRICT:启用“严格”FIPS模式。 注意: 如果 OpenSSL FIPS Object Module 不可用,则 --ssl-fips-mode 的唯一允许值为 OFF。在这种情况下,将 --ssl-fips-mode 设置为 ON 或 STRICT 会导致客户端在启动时产生警告并在非 FIPS 模式下运行。 从 MySQL 8.0.34 开始,此选项已被弃用。预计在将来的 MySQL 版本中将删除该选项。 *--tls-ciphersuites=ciphersuite_list 加密连接的允许密码套件列表,使用 TLSv1.3。该值是一个由一个或多个以冒号分隔的密码套件名称组成的列表。此选项可命名的密码套件取决于编译 MySQL 使用的 SSL 库。 此选项在 MySQL 8.0.16 中添加。 *--tls-version=protocol_list 加密连接的允许 TLS 协议列表。该值是一个由一个或多个以逗号分隔的协议名称组成的列表。此选项可命名的协议取决于编译 MySQL 使用的 SSL 库。 *--upgrade-system-tables, -s 仅升级mysql模式中的系统表,不升级用户模式。 *--user=user_name, -u user_name 用于连接到服务器的MySQL帐户的用户名。默认用户名为root。 *--verbose 详细模式。打印程序操作的更多信息。 *--version-check, -k 检查 mysql_upgrade 连接的服务器版本,以验证它与 mysql_upgrade 构建的版本相同。如果不同,mysql_upgrade 将退出。此选项默认启用;要禁用此检查,请使用 --skip-version-check。 *--write-binlog 默认情况下,mysql_upgrade禁用了二进制日志记录。如果你希望将其操作写入到二进制日志中,请使用--write-binlog选项调用该程序。 当服务器启用全局事务标识符(GTIDs)时(gtid_mode=ON),请不要通过mysql_upgrade启用二进制日志记录。 *--zstd-compression-level=level 用于使用zstd压缩算法连接到服务器时的压缩级别。允许的级别范围是1到22,较大的值表示越高的压缩级别。默认的zstd压缩级别是3。压缩级别设置对不使用zstd压缩的连接没有影响。 此选项是在MySQL 8.0.18中添加的。
返回至“
Mysql upgrade
”。
导航菜单
个人工具
登录
命名空间
页面
讨论
大陆简体
查看
阅读
查看源代码
查看历史
更多
搜索
导航
首页
基础知识
正则表达式
Markdown
分布式
项目管理
系统集成项目管理基础知识
云原生
Docker
云原生安全
云原生词汇表
十二因素应用
Kubernetes
音频处理
音频合成
Edge-tts
CMS系统
Docsify
VuePress
Mediawiki
自动生成
Marp
CI/CD
GitLab
设计
颜色
平面设计
AI
数字人
操作系统
GNU/Linux
数据库
Mysql
工具
链入页面
相关更改
特殊页面
页面信息