安装或升级MySQL的命令行工具
安装或升级MySQL时使用本节中的程序。
comp_err—编译MySQL错误消息文件
comp_err创建 mysqld用来确定针对不同错误代码显示的错误消息的errmsg.sys
文件。在构建MySQL时, comp_err通常会自动运行。它根据MySQL源代码分发中的文本格式错误信息编译文件:errmsg.sys
从MySQL 8.0.19开始,错误信息来自目录中的
messages_to_error_log.txt
和messages_to_clients.txt
文件share
。有关定义错误消息的更多信息,请参阅这些文件以及文件中的注释
errmsg_readme.txt
。- 在MySQL 8.0.19之前,错误信息来自目录
errmsg-utf8.txt
中的sql/share
文件。
comp_err还产生mysqld_error.h
,mysqld_ername.h
和mysqld_errmsg.h
头文件。
像这样调用comp_err:
shell>comp_err [options]
comp_err支持以下选项。
--help
,-?
显示帮助消息并退出。
--charset=dir_name
,-C dir_name
字符集目录。默认值为
../sql/share/charsets
。--debug=debug_options
,-#debug_options
编写调试日志。典型的
debug_options
字符串是。默认值为。d:t:O,file_name
d:t:O,/tmp/comp_err.trace
--debug-info
,-T
程序退出时,打印一些调试信息。
--errmsg-file=file_name
,-H file_name
错误消息文件的名称。默认值为
mysqld_errmsg.h
。该选项是在MySQL 8.0.18中添加的。--header-file=file_name
,-H file_name
错误头文件的名称。默认值为
mysqld_error.h
。--in-file=file_name
,-F file_name
输入文件的名称。默认值为
../share/errmsg-utf8.txt
。该选项已在MySQL 8.0.19中删除,并由
--in-file-errlog
和--in-file-toclient
选项代替。--in-file-errlog=file_name
,-e file_name
输入文件的名称,该文件定义了要写入错误日志的错误消息。默认值为
../share/messages_to_error_log.txt
。该选项是在MySQL 8.0.19中添加的。
--in-file-toclient=file_name
,-c file_name
输入文件的名称,该文件定义了要写入客户端的错误消息。默认值为
../share/messages_to_clients.txt
。该选项是在MySQL 8.0.19中添加的。
--name-file=file_name
,-N file_name
错误名称文件的名称。默认值为
mysqld_ername.h
。--out-dir=dir_name
,-D dir_name
输出基本目录的名称。默认值为
../sql/share/
。--out-file=file_name
,-O file_name
输出文件的名称。默认值为
errmsg.sys
。--version
,-V
显示版本信息并退出。
mysql_secure_installation-改善MySQL安装安全性
该程序使您可以通过以下方式提高MySQL安装的安全性:
- 您可以为
root
帐户设置密码。 - 您可以删除
root
可从本地主机外部访问的帐户。 - 您可以删除匿名用户帐户。
- 您可以删除
test
数据库(默认情况下,所有用户,甚至匿名用户都可以访问该数据库)和特权,该特权允许任何人访问名称以开头的数据库test_
。
mysql_secure_installation可帮助您实现类似于“保护初始MySQL帐户”中所述的安全建议。
正常用法是连接到本地MySQL服务器。调用不带参数的mysql_secure_installation:
shell>mysql_secure_installation
当执行时,mysql_secure_installation提示您确定要执行的动作。
该validate_password
组件可用于密码强度检查。如果未安装该插件,则mysql_secure_installation提示用户是否安装它。启用后,将使用该插件检查以后输入的所有密码。
大多数常用的MySQL客户端选项(例如--host
和)--port
都可以在命令行和选项文件中使用。例如,要使用端口3307通过IPv6连接到本地服务器,请使用以下命令:
shell>mysql_secure_installation --host=::1 --port=3307
mysql_secure_installation支持以下选项,可以在命令行或选项文件的[mysql_secure_installation]
和[client]
组中指定这些选项。有关MySQL程序使用的选项文件的信息,请参见“使用选项文件”。
--help
,-?
显示帮助消息并退出。
--defaults-extra-file=file_name
在全局选项文件之后但在用户选项文件之前(在Unix上)读取此选项文件。如果该文件不存在或无法访问,则发生错误。
file_name
如果给出为相对路径名而不是完整路径名,则相对于当前目录解释。有关此选项和其他选项文件选项的更多信息,请参见“影响选项文件处理的命令行选项”。
--defaults-file=file_name
仅使用给定的选项文件。如果该文件不存在或无法访问,则发生错误。
file_name
如果给出为相对路径名而不是完整路径名,则相对于当前目录解释。有关此选项和其他选项文件选项的更多信息,请参见“影响选项文件处理的命令行选项”。
--defaults-group-suffix=str
不仅阅读常规选项组,而且阅读具有常规名称和后缀的组
str
。例如,mysql_secure_installation通常读取[client]
和[mysql_secure_installation]
组。如果--defaults-group-suffix=_other
给出了该选项,则mysql_secure_installation也会读取[client_other]
和[mysql_secure_installation_other]
组。有关此选项和其他选项文件选项的更多信息,请参见“影响选项文件处理的命令行选项”。
--host=host_name
,-h host_name
连接到给定主机上的MySQL服务器。
--no-defaults
不要读取任何选项文件。如果由于从选项文件中读取未知选项而导致程序启动失败,
--no-defaults
则可以使用该选项来防止读取它们。唯一的例外是,
.mylogin.cnf
在所有情况下都会读取该文件(如果存在)。这样,即使--no-defaults
使用密码,也可以通过比命令行更安全的方式指定密码。(.mylogin.cnf
由mysql_config_editor实用程序创建。请参见“mysql_config_editor-MySQL配置实用程序”。)有关此选项和其他选项文件选项的更多信息,请参见“影响选项文件处理的命令行选项”。
--password=password
,-p password
此选项被接受但被忽略。无论是否使用此选项,mysql_secure_installation总是提示用户输入密码。
--port=port_num
,-P port_num
对于TCP / IP连接,使用的端口号。
--print-defaults
打印程序名称及其从选项文件中获取的所有选项。
有关此选项和其他选项文件选项的更多信息,请参见“影响选项文件处理的命令行选项”。
--protocol={TCP|SOCKET|PIPE|MEMORY}
用于连接到服务器的连接协议。当其他连接参数通常导致使用您想要的协议以外的协议时,此功能很有用。有关允许值的详细信息,请参见“使用命令选项连接到MySQL服务器”。
--socket=path
,-S path
对于与的连接
localhost
,要使用的Unix套接字文件,或者在Windows上,要使用的命名管道的名称。在Windows上,仅当在
named_pipe
启用了支持命名管道连接的系统变量的情况下启动服务器时,此选项才适用。此外,该连接必须是named_pipe_full_access_group
系统变量指定的Windows组的成员。--ssl*
以开头的选项
--ssl
指定是否使用SSL连接到服务器,并指示在何处查找SSL密钥和证书。请参阅加密连接的命令选项。--ssl-fips-mode={OFF|ON|STRICT}
控制是否在客户端上启用FIPS模式。该
--ssl-fips-mode
选项与其他选项的不同之处在于,该选项不用于建立加密连接,而是影响允许的加密操作。请参见“ FIPS支持”。--ssl-xxx
这些
--ssl-fips-mode
值是允许的:OFF
:禁用FIPS模式。ON
:启用FIPS模式。STRICT
:启用“严格” FIPS模式。
注意
如果OpenSSL的FIPS对象模块不可用时,对于唯一的允许值
--ssl-fips-mode
是OFF
。在这种情况下,设置--ssl-fips-mode
为ON
或STRICT
导致客户端在启动时发出警告并以非FIPS模式运行。--tls-ciphersuites=ciphersuite_list
使用TLSv1.3的加密连接的允许密码套件。该值是一个或多个以冒号分隔的密码套件名称的列表。可以为此选项命名的密码套件取决于用于编译MySQL的SSL库。有关详细信息,请参见“加密的连接TLS协议和密码”。
该选项是在MySQL 8.0.16中添加的。
--tls-version=protocol_list
加密连接允许的TLS协议。该值是一个或多个逗号分隔的协议名称的列表。可以为此选项命名的协议取决于用于编译MySQL的SSL库。有关详细信息,请参见“加密的连接TLS协议和密码”。
--use-default
非交互执行。此选项可用于无人参与的安装操作。
--user=user_name
,-u user_name
用于连接到服务器的MySQL帐户的用户名。
mysql_ssl_rsa_setup-创建SSL / RSA文件
如果缺少这些文件,此程序将创建SSL证书和密钥文件以及RSA密钥对文件,以支持使用SSL进行安全连接以及使用RSA通过未加密的连接进行安全密码交换。如果现有的SSL文件已过期,则mysql_ssl_rsa_setup也可用于创建新的SSL文件。
注意mysql_ssl_rsa_setup使用openssl命令,因此它的使用取决于在计算机上安装了OpenSSL。
对于使用OpenSSL编译的MySQL发行版,生成SSL和RSA文件的另一种方法是让服务器自动生成它们。请参见“创建SSL和RSA证书和密钥”。
重要mysql_ssl_rsa_setup通过简化生成所需文件的方式来降低使用SSL的障碍。但是,由 mysql_ssl_rsa_setup生成的证书是自签名的,并不是很安全。获得使用 mysql_ssl_rsa_setup创建的文件的经验之后,请考虑从注册的证书颁发机构获取CA证书。
像这样调用mysql_ssl_rsa_setup:
shell>mysql_ssl_rsa_setup [options]
典型的选项是--datadir
指定创建文件的位置,并--verbose
参见mysql_ssl_rsa_setup执行的openssl命令。
mysql_ssl_rsa_setup尝试使用一组默认的文件名来创建SSL和RSA文件。其工作方式如下:
- mysql_ssl_rsa_setup在环境变量指定的位置检查openssl二进制文件
PATH
。如果找不到 openssl,则mysql_ssl_rsa_setup不执行任何操作。如果存在 openssl,则mysql_ssl_rsa_setup在该--datadir
选项指定的MySQL数据目录中查找默认的SSL和RSA文件,如果--datadir
未提供该选项,则在已编译的数据目录中查找。 mysql_ssl_rsa_setup在数据目录中检查具有以下名称的SSL文件:
ca.pem server-cert.pem server-key.pem
如果存在任何这些文件,则mysql_ssl_rsa_setup不创建SSL文件。否则,它将调用openssl来创建它们,以及一些其他文件:
ca.pem Self-signed CA certificate ca-key.pem CA private key server-cert.pem Server certificate server-key.pem Server private key client-cert.pem Client certificate client-key.pem Client private key
这些文件使用SSL启用安全的客户端连接。请参见“配置MySQL以使用加密连接”。
mysql_ssl_rsa_setup在数据目录中检查具有以下名称的RSA文件:
private_key.pem Private member of private/public key pair public_key.pem Public member of private/public key pair
- 如果存在这些文件中的任何一个,则mysql_ssl_rsa_setup不创建RSA文件。否则,它将调用openssl创建它们。这些文件可通过RSA
sha256_password
或caching_sha2_password
插件身份验证的帐户,通过未加密的连接使用RSA进行安全的密码交换;请参见“ SHA-256可插拔身份验证”和“缓存SHA-2可插拔身份验证”。
有关由mysql_ssl_rsa_setup创建的文件的特征的信息,请参见“创建SSL和RSA证书和密钥”。
在启动时,如果未(除以外)未提供任何明确的SSL选项,则MySQL服务器会自动使用mysql_ssl_rsa_setup创建的SSL文件来启用SSL 。如果你喜欢明确指定文件,调用与客户,以及在启动选项来命名,和文件,分别。--ssl
--ssl-cipher
--ssl-c
--ssl-cert
--ssl-key
ca.pem
server-cert.pem
server-key.pem
如果未给出显式的RSA选项,服务器还将自动使用mysql_ssl_rsa_setup创建的RSA文件来启用RSA。
如果服务器启用了SSL,则客户端默认使用SSL进行连接。要明确指定证书和密钥文件,使用--ssl-c
,--ssl-cert
和--ssl-key
选项来命名ca.pem
,client-cert.pem
和client-key.pem
分别文件。但是,可能首先需要进行一些附加的客户端设置,因为mysql_ssl_rsa_setup默认情况下会在数据目录中创建这些文件。数据目录的权限通常仅允许访问运行MySQL服务器的系统帐户,因此客户端程序无法使用此处的文件。要使文件可用,请将它们复制到可读的目录(但不能客户可写):
对于本地客户端,可以使用MySQL安装目录。例如,如果数据目录是安装目录的子目录,而您的当前位置是数据目录,则可以像这样复制文件:
cp ca.pem client-cert.pem client-key.pem ..
- 对于远程客户端,请使用安全通道分发文件,以确保在传输过程中不会对其进行篡改。
如果用于MySQL安装的SSL文件已过期,则可以使用mysql_ssl_rsa_setup创建新文件:
- 停止服务器。
- 重命名或删除现有的SSL文件。您不妨先备份它们。(RSA文件不会过期,因此您无需删除它们。mysql_ssl_rsa_setup将看到它们存在并且不会覆盖它们。)
- 使用选项运行mysql_ssl_rsa_setup
--datadir
以指定在何处创建新文件。 - 重新启动服务器。
mysql_ssl_rsa_setup支持以下命令行选项,可以在命令行或选项文件的[mysql_ssl_rsa_setup]
和[mysqld]
组中指定。有关MySQL程序使用的选项文件的信息,请参见“使用选项文件”。
表4.9 mysql_ssl_rsa_setup选项
选项名称 | 描述 |
---|---|
--datadir | 数据目录的路径 |
-救命 | 显示帮助信息并退出 |
-后缀 | X.509证书通用名称属性的后缀 |
--uid | 用于文件权限的有效用户名 |
-详细 | 详细模式 |
-版 | 显示版本信息并退出 |
--help
,?
显示帮助消息并退出。
--datadir=dir_name
mysql_ssl_rsa_setup应该检查默认SSL和RSA文件的目录路径,如果缺少这些文件,应该在其中创建文件。默认值为内置数据目录。
--suffix=str
X.509证书中“公用名”属性的后缀。后缀值限制为17个字符。默认值基于MySQL版本号。
--uid=name
,-v
应该是任何已创建文件的所有者的用户名。该值是用户名,而不是数字用户ID。在没有此选项的情况下,由mysql_ssl_rsa_setup创建的文件由执行它的用户拥有。仅当您
root
在支持chown()
系统调用的系统上执行程序时,此选项才有效。--verbose
,-v
详细模式。产生有关程序功能的更多输出。例如,该程序显示其运行的openssl命令,并生成输出以指示由于某些默认文件已存在而跳过SSL或RSA文件的创建。
--version
,-V
显示版本信息并退出。
mysql_tzinfo_to_sql-加载时区表
该mysql_tzinfo_to_sql程序加载的时区表mysql
的数据库。它在具有 zoneinfo数据库(描述时区的文件集)的系统上使用。此类系统的示例是Linux,FreeBSD,Solaris和macOS。这些文件的一个可能位置是/usr/share/zoneinfo
目录(/usr/share/lib/zoneinfo
在Solaris上)。如果您的系统没有zoneinfo数据库,则可以使用“ MySQL服务器时区支持”中所述的可下载软件包。
mysql_tzinfo_to_sql可以通过几种方式调用:
shell>mysql_tzinfo_to_sql tz_dir shell>mysql_tzinfo_to_sql tz_file tz_name shell>mysql_tzinfo_to_sql --leap tz_file
对于第一种调用语法,请将zoneinfo目录路径名传递给mysql_tzinfo_to_sql并将输出发送到mysql程序。例如:
shell>mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql
mysql_tzinfo_to_sql读取系统的时区文件并从中生成SQL语句。mysql处理这些语句以加载时区表。
第二种语法使mysql_tzinfo_to_sql加载tz_file
与时区名称相对应的单个时区文件tz_name
:
shell>mysql_tzinfo_to_sql tz_file tz_name | mysql -u root mysql
如果您的时区需要计算leap秒,请使用第三种语法调用mysql_tzinfo_to_sql,该语法将初始化the秒信息。tz_file
是您的时区文件的名称:
shell>mysql_tzinfo_to_sql --leap tz_file | mysql -u root mysql
运行mysql_tzinfo_to_sql后,最好重新启动服务器,以使其不再继续使用任何以前缓存的时区数据。
mysql_upgrade—检查和升级MySQL表
注意从MySQL 8.0.16开始,MySQL服务器执行以前由mysql_upgrade处理的升级任务(有关详细信息,请参见“ MySQL升级过程将进行哪些升级”)。因此,从该版本开始,不再需要mysql_upgrade并已弃用,并将在以后的MySQL版本中将其删除。由于mysql_upgrade不再执行升级任务,因此它无条件退出,状态为0。
每次升级MySQL时,都应执行mysql_upgrade,以查找与已升级的MySQL服务器不兼容的情况:
- 它将升级
mysql
架构中的系统表,以便您可以利用可能已添加的新特权或功能。 - 它将升级性能架构
INFORMATION_SCHEMA
,和sys
架构。 - 它检查用户架构。
如果mysql_upgrade发现表可能不兼容,它将执行表检查,如果发现问题,则尝试表修复。如果表无法修复,请以获取手动表修复策略。
mysql_upgrade直接与MySQL服务器通信,向其发送执行升级所需的SQL语句。
警告执行升级之前,应始终备份当前的MySQL安装。请参见“数据库备份方法”。
在升级MySQL安装并运行mysql_upgrade之前,某些升级不兼容性可能需要特殊处理。请参见“升级MySQL”,以获取有关确定是否存在此类不兼容性以及如何处理它们的说明。
像这样使用mysql_upgrade:
- 确保服务器正在运行。
调用mysql_upgrade升级
mysql
模式中的系统表,并检查和修复其他模式中的表:shell>
mysql_upgrade [options]- 停止服务器并重新启动它,以便任何系统表更改均生效。
如果要升级多个MySQL服务器实例,请使用适合于连接到每个所需服务器的连接参数调用mysql_upgrade。例如,对于在3306至3308部分的本地主机上运行的服务器,通过连接到适当的端口来升级它们中的每一个:
shell>mysql_upgrade --protocol=tcp -P 3306 [other_options] shell>mysql_upgrade --protocol=tcp -P 3307 [other_options] shell>mysql_upgrade --protocol=tcp -P 3308 [other_options]
对于Unix上的本地主机连接,该--protocol=tcp
选项强制使用TCP / IP而不是Unix套接字文件进行连接。
默认情况下,mysql_upgrade以MySQL root
用户身份运行。如果在root
运行mysql_upgrade时密码已过期,则会显示一条消息,提示您密码已过期,并且mysql_upgrade失败。要解决此问题,请重置root
密码以使其失效,然后再次运行mysql_upgrade。首先,以以下方式连接到服务器root
:
shell>mysql -u root -p Enter password: **** <- enter root password here
使用ALTER USER
以下命令重置密码:
mysql>ALTER USER USER()IDENTIFIED BY 'root-password';
然后退出mysql并再次运行mysql_upgrade:
shell>mysql_upgrade [options]
注意如果您在
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会根据需要处理所有用户模式中的所有表。表检查可能需要很长时间才能完成。每个表都被锁定,因此在处理它时其他会话无法使用。检查和修复操作可能很耗时,特别是对于大桌子。表检查使用语句的FOR UPGRADE
选项CHECK TABLE
。有关此选项的含义的详细信息,请参见“ CHECK TABLE语句”。
mysql_upgrade用当前的MySQL版本号标记所有检查和修复的表。这样可以确保下次使用相同版本的服务器运行 mysql_upgrade时,可以确定是否需要再次检查或修复给定的表。
mysql_upgrade将MySQL版本号保存mysql_upgrade_info
在数据目录中命名的文件中。这用于快速检查是否已为此发行版检查所有表,以便可以跳过表检查。要忽略此文件并执行检查,请使用此--force
选项。
注意该
mysql_upgrade_info
文件已弃用,并将在将来的MySQL版本中删除。
mysql_upgrade检查mysql.user
系统表的行,对于任何具有空plugin
列的行,将其设置为'mysql_native_password'
如果凭据使用与该插件兼容的哈希格式。具有4.1之前的密码哈希值的行必须手动升级。
mysql_upgrade不会升级时区表或帮助表的内容。有关升级说明,请参见“ MySQL服务器时区支持”和“服务器端帮助支持”。
除非使用该--skip-sys-schem
选项调用,否则mysql_upgrade将安装该sys
模式(如果未安装该模式),否则将其升级到当前版本。如果sys
存在一个架构但没有version
视图,那么会发生错误,并假设该架构的缺失表示用户创建的架构:
A sys schema exists with no sys.version view. If you have a user created sys schema, this must be renamed for the upgrade to succeed.
在这种情况下,要进行升级,请先删除或重命名现有sys
架构。
mysql_upgrade支持以下选项,可以在命令行或选项文件的[mysql_upgrade]
和[client]
组中指定这些选项。有关MySQL程序使用的选项文件的信息,请参见“使用选项文件”。
表4.10 mysql_upgrade选项
选项名称 | 描述 | 介绍了 | 不推荐使用 |
---|---|---|---|
--bind-address | 使用指定的网络接口连接到MySQL Server | ||
--character-sets-dir | 字符集的安装目录 | ||
-压缩 | 压缩客户端和服务器之间发送的所有信息 | 8.0.18 | |
-压缩算法 | 用于连接服务器的允许压缩算法 | 8.0.18 | |
-调试 | 编写调试日志 | ||
-调试检查 | 程序退出时打印调试信息 | ||
-调试信息 | 程序退出时打印调试信息,内存和CPU统计信息 | ||
--default-auth | 身份验证插件使用 | ||
--default-character-set | 指定默认字符集 | ||
--defaults-extra-file | 除了通常的选项文件,还读取命名的选项文件 | ||
--defaults-file | 只读命名的选项文件 | ||
--defaults-group-suffix | 选项组后缀值 | ||
-力 | 即使已针对当前MySQL版本执行了mysql_upgrade,也强制执行 | ||
--get-server-public-key | 从服务器请求RSA公钥 | ||
-救命 | 显示帮助信息并退出 | ||
-主办 | MySQL服务器所在的主机 | ||
-登录路径 | 从.mylogin.cnf中读取登录路径选项 | ||
--max-allowed-packet | 发送到服务器或从服务器接收的最大数据包长度 | ||
--net-buffer-length | TCP / IP和套接字通信的缓冲区大小 | ||
-无默认值 | 不读取选项文件 | ||
-密码 | 连接服务器时使用的密码 | ||
-管 | 使用命名管道连接到服务器(仅Windows) | ||
--plugin-dir | 安装插件的目录 | ||
-港口 | 用于连接的TCP / IP端口号 | ||
--print-defaults | 打印默认选项 | ||
-协议 | 使用的连接协议 | ||
--server-public-key-path | 包含RSA公钥的文件的路径名 | ||
--shared-memory-base-name | 用于共享内存连接的共享内存的名称 | ||
--skip-sys-schem | 不要安装或升级sys模式 | ||
-插座 | Unix套接字文件或Windows命名管道使用 | ||
--ssl-c | 包含受信任的SSL证书颁发机构列表的文件 | ||
--ssl-capath | 包含受信任的SSL证书颁发机构证书文件的目录 | ||
--ssl-cert | 包含X.509证书的文件 | ||
--ssl-cipher | 连接加密的允许密码 | ||
--ssl-crl | 包含证书吊销列表的文件 | ||
--ssl-crlpath | 包含证书吊销列表文件的目录 | ||
--ssl-fips-mode | 是否在客户端启用FIPS模式 | ||
--ssl键 | 包含X.509密钥的文件 | ||
--ssl模式 | 与服务器连接的所需安全状态 | ||
--tls-ciphersuites | 允许的TLSv1.3密码套件用于加密连接 | 8.0.16 | |
--tls-version | 允许的TLS协议进行加密连接 | ||
--upgrade-system-tables | 仅更新系统表,而不更新用户架构 | ||
-用户 | 连接服务器时要使用的MySQL用户名 | ||
-详细 | 详细模式 | ||
-版本检查 | 检查服务器版本是否正确 | ||
--write-binlog | 将所有语句写入二进制日志 | ||
--zstd-压缩级别 | 与使用zstd压缩的服务器的连接的压缩级别 | 8.0.18 |
--help
显示简短帮助消息并退出。
--bind-address=ip_address
在具有多个网络接口的计算机上,使用此选项选择用于连接到MySQL服务器的接口。
--character-sets-dir=dir_name
字符集的安装目录。请参见“字符集配置”。
--compress
,-C
如果可能,压缩客户端和服务器之间发送的所有信息。
从MySQL 8.0.18开始,不推荐使用此选项。它将在将来的MySQL版本中删除。请参阅旧版连接压缩配置。
--compression-algorithms=value
用于连接到服务器的允许的压缩算法。可用算法与
protocol_compression_algorithms
系统变量相同。默认值为uncompressed
。该选项是在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
有关
caching_sha2_password
插件的信息,请参见“缓存SHA-2可插拔身份验证”。--host=host_name
,-h host_name
连接到给定主机上的MySQL服务器。
--login-path=name
从
.mylogin.cnf
登录路径文件中的命名登录路径读取选项。阿“登录路径”是含有指定要连接到哪个MySQL服务器和选项哪个帐户作为认证选项组。要创建或修改登录路径文件,请使用mysql_config_editor实用程序。请参见“mysql_config_editor-MySQL配置实用程序”。有关此选项和其他选项文件选项的更多信息,请参见“影响选项文件处理的命令行选项”。
--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实用程序创建。请参见“mysql_config_editor-MySQL配置实用程序”。)有关此选项和其他选项文件选项的更多信息,请参见“影响选项文件处理的命令行选项”。
--password[=password]
,-p[password]
用于连接服务器的MySQL帐户的密码。密码值是可选的。如果未给出,则mysql_upgrade提示输入1。如果给出,则或后面的密码之间必须没有空格。如果未指定密码选项,则默认为不发送密码。
--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}
用于连接到服务器的连接协议。当其他连接参数通常导致使用您想要的协议以外的协议时,此功能很有用。有关允许值的详细信息,请参见“使用命令选项连接到MySQL服务器”。
--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时适用。有关
sha256_password
和caching_sha2_password
插件的信息,请参见“ SHA-256可插拔身份验证”和“缓存SHA-2可插拔身份验证”。--shared-memory-base-name=name
在Windows上,共享内存名称,用于使用共享内存与本地服务器建立的连接。默认值为
MYSQL
。共享内存名称区分大小写。仅当服务器在
shared_memory
启用系统变量以支持共享内存连接的情况下启动时,此选项才适用。--skip-sys-schem
默认情况下,mysql_upgrade会安装该
sys
模式(如果尚未安装),否则将其升级到当前版本。该--skip-sys-schem
选项禁止这种行为。--socket=path
,-S path
对于与的连接
localhost
,要使用的Unix套接字文件,或者在Windows上,要使用的命名管道的名称。在Windows上,仅当在
named_pipe
启用了支持命名管道连接的系统变量的情况下启动服务器时,此选项才适用。另外,建立连接的用户必须是named_pipe_full_access_group
系统变量指定的Windows组的成员。--ssl*
以开头的选项
--ssl
指定是否使用SSL连接到服务器,并指示在何处查找SSL密钥和证书。请参阅加密连接的命令选项。--ssl-fips-mode={OFF|ON|STRICT}
控制是否在客户端上启用FIPS模式。该
--ssl-fips-mode
选项与其他选项的不同之处在于,该选项不用于建立加密连接,而是影响允许的加密操作。请参见“ FIPS支持”。--ssl-xxx
这些
--ssl-fips-mode
值是允许的:OFF
:禁用FIPS模式。ON
:启用FIPS模式。STRICT
:启用“严格” FIPS模式。
注意
如果OpenSSL的FIPS对象模块不可用时,对于唯一的允许值
--ssl-fips-mode
是OFF
。在这种情况下,设置--ssl-fips-mode
为ON
或STRICT
导致客户端在启动时发出警告并以非FIPS模式运行。--tls-ciphersuites=ciphersuite_list
使用TLSv1.3的加密连接的允许密码套件。该值是一个或多个以冒号分隔的密码套件名称的列表。可以为此选项命名的密码套件取决于用于编译MySQL的SSL库。有关详细信息,请参见“加密的连接TLS协议和密码”。
该选项是在MySQL 8.0.16中添加的。
--tls-version=protocol_list
加密连接允许的TLS协议。该值是一个或多个逗号分隔的协议名称的列表。可以为此选项命名的协议取决于用于编译MySQL的SSL库。有关详细信息,请参见“加密的连接TLS协议和密码”。
--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
如果希望将其操作写入二进制日志,请使用调用程序。当服务器在启用(
gtid_mode=ON
)全局事务标识符(GTID)的情况下运行时,请勿通过mysql_upgrade启用二进制日志记录。--zstd-compression-level=level
用于与使用
zstd
压缩算法的服务器的连接的压缩级别。允许的级别为1到22,更大的值表示压缩级别增加。默认zstd
压缩级别为3。压缩级别设置对不使用zstd
压缩的连接无效。该选项是在MySQL 8.0.18中添加的。