• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • 安装或升级MySQL的命令行工具

    安装或升级MySQL时使用本节中的程序。


    comp_err—编译MySQL错误消息文件

    comp_err创建 mysqld用来确定针对不同错误代码显示的错误消息的errmsg.sys文件。在构建MySQL时, comp_err通常会自动运行。它根据MySQL源代码分发中的文本格式错误信息编译文件:errmsg.sys

    • 从MySQL 8.0.19开始,错误信息来自目录中的messages_to_error_log.txtmessages_to_clients.txt文件share

      有关定义错误消息的更多信息,请参阅这些文件以及文件中的注释errmsg_readme.txt

    • 在MySQL 8.0.19之前,错误信息来自目录errmsg-utf8.txt中的sql/share文件。

    comp_err还产生mysqld_error.hmysqld_ername.hmysqld_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_named: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.cnfmysql_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-modeOFF。在这种情况下,设置--ssl-fips-modeONSTRICT导致客户端在启动时发出警告并以非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文件。其工作方式如下:

    1. mysql_ssl_rsa_setup在环境变量指定的位置检查openssl二进制文件PATH。如果找不到 openssl,则mysql_ssl_rsa_setup不执行任何操作。如果存在 openssl,则mysql_ssl_rsa_setup在该--datadir选项指定的MySQL数据目录中查找默认的SSL和RSA文件,如果--datadir未提供该选项,则在已编译的数据目录中查找。
    2. mysql_ssl_rsa_setup在数据目录中检查具有以下名称的SSL文件:

      ca.pem server-cert.pem server-key.pem
      
    3. 如果存在任何这些文件,则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以使用加密连接”。

    4. 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
      
    5. 如果存在这些文件中的任何一个,则mysql_ssl_rsa_setup不创建RSA文件。否则,它将调用openssl创建它们。这些文件可通过RSA sha256_passwordcaching_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-keyca.pemserver-cert.pemserver-key.pem

    如果未给出显式的RSA选项,服务器还将自动使用mysql_ssl_rsa_setup创建的RSA文件来启用RSA。

    如果服务器启用了SSL,则客户端默认使用SSL进行连接。要明确指定证书和密钥文件,使用--ssl-c --ssl-cert--ssl-key选项来命名ca.pemclient-cert.pemclient-key.pem分别文件。但是,可能首先需要进行一些附加的客户端设置,因为mysql_ssl_rsa_setup默认情况下会在数据目录中创建这些文件。数据目录的权限通常仅允许访问运行MySQL服务器的系统帐户,因此客户端程序无法使用此处的文件。要使文件可用,请将它们复制到可读的目录(但不能客户可写):

    • 对于本地客户端,可以使用MySQL安装目录。例如,如果数据目录是安装目录的子目录,而您的当前位置是数据目录,则可以像这样复制文件:

      cp ca.pem client-cert.pem client-key.pem ..
      
    • 对于远程客户端,请使用安全通道分发文件,以确保在传输过程中不会对其进行篡改。

    如果用于MySQL安装的SSL文件已过期,则可以使用mysql_ssl_rsa_setup创建新文件:

    1. 停止服务器。
    2. 重命名或删除现有的SSL文件。您不妨先备份它们。(RSA文件不会过期,因此您无需删除它们。mysql_ssl_rsa_setup将看到它们存在并且不会覆盖它们。)
    3. 使用选项运行mysql_ssl_rsa_setup--datadir以指定在何处创建新文件。
    4. 重新启动服务器。

    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

    1. 确保服务器正在运行。
    2. 调用mysql_upgrade升级mysql模式中的系统表,并检查和修复其他模式中的表:

      shell>mysql_upgrade [options]
      
    3. 停止服务器并重新启动它,以便任何系统表更改均生效。

    如果要升级多个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-lengthTCP / 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_named: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.cnfmysql_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_passwordcaching_sha2_password身份验证插件进行身份验证的客户端。对于未通过这些插件之一进行身份验证的帐户,将忽略此选项。如果未使用基于RSA的密码交换,也将被忽略,例如客户端使用安全连接连接到服务器时。

      如果给出并指定了有效的公共密钥文件,则优先于。--server-public-key-path=file_name--get-server-public-key

      对于sha256_password,此选项仅在使用OpenSSL构建MySQL时适用。

      有关sha256_passwordcaching_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-modeOFF。在这种情况下,设置--ssl-fips-modeONSTRICT导致客户端在启动时发出警告并以非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中添加的。