目录
本章简要概述了Oracle Corporation提供的MySQL命令行程序。 它还讨论了运行这些程序时指定选项的一般语法。 大多数程序具有特定于其自身操作的选项,但所有选项的语法类似。 最后,本章提供了有关各个程序的更详细说明,包括它们识别的选项。
MySQL安装中有许多不同的程序。 本节简要介绍了它们。 后面的部分提供了每个部分的更详细描述,但NDB Cluster程序除外。 每个程序的描述都指示其调用语法及其支持的选项。 第22.4节“NDB集群程序” 描述了特定于NDB集群的程序。
大多数MySQL发行版都包含所有这些程序,除了那些特定于平台的程序。 (例如,Windows上不使用服务器启动脚本。)例外情况是RPM分发更加专业化。 服务器有一个RPM,客户端程序有另一个RPM,依此类推。 如果您似乎缺少一个或多个程序,请参阅 第2章, 安装和升级MySQL ,以获取有关分发类型及其包含内容的信息。 可能是您的发行版不包含所有程序,您需要安装其他程序包。
每个MySQL程序都有许多不同的选项。
大多数程序提供了一个
--help
选项,您可以使用
该
选项来获取程序的不同选项的描述。
例如,尝试
mysql --help
。
您可以通过在命令行或选项文件中指定选项来覆盖MySQL程序的默认选项值。 有关 调用程序和指定程序选项的一般信息 , 请参见 第4.2节“使用MySQL程序” 。
MySQL服务器 mysqld 是完成MySQL安装中大部分工作的主程序。 服务器附带了几个相关脚本,可帮助您启动和停止服务器:
SQL守护程序(即MySQL服务器)。 要使用客户端程序, 必须运行 mysqld ,因为客户端通过连接到服务器来访问数据库。 请参见 第4.3.1节“ mysqld - MySQL服务器” 。
服务器启动脚本。 mysqld_safe 尝试启动 mysqld 。 请参见 第4.3.2节“ mysqld_safe - MySQL服务器启动脚本” 。
服务器启动脚本。 此脚本用于使用System V样式运行目录的系统,该目录包含为特定运行级别启动系统服务的脚本。 它调用 mysqld_safe 来启动MySQL服务器。 请参见 第4.3.3节“ mysql.server - MySQL服务器启动脚本” 。
服务器启动脚本,可以启动或停止系统上安装的多个服务器。 请参见 第4.3.4节“ mysqld_multi - 管理多个MySQL服务器” 。
多个程序在MySQL安装或升级期间执行设置操作:
该程序在MySQL构建/安装过程中使用。 它编译错误源文件中的错误消息文件。 请参见 第4.4.1节“ comp_err - 编译MySQL错误消息文件” 。
此程序使您可以提高MySQL安装的安全性。 请参见 第4.4.2节“ mysql_secure_installation - 改进MySQL安装安全性” 。
如果缺少这些文件,此程序将创建支持安全连接所需的SSL证书和密钥文件以及RSA密钥对文件。 mysql_ssl_rsa_setup 创建的文件 可用于使用SSL或RSA的安全连接。 请参见 第4.4.3节“ mysql_ssl_rsa_setup - 创建SSL / RSA文件” 。
此程序
mysql
使用主机系统
zoneinfo
数据库(描述时区的文件集)
的内容
加载
数据库中
的时区表
。
请参见
第4.4.4节“
mysql_tzinfo_to_sql
- 加载时区表”
。
该程序在MySQL升级操作后使用。 它使用在较新版本的MySQL中进行的任何更改来更新授权表,并检查表中的不兼容性并在必要时进行修复。 请参见 第4.4.5节“ mysql_upgrade - 检查和升级MySQL表” 。
连接MySQL服务器的MySQL客户端程序:
用于以批处理方式交互式输入SQL语句或从文件执行它们的命令行工具。 请参见 第4.5.1节“ mysql - MySQL命令行客户端” 。
执行管理操作的客户端,例如创建或删除数据库,重新加载授权表,将表刷新到磁盘以及重新打开日志文件。 mysqladmin 还可用于从服务器检索版本,进程和状态信息。 请参见 第4.5.2节“ mysqladmin - 管理MySQL服务器的客户端” 。
表维护客户端,用于检查,修复,分析和优化表。 请参见 第4.5.3节“ mysqlcheck - 表维护程序” 。
将MySQL数据库作为SQL,文本或XML转储到文件中的客户端。 请参见 第4.5.4节“ mysqldump - 数据库备份程序” 。
使用的导出文本文件到其各自表的客户端
LOAD
DATA
。
请参见
第4.5.5节“
mysqlimport
- 数据导入程序”
。
将MySQL数据库作为SQL转储到文件中的客户端。 请参见 第4.5.6节“ mysqlpump - 数据库备份程序” 。
MySQL Shell是MySQL Server的高级客户端和代码编辑器。 请参阅 MySQL Shell 8.0(MySQL 8.0的一部分) 。 除了提供的SQL功能,类似于 mysql ,MySQL Shell还提供了JavaScript和Python的脚本功能,并包含用于MySQL的API。 X DevAPI使您可以使用关系数据和文档数据,请参阅 第20章, 将MySQL用作文档存储 。 AdminAPI使您可以使用InnoDB集群,请参阅 第21章 InnoDB集群 。
显示有关数据库,表,列和索引的信息的客户端。 请参见 第4.5.7节“ mysqlshow - 显示数据库,表和列信息” 。
一个客户端,旨在模拟MySQL服务器的客户端负载并报告每个阶段的时间。 它就像多个客户端正在访问服务器一样。 请参见 第4.5.8节“ mysqlslap - 加载仿真客户端” 。
MySQL管理和实用程序:
脱机
InnoDB
脱机文件校验和实用程序。
请参见
第4.6.2节“
innochecksum
- 离线InnoDB文件校验和实用程序”
。
一种实用程序,用于显示有关
MyISAM
表中
全文索引的信息
。
请参见
第4.6.3节“
myisam_ftdump
- 显示全文索引信息”
。
用于描述,检查,优化和修复
MyISAM
表的
实用程序
。
请参见
第4.6.4节“
myisamchk
- MyISAM表维护实用程序”
。
处理
MyISAM
日志文件
内容的实用程序
。
请参见
第4.6.5节“
myisamlog
- 显示MyISAM日志文件内容”
。
压缩
MyISAM
表以生成较小的只读表
的实用程序
。
请参见
第4.6.6节“
myisampack
- 生成压缩,只读MyISAM表”
。
一种实用程序,使您可以将身份验证凭据存储在名为的安全加密登录路径文件中
.mylogin.cnf
。
请参见
第4.6.7节“
mysql_config_editor
- MySQL配置实用程序”
。
用于从二进制日志中读取语句的实用程序。 二进制日志文件中包含的已执行语句的日志可用于帮助从崩溃中恢复。 请参见 第4.6.8节“ mysqlbinlog - 处理二进制日志文件的实用程序” 。
用于读取和汇总慢查询日志内容的实用程序。 请参见 第4.6.9节“ mysqldumpslow - 汇总慢速查询日志文件” 。
MySQL程序开发实用程序:
一个shell脚本,用于生成编译MySQL程序时所需的选项值。 请参见 第4.7.1节“ mysql_config - 用于编译客户端的显示选项” 。
一个实用程序,显示选项文件的选项组中存在哪些选项。 请参见 第4.7.2节“ my_print_defaults - 从选项文件显示选项” 。
杂项工具:
一个实用程序,用于解压缩 使用LZ4压缩创建的 mysqlpump 输出。 请参见 第4.8.1节“ lz4_decompress - 解压缩mysqlpump LZ4压缩输出” 。
显示系统或MySQL错误代码含义的实用程序。 请参见 第4.8.2节“ perror - 显示MySQL错误消息信息” 。
一个实用程序,用于解压缩 使用ZLIB压缩创建的 mysqlpump 输出。 请参见 第4.8.3节“ zlib_decompress - 解压缩mysqlpump ZLIB压缩输出” 。
Oracle Corporation还提供 MySQL Workbench GUI工具,用于管理MySQL服务器和数据库,创建,执行和评估查询,以及从其他关系数据库管理系统迁移模式和数据以供MySQL使用。 其他GUI工具包括 MySQL Notifier 和 MySQL for Excel 。
使用MySQL客户端/服务器库与服务器通信的MySQL客户端程序使用以下环境变量。
环境变量 | 含义 |
---|---|
MYSQL_UNIX_PORT |
默认的Unix套接字文件;
用于连接
localhost
|
MYSQL_TCP_PORT |
默认端口号; 用于TCP / IP连接 |
MYSQL_PWD |
默认密码 |
MYSQL_DEBUG |
调试时调试跟踪选项 |
TMPDIR |
创建临时表和文件的目录 |
有关MySQL程序使用的环境变量的完整列表,请参见 第4.9节“MySQL程序环境变量” 。
使用
MYSQL_PWD
是不安全的。
请参见
第6.1.2.1节“密码安全的最终用户指南”
。
要从命令行(即从shell或命令提示符)调用MySQL程序,请输入程序名称,后跟任何选项或其他参数,以指示程序您希望它执行的操作。
以下命令显示了一些示例程序调用。
shell>
表示命令解释器的提示;
它不是你输入的一部分。
您看到的特定提示取决于您的命令解释程序。
典型的提示适用
$
于
sh
,
ksh
或
bash
,
%
适用于
csh
或
tcsh
,
C:\>
适用于Windows
command.com
或
cmd.exe
指挥口译员。
shell>mysql --user=root test
shell>mysqladmin extended-status variables
shell>mysqlshow --help
shell>mysqldump -u root personnel
以单个或双短划线(
-
,
--
)
开头的参数
指定程序选项。
选项通常表示程序应对服务器进行的连接类型或影响其操作模式。
第4.2.2节“指定程序选项”中
介绍了选项语法
。
Nonoption参数(没有前导破折号的参数)为程序提供了附加信息。
例如,
mysql
程序将第一个nonoption参数解释为数据库名称,因此该命令
mysql
--user=root test
指示您要使用该
test
数据库。
后面描述各个程序的部分表明程序支持哪些选项,并描述任何其他非选项参数的含义。
一些选项在许多程序中很常见。
最常用的是
指定连接参数
的
--host
(或
-h
),
--user
(或
-u
)和
--password
(或
-p
)选项。
它们指示运行MySQL服务器的主机以及MySQL帐户的用户名和密码。
所有MySQL客户端程序都了解这些选项;
它们使您能够指定要连接的服务器以及要在该服务器上使用的帐户。
其他连接选项是
--port
(或
-P
)指定TCP / IP端口号和
--socket
(或)
-S
)在Unix上指定Unix套接字文件(或Windows上的命名管道名称)。
有关指定连接选项的选项的更多信息,请参见
第4.2.3节“连接到MySQL服务器”
。
您可能会发现有必要使用路径名调用MySQL程序到
bin
安装它们
的
目录。
如果您
尝试从目录以外的任何目录运行MySQL程序时遇到
“
程序未找到
”
错误,
则可能会出现这种情况
bin
。
为了使用MySQL更方便,可以将
bin
目录
的路径名添加
到
PATH
环境变量设置中。
这使您可以通过仅键入其名称而不是其整个路径名来运行程序。
例如,如果
安装了
mysql
,则
/usr/local/mysql/bin
可以通过将其作为
mysql
调用来运行该程序
,并没有必要将其作为
/ usr / local / mysql / bin / mysql
调用
。
有关设置
PATH
变量的
说明,请参阅命令解释程序的文档
。
设置环境变量的语法是特定于解释器的。
(有些信息在
第4.2.6节“设置环境变量”中给出
。)修改
PATH
设置后,在Windows上打开一个新的控制台窗口或在Unix上再次登录,以使设置生效。
有几种方法可以为MySQL程序指定选项:
在程序名称后面的命令行中列出选项。 这适用于适用于程序特定调用的选项。
列出程序在启动时读取的选项文件中的选项。 这对于您希望程序在每次运行时使用的选项很常见。
列出环境变量中的选项(请参见 第4.2.6节“设置环境变量” )。 此方法对于每次运行程序时要应用的选项都很有用。 实际上,选项文件更常用于此目的,但 第5.8.3节“在Unix上运行多个MySQL实例” 讨论了环境变量非常有用的一种情况。 它描述了一种方便的技术,它使用这些变量来指定服务器和客户端程序的TCP / IP端口号和Unix套接字文件。
选项按顺序处理,因此如果多次指定选项,则最后一次出现优先。
以下命令使
mysql
连接到运行的服务器
localhost
:
外壳> mysql -h example.com -h localhost
如果给出了冲突或相关选项,则后面的选项优先于先前的选项。 以下命令 以 “ 无列名 ” 模式 运行 mysql :
外壳> mysql --column-names --skip-column-names
MySQL程序通过检查环境变量,然后通过处理选项文件,然后通过检查命令行来确定首先给出哪些选项。 这意味着环境变量具有最低优先级,命令行选项最高。
对于服务器,一个例外适用: 数据目录中 的 mysqld-auto.cnf 选项文件最后处理,因此它甚至优先于命令行选项。
您可以通过为选项文件中的程序指定默认选项值来利用MySQL程序处理选项的方式。 这使您可以避免每次运行程序时键入它们,同时允许您通过使用命令行选项覆盖默认值。
命令行中指定的程序选项遵循以下规则:
命令名后面给出了选项。
选项参数以一个破折号或两个破折号开头,具体取决于它是选项名称的简短形式还是长形式。
许多选项都有短形式和长形式。
例如,
-?
并且
--help
是指示MySQL程序,以显示它的帮助消息的选项的短和长的形式。
选项名称区分大小写。
-v
并且
-V
都是合法的,具有不同的含义。
(它们是相应的简短形式
--verbose
和
--version
选项。)
某些选项采用选项名称后面的值。
例如,
-h localhost
或
--host=localhost
指示MySQL服务器主机到客户端程序。
选项值告诉程序运行MySQL服务器的主机的名称。
对于采用值的长选项,请将选项名称和值分隔
=
符号。
对于带有值的短选项,选项值可以紧跟在选项字母后面,或者在:
-hlocalhost
和
之间可以
-h
localhost
有等效
的空格
。
此规则的一个例外是指定MySQL密码的选项。
此选项可以作为
或
以长格式给出
。
在后一种情况下(没有给出密码值),程序会提示您输入密码。
密码选项也可以在短形式给予
或
--password=
pass_val
--password
-p
pass_val
-p
。
但是,对于简短形式,如果给出密码值,则必须遵循选项字母而
没有中间空格
。
原因是如果空格跟在选项字母后面,程序无法判断后面的参数是密码值还是其他类型的参数。
因此,以下两个命令有两个完全不同的含义:
shell>mysql -ptest
shell>mysql -p test
第一个命令指示
mysql
使用密码值
test
,但不指定默认数据库。
第二个指示
mysql
提示输入密码值并
test
用作默认数据库。
在选项名称中,dash(
-
)和underscore(
_
)可以互换使用。
例如,
--skip-grant-tables
并且
--skip_grant_tables
是等价的。
(但是,前导破折号不能作为下划线给出。)
对于采用数字值的选择,该值可以与一个后缀被给予
K
,
M
或者
G
以指示1024一乘法器,1024
2
或1024
3
。
从MySQL 8.0.14的,后缀也可以是
T
,
P
和
E
以指示1024乘法器
4
,1024
5
或1024
6
。
后缀字母可以是大写或小写。
例如,以下命令告诉 mysqladmin ping服务器1024次,每次ping之间休眠10秒:
外壳> mysqladmin --count=1K --sleep=10 ping
将文件名指定为选项值时,请避免使用
~
shell元字符,因为它可能不会按预期解释。
在命令行上给出时,必须引用包含空格的选项值。
例如,
--execute
(或
-e
)选项可以与
mysql
一起
使用,
以将SQL语句传递给服务器。
使用此选项时,
mysql将
执行选项值中的语句并退出。
声明必须用引号括起来。
例如,您可以使用以下命令获取用户帐户列表:
shell>mysql -u root -p --execute="SELECT User, Host FROM mysql.user"
输入密码:******
+ ------ + ----------- + | 用户| 主持人| + ------ + ----------- + | | 吉甘| | 根| 吉甘| | | localhost | | jon | localhost | | 根| localhost | + ------ + ----------- + 外壳>
long form(
--execute
)之后是等号(
=
)。
如果希望在语句中使用带引号的值,则需要转义内部引号,或者在语句中使用与引用语句本身引用的引号不同的引号。 命令处理器的功能决定了您是否可以使用单引号或双引号以及转义引号字符的语法。 例如,如果命令处理器支持使用单引号或双引号引用,则可以在语句周围使用双引号,并在语句中使用任何引用值的单引号。
可以在命令行的选项值中传递多个SQL语句,用分号分隔:
shell>mysql -u root -p -e "SELECT VERSION();SELECT NOW()"
输入密码:******
+ ------------ + | 版本()| + ------------ + | 8.0.11 | + ------------ + + --------------------- + | 现在()| + --------------------- + | 2019-05-17 11:43:57 | + --------------------- +
大多数MySQL程序都可以从选项文件(有时称为配置文件)中读取启动选项。 选项文件提供了一种指定常用选项的便捷方式,因此每次运行程序时都无需在命令行中输入这些选项。
要确定程序是否读取选项文件,请使用该
--help
选项
调用它
。
(对于
mysqld
,请使用
--verbose
和
--help
。)如果程序读取选项文件,则帮助消息指示它查找哪些文件以及它识别哪些选项组。
MySQL程序开始与
--no-defaults
选择读比其他任何选项文件
.mylogin.cnf
。
persisted_globals_load
启用了禁用系统变量的
服务器
无法读取
mysqld-auto.cnf
。
许多选项文件都是纯文本文件,使用任何文本编辑器创建。 例外情况是:
.mylogin.cnf
包含登录路径选项
的
文件。
这是
mysql_config_editor
实用程序
创建的加密文件
。
请参见
第4.6.7节“
mysql_config_editor
- MySQL配置实用程序”
。
一个
“
登录路径
”
是一个选项组只允许特定的选项:
host
,
user
,
password
,
port
和
socket
。
客户端程序
.mylogin.cnf
使用该
--login-path
选项
指定要读取的登录路径
。
要指定备用登录路径文件名,请设置
MYSQL_TEST_LOGIN_FILE
环境变量。
此变量由
mysql-test-run.pl
测试实用程序使用,但也可由
mysql_config_editor
和MySQL客户端(如
mysql
,
mysqladmin
等
)识别
。
mysqld-auto.cnf
数据目录中
的
文件。
此JSON格式文件包含持久系统变量设置。
它由服务器在执行
SET
PERSIST
或
SET
PERSIST_ONLY
语句
时创建
。
请参见
第5.1.9.3节“持久系统变量”
。
管理
mysqld-auto.cnf
应该留给服务器而不是手动执行。
MySQL按照以下讨论中描述的顺序查找选项文件,并读取任何存在的选项。 如果您要使用的选项文件不存在,请使用适当的方法创建它,如上所述。
有关与NDB Cluster程序一起使用的选项文件的信息,请参见 第22.3节“NDB集群的配置” 。
在Windows上,MySQL程序按照指定的顺序从下表中显示的文件中读取启动选项(首先列出的文件首先读取,后面读取的文件优先)。
表4.1在Windows系统上读取的选项文件
文件名 | 目的 |
---|---|
,
|
全球选择 |
C:\my.ini
,
C:\my.cnf
|
全球选择 |
,
|
全球选择 |
defaults-extra-file |
指定的文件
--defaults-extra-file
,如果有的话
|
|
登录路径选项(仅限客户端) |
|
系统变量持久化
SET
PERSIST
或
SET
PERSIST_ONLY
(仅限服务器)
|
在上表中,
%WINDIR%
表示Windows目录的位置。
这通常是
C:\WINDOWS
。
使用以下命令从
WINDIR
环境变量
的值确定其确切位置
:
C:\> echo %WINDIR%
%APPDATA%
表示Windows应用程序数据目录的值。
使用以下命令从
APPDATA
环境变量
的值确定其确切位置
:
C:\> echo %APPDATA%
BASEDIR
代表MySQL基本安装目录。
当MySQL 8.0已经使用MySQL Installer安装的,这通常是
其中
代表项目目录(通常
在Windows的英语语言版本),参见
2.3.3节,“MySQL的安装程序的Windows”
。
C:\
PROGRAMDIR
\MySQL\MySQL
8.0 ServerPROGRAMDIR
Program Files
DATADIR
代表MySQL数据目录。
用于查找时
mysqld-auto.cnf
,其默认值是编译MySQL时内置的数据目录位置,但可以通过
--datadir
指定为处理之前
mysqld-auto.cnf
处理
的选项文件或命令行选项
进行更改
。
在Unix和类Unix系统上,MySQL程序按照指定的顺序从下表中显示的文件中读取启动选项(首先列出的文件首先读取,后面读取的文件优先)。
在Unix平台上,MySQL忽略了世界可写的配置文件。 这是有意作为安全措施。
表4.2在Unix和类Unix系统上读取的选项文件
文件名 | 目的 |
---|---|
/etc/my.cnf |
全球选择 |
/etc/mysql/my.cnf |
全球选择 |
|
全球选择 |
$MYSQL_HOME/my.cnf |
特定于服务器的选项(仅限服务器) |
defaults-extra-file |
指定的文件
--defaults-extra-file
,如果有的话
|
~/.my.cnf |
用户特定选项 |
~/.mylogin.cnf |
用户特定的登录路径选项(仅限客户端) |
|
系统变量持久化
SET
PERSIST
或
SE
PERSIST_ONLY
(仅限服务器)
|
在上表中,
~
表示当前用户的主目录(值
$HOME
)。
SYSCONFDIR
表示在
构建MySQL时
SYSCONFDIR
使用
CMake
选项
指定的目录
。
默认情况下,这是
etc
编译安装目录下的目录。
MYSQL_HOME
是一个环境变量,包含特定于服务器的
my.cnf
文件所在
目录的路径
。
如果
MYSQL_HOME
未设置并使用
mysqld_safe
程序
启动服务器
,则
mysqld_safe
将其设置
BASEDIR
为MySQL基本安装目录。
DATADIR
代表MySQL数据目录。
用于查找时
mysqld-auto.cnf
,其默认值是编译MySQL时内置的数据目录位置,但可以通过
--datadir
指定为处理之前
mysqld-auto.cnf
处理
的选项文件或命令行选项
进行更改
。
如果找到给定选项的多个实例,则最后一个实例优先,但有一个例外:对于
mysqld
,
该
选项
的
第一个
实例
--user
用作安全预防措施,以防止在选项文件中指定的用户被覆盖在命令行。
选项文件语法的以下说明适用于您手动编辑的文件。
这排除
.mylogin.cnf
了使用
mysql_config_editor
创建
并加密,并且
mysqld-auto.cnf
服务器以JSON格式创建。
运行MySQL程序时可以在命令行上给出的任何长选项也可以在选项文件中给出。
要获取程序的可用选项列表,请使用该
--help
选项
运行它
。
(对于
mysqld
,使用
--verbose
和
--help
。)
在选项文件中指定选项的语法类似于命令行语法(请参见
第4.2.2.1节“在命令行上使用选项”
)。
但是,在选项文件中,省略选项名称中的前两个破折号,并且每行只指定一个选项。
例如,
--quick
与
--host=localhost
在命令行上应被指定为
quick
与
host=localhost
上在选项文件单独的行。
要
在选项文件中
指定表单
选项,请将其写为
。
--loose-
opt_name
loose-
opt_name
选项文件中的空行将被忽略。 非空行可以采用以下任何一种形式:
#
,
comment
;
comment
注释行以
#
或
开头
;
。
一个
#
注释也可以从行的中部开始。
[
group
]
group
是要为其设置选项的程序或组的名称。
在组行之后,任何选项设置行都将应用于命名组,直到选项文件的末尾或另一个组行为止。
选项组名称不区分大小写。
opt_name
这相当于
命令行。
--
opt_name
opt_name
=value
这相当于
命令行。
在选项文件中,您可以在
字符
周围
留出
空格
,这在命令行中是不正确的。
值可以包含在单引号或双引号中,如果值包含
注释字符,
则该值很有用
。
--
opt_name
=value
=
#
从选项名称和值中自动删除前导和尾随空格。
您可以使用转义序列
\b
,
\t
,
\n
,
\r
,
\\
,并
\s
在选项值来表示退格,制表符,换行符,回车,回车,和空格字符。
在选项文件中,这些转义规则适用:
反斜杠后跟有效的转义序列字符将转换为序列表示的字符。
例如,
\s
转换为空格。
反斜杠后面没有有效的转义序列字符保持不变。
例如,
\S
保留原样。
前面的规则意味着可以给出一个字面反斜杠
\\
,或者
\
好像它没有后跟一个有效的转义序列字符。
选项文件中的转义序列规则与SQL语句中字符串文字中的转义序列规则略有不同。
在后一种情况下,如果
“
x
”
不是有效的转义序列字符,则
变为
“
”
而不是
。
请参见
第9.1.1节“字符串文字”
。
\
x
x
\
x
选项文件值的转义规则尤其适用于Windows路径名,它
\
用作路径名分隔符。
必须写入Windows路径名中的分隔符,就
\\
好像后面跟一个转义序列字符一样。
它可以写成
\\
或者
\
如果它不是。
或者,
/
可以在Windows路径名中使用,并将其视为
\
。
假设您要
C:\Program
Files\MySQL\MySQL Server 8.0
在选项文件中
指定基目录
。
这可以通过几种方式完成。
一些例子:
basedir =“C:\ Program Files \ MySQL \ MySQL Server 8.0” basedir =“C:\\ Program Files \\ MySQL \\ MySQL Server 8.0” basedir =“C:/ Program Files / MySQL / MySQL Server 8.0” BASEDIR = C:\\程序\ sFiles \\ \\的MySQL的MySQL \ sServer \ S8.0
如果选项组名称与程序名称相同,则组中的选项将专门应用于该程序。
例如,
[mysqld]
和
[mysql]
组分别应用于
mysqld
服务器和
mysql
客户端程序。
该
[client]
选项组是由MySQL分发提供(但所有的客户端程序读取
未
通过
的mysqld
)。
要了解使用C API的第三方客户端程序如何使用选项文件,请参见
第28.7.7.50节“mysql_options()”中
的C API文档
。
该
[client]
组使您可以指定适用于所有客户端的选项。
例如,
[client]
是用于指定连接到服务器的密码的适当组。
(但请确保选项文件只能由您自己访问,以便其他人无法发现您的密码。)
[client]
除非
您使用的
所有
客户端程序
都识别
该选项,
否则
请确保不在该
组中添加
选项
。
如果尝试运行错误消息,则在显示错误消息后,不理解该选项的程序将退出。
稍后列出更多通用选项组和更具体的组。
例如,一个
[client]
组更通用,因为它被所有客户端程序读取,而一个
[mysqldump]
组只能由
mysqldump
读取
。
后来指定的选项覆盖在此之前指定的选项,所以把该选项组中的顺序
[client]
,
[mysqldump]
使
mysqldump的
特异性选项覆盖
[client]
选项。
这是一个典型的全局选项文件:
[客户] 端口= 3306 插座= / TMP /的mysql.sock 的[mysqld] 端口= 3306 插座= / TMP /的mysql.sock 的key_buffer_size = 16M max_allowed_packet的= 128M [mysqldump的] 快
这是一个典型的用户选项文件:
[客户] #以下密码将发送给所有标准MySQL客户端 密码=“我的密码” [MySQL的] 无自动翻版 connect_timeout = 2
要创建仅由
特定MySQL发行版系列中
的
mysqld
服务器
读取的选项组
,请使用名称为
[mysqld-5.7]
,
[mysqld-8.0]
等的组。
以下组表示该
sql_mode
设置仅应由具有8.0.x版本号的MySQL服务器使用:
的[mysqld-8.0] 的sql_mode =繁体
可以
!include
在选项文件中
使用
指令来包含其他选项文件,并
!includedir
在特定目录中搜索选项文件。
例如,要包含该
/home/mydir/myopt.cnf
文件,请使用以下指令:
!include /home/mydir/myopt.cnf
要搜索
/home/mydir
目录并读取那里找到的选项文件,请使用以下指令:
!includedir / home / mydir
MySQL不保证读取目录中选项文件的顺序。
!includedir
在Unix操作系统上
使用该
指令
找到和包含的任何文件
都
必须
以
.cnf
。
结尾的文件名
。
在Windows上,此指令检查带有
.ini
或
.cnf
扩展名的
文件
。
像任何其他选项文件一样写入包含的选项文件的内容。
也就是说,它应该包含选项组,每个选项前面都有
一行,表示选项适用的程序。
[
group
]
在处理包含文件时,仅使用当前程序正在查找的组中的那些选项。
其他组被忽略。
假设一个
my.cnf
文件包含这一行:
!include /home/mydir/myopt.cnf
并假设
/home/mydir/myopt.cnf
看起来像这样:
[中mysqladmin] 力 的[mysqld] 的key_buffer_size = 16M
如果
my.cnf
由
mysqld
处理
,则仅使用
[mysqld]
组in
/home/mydir/myopt.cnf
。
如果文件由
mysqladmin
处理
,则仅使用该
[mysqladmin]
组。
如果该文件由任何其他程序处理,则不
/home/mydir/myopt.cnf
使用
任何选项
。
!includedir
除了读取指定目录中的所有选项文件外,
该
指令的处理方式类似。
如果选项文件包含
!include
或
!includedir
指令,则只要处理选项文件,就会处理由这些指令命名的文件,无论它们出现在文件中的哪个位置。
大多数支持选项文件的MySQL程序都处理以下选项。 由于这些选项会影响选项文件处理,因此必须在命令行中提供它们,而不是在选项文件中。 要正常工作,必须在其他选项之前给出每个选项,但有以下例外:
--print-defaults
可以后立即使用
--defaults-file
,
--defaults-extra-file
或
--login-path
。
在Windows上,如果使用
--defaults-file
和
--install
选项
启动服务器
,则
--install
必须先行。
请参见
第2.3.5.8节“将MySQL作为Windows服务启动”
。
将文件名指定为选项值时,请避免使用
~
shell元字符,因为它可能不会按预期解释。
--defaults-extra-file=
file_name
在全局选项文件之后读取此选项文件,但在(在Unix上)用户选项文件之前和(在所有平台上)登录路径文件之前。
(有关使用选项文件的顺序的信息,请参见
第4.2.2.2节“使用选项文件”
。)如果文件不存在或无法访问,则会发生错误。
file_name
如果作为相对路径名而不是完整路径名给出,则相对于当前目录进行解释。
请参阅本节的介绍,了解可以指定此选项的位置的约束。
只读给定的选项文件。
如果文件不存在或无法访问,则会发生错误。
file_name
如果作为相对路径名而不是完整路径名给出,则相对于当前目录进行解释。
例外:即使有
--defaults-file
,
mysqld的
读取
mysqld-auto.cnf
和客户端程序读取
.mylogin.cnf
。
请参阅本节的介绍,了解可以指定此选项的位置的约束。
不仅要读取常用选项组,还要读取通常名称和后缀的组
str
。
例如,
mysql
客户端通常读取
[client]
和
[mysql]
组。
如果
--defaults-group-suffix=_other
给出
了
选项,
mysql
也会读取
[client_other]
和
[mysql_other]
组。
从
.mylogin.cnf
登录路径文件中
的指定登录路径中读取选项
。
阿
“
登录路径
”
是含有指定要连接到哪个MySQL服务器和选项哪个帐户作为认证选项组。
要创建或修改登录路径文件,请使用
mysql_config_editor
实用程序。
请参见
第4.6.7节“
mysql_config_editor
- MySQL配置实用程序”
。
除了程序默认读取的选项组之外,客户端程序还会读取与指定登录路径对应的选项组。 考虑这个命令:
外壳> mysql --login-path=mypath
默认情况下,
mysql
客户端读取
[client]
和
[mysql]
选项组。
因此,对于所示的命令,
MySQL的
读取
[client]
和
[mysql]
其他选项的文件,并
[client]
,
[mysql]
以及
[mypath]
从登录路径文件。
即使使用该
--no-defaults
选项,
客户端程序也会读取登录路径文件
。
要指定备用登录路径文件名,请设置
MYSQL_TEST_LOGIN_FILE
环境变量。
请参阅本节的介绍,了解可以指定此选项的位置的约束。
不要读任何选项文件。
如果程序启动由于从选项文件中读取未知选项而失败,
--no-defaults
则可用于防止它们被读取。
例外情况是客户端程序读取
.mylogin.cnf
登录路径文件(如果存在),即使
--no-defaults
使用
它
也是如此。
这允许以比命令行更安全的方式指定密码,即使存在
--no-defaults
也是如此。
(
.mylogin.cnf
由
mysql_config_editor
实用程序
创建
。请参见
第4.6.7节“
mysql_config_editor
- MySQL配置实用程序”
。)
打印程序名称以及从选项文件中获取的所有选项。 密码值被屏蔽。
请参阅本节的介绍,了解可以指定此选项的位置的约束。
一些选项是
“
布尔
”
和可以打开或关闭的控制行为。
例如,
mysql
客户端支持一个
--column-names
选项,用于确定是否在查询结果的开头显示一行列名。
默认情况下,启用此选项。
但是,您可能希望在某些情况下禁用它,例如将
mysql
的输出发送
到另一个期望仅查看数据而不是初始标题行的程序时。
要禁用列名,可以使用以下任何一种形式指定选项:
- 禁用列名 --skip-列名 --column-名称= 0
在
--disable
与
--skip
前缀和
=0
后缀都具有相同的效果:它们均关闭选项。
可以通过以下任何方式指定选项 的 “ 启用 ” 形式:
--column-名 --enable-列名 --column-名称= 1
值
ON
,
TRUE
,
OFF
,和
FALSE
也被识别为布尔选项(不区分大小写)。
如果选项以前缀为前缀
--loose
,如果程序无法识别该选项,则程序不会退出并显示错误,而是仅发出警告:
外壳> mysql --loose-no-such-option
mysql:警告:未知选项'--loose-no-such-option'
--loose
当您在同一台计算机上运行MySQL的多个安装程序并在选项文件中列出选项时
,
前缀非常有用。
可以使用
--loose
前缀(或
loose
在选项文件中)
给出可能无法被程序的所有版本识别
的选项。
识别该选项的程序版本正常处理,而不识别它的版本会发出警告并忽略它。
该
--maximum
前缀仅适用于
mysqld,
并允许对大型客户端程序设置会话系统变量的方式进行限制。
为此,请使用
--maximum
带有变量名称
的
前缀。
例如,
--maximum-max_heap_table_size=32M
防止任何客户端使堆表大小限制大于32M。
该
--maximum
前缀旨在用于具有会话值的系统变量。
如果应用于仅具有全局值的系统变量,则会发生错误。
例如,使用
--maximum-back_log=200
,服务器产生此错误:
无法设置'back_log'的最大值
许多MySQL程序都有内部变量,可以使用该
SET
语句
在运行时设置
。
请参见
第13.7.5.1节“变量赋值的SET语法”
和
第5.1.9节“使用系统变量”
。
这些程序变量中的大多数也可以通过使用与指定程序选项相同的语法在服务器启动时设置。
例如,
mysql
有一个
max_allowed_packet
控制其通信缓冲区最大大小的变量。
要将
mysql
的
max_allowed_packet
变量
设置
为16MB的值,请使用以下任一命令:
shell>mysql --max_allowed_packet=16777216
shell>mysql --max_allowed_packet=16M
第一个命令指定以字节为单位的值。
第二个指定以兆字节为单位的值。
对于采用数字值的变量,该值可以与一个后缀被给予
K
,
M
或者
G
以指示1024一乘法器,1024
2
或1024
3
。
(例如,用于设置时
max_allowed_packet
,后缀表示以千字节,兆字节或千兆字节为单位)。如MySQL的8.0.14的,后缀也可以是
T
,
P
和
E
以指示1024乘法器
4
,1024
5
或1024
6
。
后缀字母可以是大写或小写。
在选项文件中,给出的变量设置没有前导破折号:
[MySQL的] max_allowed_packet的= 16777216
要么:
[MySQL的] max_allowed_packet的= 16M
如果您愿意,可以将变量名称中的下划线指定为破折号。 以下选项组是等效的。 两者都将服务器密钥缓冲区的大小设置为512MB:
的[mysqld] 的key_buffer_size = 512M 的[mysqld] 密钥缓冲器大小= 512M
变量可以通过完整写入或任何明确的前缀来指定。
例如,该
max_allowed_packet
变量可以被设置
的MySQL
为
--max_a
,但不作为
--max
,因为后者是不明确的:
外壳> mysql --max=1000000
mysql:模糊选项' - max = 1000000'(max_allowed_packet,max_join_size)
请注意,在为程序实现新变量的情况下,使用变量前缀可能会导致问题。 现在明确无误的前缀可能在将来变得模棱两可。
在服务器启动时设置变量时,可以使用指定值乘数的后缀,但不能
SET
在运行时
设置值
。
另一方面,
SET
使用表达式可以指定变量的值,在服务器启动时设置变量时不是这样。
例如,以下第一行在服务器启动时是合法的,但第二行不是:
shell>mysql --max_allowed_packet=16M
shell>mysql --max_allowed_packet=16*1024*1024
相反,以下第二行在运行时是合法的,但第一行不是:
mysql>SET GLOBAL max_allowed_packet=16M;
mysql>SET GLOBAL max_allowed_packet=16*1024*1024;
按照惯例,分配值的长形式选项使用equals(
=
)符号
写入
,如下所示:
外壳> mysql --host=tonfisk --user=jon
对于需要值的选项(即没有默认值),不需要等号,因此以下内容也有效:
外壳> mysql --host tonfisk --user jon
在这两种情况下, mysql 客户端都尝试 使用用户名为 “ jon ” 的帐户 连接到名为 “ tonfisk ” 的主机上运行的MySQL服务器 。
由于这种行为,当没有为期望的选项提供任何值时,偶尔会出现问题。
看看下面的例子,当用户连接到主机上运行的MySQL服务器
tonfisk
的用户
jon
:
外壳>mysql --host 85.224.35.45 --user jon
欢迎使用MySQL监视器。命令以;结尾; 或\ g。 您的MySQL连接ID是3 服务器版本:8.0.18源代码分发 输入'help;' 或'\ h'寻求帮助。输入'\ c'清除缓冲区。 MySQL的>SELECT CURRENT_USER();
+ ---------------- + | CURRENT_USER()| + ---------------- + | jon @%| + ---------------- + 1排(0.00秒)
省略其中一个选项所需的值会产生错误,例如此处显示的错误:
shell> mysql:选项'--user'需要一个参数mysql --host 85.224.35.45 --user
在这种情况下,
mysql
无法在该
--user
选项
后面找到值,
因为在命令行后没有任何
值
。
但是,如果省略
不是
最后
一个选项的选项的值
,则会获得您可能不期望的其他错误:
shell> ERROR 2005(HY000):未知的MySQL服务器主机'--user'(1)mysql --host --user jon
因为
mysql
假定
--host
命令行
后面的任何字符串
是主机名,
所以解释为
,并且客户端尝试连接到在名为
“
--user
”
的主机上运行的MySQL服务器
。
--host
--user
--host=--user
具有默认值的选项在分配值时始终需要等号;
如果不这样做会导致错误。
例如,MySQL服务器
--log-error
选项具有默认值
,其中
host_name
.errhost_name
是运行MySQL的主机的名称。
假设您在主机名为
“
tonfisk
”
的计算机上运行MySQL
,并考虑以下对
mysqld_safe的
调用
:
外壳> mysqld_safe &
[1] 11699
shell> 080112 12:53:40 mysqld_safe登录到'/usr/local/mysql/var/tonfisk.err'。
080112 12:53:40 mysqld_safe使用/ usr / local / mysql / var中的数据库启动mysqld守护程序
外壳>
关闭服务器后,按如下所示重新启动它:
外壳> mysqld_safe --log-error &
[1] 11699
shell> 080112 12:53:40 mysqld_safe登录到'/usr/local/mysql/var/tonfisk.err'。
080112 12:53:40 mysqld_safe使用/ usr / local / mysql / var中的数据库启动mysqld守护程序
外壳>
结果是相同的,因为
--log-error
命令行上没有任何其他内容,它提供了自己的默认值。
(该
&
字符告诉操作系统在后台运行MySQL; MySQL本身会忽略它。)现在假设您希望将错误记录到名为的文件中
my-errors.err
。
您可以尝试启动服务器
--log-error my-errors
,但这没有预期的效果,如下所示:
外壳> mysqld_safe --log-error my-errors &
[1] 31357
shell> 080111 22:53:31 mysqld_safe登录到'/usr/local/mysql/var/tonfisk.err'。
080111 22:53:32 mysqld_safe使用/ usr / local / mysql / var中的数据库启动mysqld守护程序
080111 22:53:34来自pid文件/usr/local/mysql/var/tonfisk.pid的mysqld_safe mysqld已结束
[1] +完成./mysqld_safe --log-error my-errors
服务器尝试开始
/usr/local/mysql/var/tonfisk.err
用作错误日志,但随后关闭。
检查此文件的最后几行显示原因:
外壳> tail /usr/local/mysql/var/tonfisk.err
2013-09-24T15:36:22.278034Z 0 [ERROR]参数太多(第一个额外的是'my-errors')。
2013-09-24T15:36:22.278059Z 0 [注意]使用--verbose --help获取可用选项列表!
2013-09-24T15:36:22.278076Z 0 [ERROR]中止
2013-09-24T15:36:22.279704Z 0 [注意] InnoDB:开始关机......
2013-09-24T15:36:23.777471Z 0 [注意] InnoDB:关机完成; 日志序列号2319086
2013-09-24T15:36:23.780134Z 0 [注意] mysqld:关闭完成
由于该
--log-error
选项提供默认值,因此必须使用等号为其指定不同的值,如下所示:
外壳> mysqld_safe --log-error=my-errors &
[1] 31437
shell> 080111 22:54:15 mysqld_safe登录到'/usr/local/mysql/var/my-errors.err'。
080111 22:54:15 mysqld_safe使用/ usr / local / mysql / var中的数据库启动mysqld守护程序
外壳>
现在服务器已成功启动,并将错误记录到文件中
/usr/local/mysql/var/my-errors.err
。
在选项文件中指定选项值时可能会出现类似问题。
例如,考虑
my.cnf
包含以下内容
的
文件:
[MySQL的] 主办 用户
当
mysql
客户端读取此文件时,这些条目将被解析为
或
,结果如下所示:
--host
--user
--host=--user
shell> ERROR 2005(HY000):未知的MySQL服务器主机'--user'(1)mysql
但是,在选项文件中,不会假定等号。
假设
my.cnf
文件如下所示:
[MySQL的] 用户jon
在这种情况下 尝试启动 mysql 会导致不同的错误:
shell> mysql:未知选项'--user jon'mysql
如果您要
host
tonfisk
在选项文件中而不是
写入
,
则会发生类似的错误
host=tonfisk
。
相反,您必须使用等号:
[MySQL的] 用户=乔恩
现在登录尝试成功:
外壳>mysql
欢迎使用MySQL监视器。命令以;结尾; 或\ g。 您的MySQL连接ID是5 服务器版本:8.0.18源代码分发 输入'help;' 或'\ h'寻求帮助。输入'\ c'清除缓冲区。 MySQL的>SELECT USER();
+ --------------- + | USER()| + --------------- + | jon @ localhost | + --------------- + 1排(0.00秒)
这与命令行的行为不同,其中不需要等号:
外壳>mysql --user jon --host tonfisk
欢迎使用MySQL监视器。命令以;结尾; 或\ g。 您的MySQL连接ID是6 服务器版本:8.0.18源代码分发 输入'help;' 或'\ h'寻求帮助。输入'\ c'清除缓冲区。 MySQL的>SELECT USER();
+ --------------- + | USER()| + --------------- + | jon @ tonfisk | + --------------- + 1排(0.00秒)
指定需要在选项文件中没有值的值的选项会导致服务器因错误而中止。
假设
my.cnf
包含以下内容:
的[mysqld] 的log_error relay_log relay_log_index
这会导致服务器在启动时失败,如下所示:
外壳> mysqld_safe &
130924 10:41:46 mysqld_safe登录到'/home/jon/bin/mysql/var/tonfisk.err'。
130924 10:41:46 mysqld_safe使用/ home / jon / bin / mysql / var中的数据库启动mysqld守护程序
130924 10:41:47来自pid文件/home/jon/bin/mysql/var/tonfisk.pid的mysqld_safe mysqld已结束
该
--log-error
选项不需要参数;
但是,该
--relay-log
选项需要一个,如错误日志中所示(在没有指定值的情况下,默认为
):
datadir
/hostname
.err
外壳> tail -n 3 ../var/tonfisk.err
130924 10:41:46 mysqld_safe使用/ home / jon / bin / mysql / var中的数据库启动mysqld守护程序
2013-09-24T15:41:47.217180Z 0 [错误] / home / jon / bin / mysql / libexec / mysqld:选项'--relay-log'需要参数
2013-09-24T15:41:47.217479Z 0 [错误]中止
这是对先前行为的更改,其中服务器将示例
my.cnf
文件中
的最后两行解释
为,
--relay-log=relay_log_index
并使用
“
relay_log_index
”
作为基本名称
创建中继日志文件
。
(缺陷号25192)
本节介绍如何建立与MySQL服务器的连接。 有关其他信息,如果无法连接,请参见 第6.2.21节“连接MySQL的疑难解答” 。
要使客户端程序能够连接到MySQL服务器,它必须使用正确的连接参数,例如运行服务器的主机的名称以及MySQL帐户的用户名和密码。 每个连接参数都有一个默认值,但您可以根据需要使用命令行或选项文件中指定的程序选项覆盖它们。
这里的示例使用 mysql 客户端程序,但这些原则适用于其他客户端,如 mysqldump , mysqladmin 或 mysqlshow 。 有关通过指定路径连接MySQL Shell等客户端的更多信息,请参见 第4.2.4节“使用URI或键值对连接” 。
此命令调用 mysql 而不显式指定任何连接参数:
外壳> mysql
由于没有参数选项,因此默认值适用:
默认主机名是
localhost
。
在Unix上,这具有特殊含义,如后所述。
默认用户名
ODBC
在Windows上,或Unix上的Unix登录名。
如果既
-p
没有
--password
给出
也
没有密码
。
对于 mysql ,第一个nonoption参数被视为默认数据库的名称。 如果没有这样的选项, mysql 不会选择默认数据库。
要明确指定主机名和用户名以及密码,请在命令行上提供适当的选项:
shell> shell>mysql --host=localhost --user=myname --password=
password
mydbmysql -h localhost -u myname -p
password
mydb
对于密码选项,密码值是可选的:
如果您使用
-p
或
--password
选项,并指定密码值,必须有
没有空间
之间
-p
或
--password=
以下,并输入密码。
如果使用
-p
或
--password
选项但未指定密码值,则客户端程序会提示您输入密码。
输入密码时不会显示密码。
这比在命令行上提供密码更安全。
系统上的其他用户可以通过执行
ps auxw
等命令来查看命令行中指定的密码
。
请参见
第6.1.2.1节“密码安全的最终用户指南”
。
如上所述,在命令行中包含密码值可能存在安全风险。
要避免此问题,请在
没有任何后续密码值的情况下
指定
--password
或
-p
选项:
shell>mysql --host=localhost --user=myname --password mydb
shell>mysql -h localhost -u myname -p mydb
当密码选项没有密码值时,客户端程序会打印提示并等待您输入密码。
(在这些实例中,
mydb
是
不
解释为密码,因为它是从由空间中的前述密码选项分开。)
在某些系统上,MySQL用来提示输入密码的库例程会自动将密码限制为8个字符。 这是系统库的问题,而不是MySQL。 在内部,MySQL对密码长度没有任何限制。 要解决此问题,请将MySQL密码更改为长度不超过8个字符的值,或将密码放入选项文件中。
在Unix上,MySQL程序
localhost
特别
对待主机名
,其方式可能与您期望的与其他基于网络的程序相比有所不同。
客户端确定要建立的连接类型如下:
如果未指定主机或是
localhost
,则假定与本地主机的连接:
在Windows上,如果服务器启用了共享内存连接,则客户端使用共享内存连接进行连接。
在Unix上,客户端使用Unix套接字文件进行连接。
该
--socket
选项或
MYSQL_UNIX_PORT
环境变量可用于指定套接字名称。
在Windows上,如果
host
是
.
,或TCP / IP未启用
--socket
且未指定或主机为空,则客户端使用命名管道进行连接(如果服务器已启用命名管道连接)。
如果未启用命名管道连接,或者进行连接的用户不是
named_pipe_full_access_group
服务器系统变量
指定的Windows组的成员,
则会发生错误。
否则,使用TCP / IP。
该
--protocol
选项使您可以建立特定类型的连接,即使其他选项通常默认为某些其他协议。
也就是说,
--protocol
可以给出明确指定连接协议并覆盖前面的规则,即使对于
localhost
。
仅使用或检查与所选协议相关的连接选项。
其他连接选项将被忽略。
例如,
--host=localhost
在Unix上,客户端尝试使用Unix套接字文件连接到本地服务器。
即使
给出了指定端口号的选项
--port
或
-P
选项,
也会发生这种情况
。
要确保客户端与本地服务器建立TCP / IP连接,请使用
--host
或
-h
指定主机名值
127.0.0.1
,或本地服务器的IP地址或名称。
您也可以
localhost
使用该
--protocol=TCP
选项
明确指定连接协议,即使是
。
例如:
shell>mysql --host=127.0.0.1
shell>mysql --protocol=TCP
如果服务器配置为接受IPv6连接,则客户端可以使用IPv6进行连接
--host=::1
。
请参见
第5.1.12节“IPv6支持”
。
在Windows上,您可以通过指定
--pipe
或
--protocol=PIPE
选项或指定
.
(句点)作为主机名
来强制MySQL客户端使用命名管道连接
。
如果未启用命名管道连接,或者进行连接的用户不是
named_pipe_full_access_group
服务器系统变量
指定的Windows组的成员,
则会发生错误。
--socket
如果您不想使用默认管道名称,
请使用该
选项指定管道的名称。
与远程服务器的连接始终使用TCP / IP。
此命令
remote.example.com
使用默认端口号
连接到运行的服务器
(3306):
外壳> mysql --host=remote.example.com
要明确指定端口号,请使用
--port
或
-P
选项:
外壳> mysql --host=remote.example.com --port=13306
您也可以为本地服务器的连接指定端口号。
但是,如前所述,
localhost
默认情况下,Unix
上的连接
将使用套接字文件。
您将需要如前所述强制TCP / IP连接,否则将忽略指定端口号的任何选项。
对于此命令,程序在Unix上使用套接字文件,并
--port
忽略
该
选项:
外壳> mysql --port=13306 --host=localhost
要使用端口号,请以下列方式之一调用该程序:
shell>mysql --port=13306 --host=127.0.0.1
shell>mysql --port=13306 --protocol=TCP
以下列表总结了可用于控制客户端程序如何连接到服务器的选项:
有关要使用的客户端身份验证插件的提示。 请参见 第6.2.17节“可插入验证” 。
--host=
,
host_name
-h
host_name
运行服务器的主机。
默认值为
localhost
。
--password[=
,
pass_val
]-p[
pass_val
]
MySQL帐户的密码。
如前所述,密码值是可选的,但如果给定的,必须有
没有空间
之间
-p
或
--password=
以下,并输入密码。
默认是不发送密码。
--pipe
,
-W
在Windows上,使用命名管道连接到服务器。
必须使用
--enable-named-pipe
启用命名管道连接
的
选项
启动服务器
。
此外,进行连接的用户必须是
named_pipe_full_access_group
服务器系统变量
指定的Windows组的成员
。
--port=
,
port_num
-P
port_num
用于连接的端口号,用于使用TCP / IP建立的连接。 默认端口号为3306。
--protocol={TCP|SOCKET|PIPE|MEMORY}
此选项显式指定用于连接到服务器的协议。
当其他连接参数通常会导致协议被使用而不是您想要的协议时,它很有用。
例如,Unix上的连接
localhost
默认使用Unix套接字文件:
外壳> mysql --host=localhost
要强制使用TCP / IP连接,请指定一个
--protocol
选项:
外壳> mysql --host=localhost --protocol=TCP
下表显示了允许的
--protocol
选项值,并指出了可以使用每个值的平台。
值不区分大小写。
--protocol
值
|
连接协议 | 允许的操作系统 |
---|---|---|
TCP |
到本地或远程服务器的TCP / IP连接 | 所有 |
SOCKET |
Unix套接字文件连接到本地服务器 | 仅限Unix |
PIPE |
与本地或远程服务器的命名管道连接 | 仅限Windows |
MEMORY |
与本地服务器的共享内存连接 | 仅限Windows |
--shared-memory-base-name=
name
在Windows上,要使用的共享内存名称,用于使用共享内存连接到本地服务器。
默认值为
MYSQL
。
共享内存名称区分大小写。
必须使用
--shared-memory
启用共享内存连接
的
选项
启动服务器
。
--socket=
,
file_name
-S
file_name
在Unix上,要使用的Unix套接字文件的名称,用于使用命名管道连接到本地服务器。
默认的Unix套接字文件名是
/tmp/mysql.sock
。
在Windows上,用于连接到本地服务器的命名管道的名称。
默认的Windows管道名称是
MySQL
。
管道名称不区分大小写。
必须使用
--enable-named-pipe
启用命名管道连接
的
选项
启动服务器
。
此外,进行连接的用户必须是
named_pipe_full_access_group
服务器系统变量
指定的Windows组的成员
。
--ssl
如果服务器配置了SSL支持,则使用SSL
开头的选项
用于建立与服务器的安全连接。
有关详细信息,请参见
第6.3.2节“加密连接的命令选项”
。
客户端允许加密连接的协议。 该值是一个或多个以逗号分隔的协议名称的列表。 可以为此选项命名的协议取决于用于编译MySQL的SSL库。 有关详细信息,请参见 第6.3.6节“加密连接协议和密码” 。
--user=
,
user_name
-u
user_name
要使用的MySQL帐户的用户名。
默认用户名
ODBC
在Windows上,或Unix上的Unix登录名。
可以指定在建立连接时使用的不同默认值,这样每次调用客户端程序时都无需在命令行中输入它们。 这可以通过以下几种方式完成:
您可以在
[client]
选项文件
的
部分中
指定连接参数
。
该文件的相关部分可能如下所示:
[客户] host =host_name
user =user_name
password =your_pass
第4.2.2.2节“使用选项文件” 进一步讨论了选项文件。
您可以使用环境变量指定一些连接参数。
主机可以指定
MySQL的
使用
MYSQL_HOST
。
可以使用
USER
(仅适用于Windows)
指定MySQL用户名
。
密码可以使用
MYSQL_PWD
,虽然这是不安全的;
请参见
第6.1.2.1节“密码安全的最终用户指南”
。
有关变量列表,请参见
第4.9节“MySQL程序环境变量”
。
除了指定 第4.2.3节“连接到MySQL服务器”中 记录的MySQL服务器实例的连接参数外 ,还可以使用URI类型字符串或键值对指定连接。 以下MySQL客户端支持使用URI类型字符串或键值对指定与MySQL服务器实例的连接:
MySQL Shell
MySQL路由器
实现X DevAPI的MySQL连接器
用于以此方式指定连接的许多参数与命令选项中使用的参数类似,本节介绍了所有有效参数。 连接的参数可以指定为:
URI类型字符串,例如
myuser@example.com:3306/main-schema
。
有关
完整语法,
请参阅
使用URI字符串连接
。
键值对,例如
{user:'myuser',
host:'example.com', port:3306,
schema:'main-schema'}
。
有关
完整语法,
请参阅
使用键值对
进行
连接
。
连接参数不区分大小写,只能定义一次。 如果多次定义参数,则会生成错误。
本节包括:
本节介绍指定与MySQL的连接时可用的参数。 以下参数可以作为URI类型字符串或键值对提供。 在URI类型字符串中,它们符合基本URI,请参阅 使用URI字符串连接 。 或者,可以将它们指定为键值对,请参阅 使用键值 对进行 连接 。
scheme
:指定要使用的连接协议。
使用
mysqlx
的X协议连接和
mysql
经典MySQL协议连接。
如果未指定协议,则服务器会尝试猜测协议。
user
:指定用于身份验证过程的MySQL用户帐户。
password
:指定用于身份验证过程的密码。
在连接中存储密码是不安全的,不建议使用。
host
:指定连接引用的服务器实例。
可以是IPv4地址,IPv6地址或主机名。
如果未指定,
则默认使用
localhost
。
port
:指定目标MySQL服务器正在侦听连接的网络端口。
如果未指定,则默认情况下使用33060进行X协议连接,3306是经典MySQL协议连接的默认值。
socket
:Unix套接字或Windows命名管道的路径。
值是本地文件路径,必须使用百分比编码或使用括号括起路径来编码URI类型字符串,这样就不需要对百分比进行编码,例如公共目录分隔符
/
。
要
root@localhost
使用Unix套接字
/tmp/mysqld.sock
进行
连接,请
使用
括号指定路径,例如
root@localhost?socket=(/tmp/mysqld.sock)
,或使用百分比编码
root@localhost?socket=%2Ftmp%2Fmysqld.sock
。
schema
:指定在建立连接时要设置为默认的数据库。
您可以通过附加指定作为URI类型字符串的一部分的连接选项,也可以指定
键值对。
可以使用以下选项:
?
attribute=value
ssl-mode
:用于连接的SSL模式。
以下值有效:
DISABLED
PREFERRED
REQUIRED
VERIFY_CA
VERIFY_IDENTITY
ssl-ca
:PEM格式的X.509证书颁发机构的路径。
ssl-capath
:包含PEM格式的X.509证书颁发机构的目录的路径。
ssl-cert
:PEM格式的X.509证书的路径。
ssl-key
:PEM格式的X.509密钥的路径。
ssl-crl
:包含证书吊销列表的文件路径。
ssl-crlpath
:包含证书吊销列表文件的目录的路径。
ssl-cipher
:要使用的SSL密码。
tls-version
:允许TLS版本进行安全连接。
以下值有效:
TLSv1
TLSv1.1
TLSv1.2
(仅限商业版)
auth-method
:用于连接的身份验证方法。
默认为
AUTO
,意味着服务器尝试猜测。
以下值有效:
AUTO
MYSQL41
SHA256_MEMORY
FROM_CAPABILITIES
FALLBACK
PLAIN
当使用X协议连接,任何配置的
auth-method
被覆盖到的认证方法序列:
MYSQL41
,
SHA256_MEMORY
,
PLAIN
。
get-server-public-key
:从基于RSA密钥对的密码交换所需的服务器请求公钥。
在使用SSL模式的经典MySQL协议上连接到MySQL 8.0服务器时使用
DISABLED
。
在这种情况下,您必须指定协议,例如:
MySQL的://用户@本地:3306弄服务器密钥=真
server-public-key-path
:包含服务器所需的公钥的客户端副本的文件的路径名,用于基于RSA密钥对的密码交换。
在使用SSL模式的经典MySQL协议上连接到MySQL 8.0服务器时使用
DISABLED
。
connect-timeout
:一个整数值,用于配置客户端(如MySQL Shell)的秒数,等待客户端停止尝试连接到无响应的MySQL服务器。
compression
:当设置为
true
(或1)时,如果两者都支持压缩,则此选项可以压缩客户端和服务器之间发送的所有信息。
默认值为无压缩(
false
或0)。
此选项仅适用于使用经典MySQL协议的MySQL Shell连接。
您可以使用URI类型字符串格式指定与MySQL服务器的连接。
这些字符串可以与MySQL Shell一起使用,带有
--uri
命令选项,MySQL Shell
\connect
命令,实现X DevAPI的MySQL连接器,以及MySQL路由器等工具。
URI类型字符串具有以下格式:
[scheme
://] [user
[:[password
]] @]target
[:port
] [/schema
] [?attribute1=value1&attribute2=value2...
百分比编码必须用于URI类型字符串的元素中的保留字符。
例如,如果指定包含该
@
字符
的字符串
,则该字符必须替换为
%40
。
如果在IPv6地址中包含区域ID,则
%
必须将用作分隔符
的
字符替换为
%25
。
您可以在 基本连接参数 的URI类型字符串中使用的 参数 。
如果未使用建议的URI类型字符串指定密码,则会提示输入密码。
以下示例显示如何使用用户名指定URI类型字符串
user
,在每种情况下都会提示输入密码:
与端口3333侦听的本地服务器实例的典型MySQL协议连接。
MySQL的://用户@本地:3333
与端口33065侦听的本地服务器实例的X协议连接。
mysqlx://用户@本地:33065
与远程服务器实例的X协议连接,使用主机名,IPv4地址和IPv6地址。
mysqlx://user@server.example.com/ mysqlx://user@198.51.100.14:123 mysqlx://用户@ [2001:DB8:85±3:8D3:1319:8a2e:370:7348]
使用套接字的X协议连接,路径使用百分比编码或括号提供。
mysqlx://user@/path%2Fto%2Fsocket.sock mysqlx://用户@(/path/to/socket.sock)
可以指定可选路径,该路径表示数据库模式。
mysqlx://user@198.51.100.1/world%5Fx mysqlx://user@198.51.100.2:33060 /世界
可以指定可选查询,包括一
key=value
对
形式的值
或单个值
key
。
该
,
字符用作值的分隔符,可以指定多个对和键的组合。
值可以是类型列表,列表值按外观排序。
字符串必须是百分比编码或用括号括起来。
以下是等同的。
ssluser@127.0.0.1?SSL-CA =%2Froot%2Fclientcert%2Fca-cert.pem \ &SSL证书=%2Froot%2Fclientcert%2Fclient-cert.pem \ &SSL密钥=%2Froot%2Fclientcert%2Fclient密钥 ssluser@127.0.0.1?ssl-ca =(/根/ clientcert / CA-cert.pem)\ &SSL证书=(/根/ clientcert /客户cert.pem)\ &SSL密钥=(/根/ clientcert /客户端密钥)
前面的示例假设连接需要密码,而对于交互式客户端,在登录提示符处请求指定用户的密码。
如果用户拥有无密码帐户(不安全且不推荐),或者正在使用套接字对等凭证身份验证(例如使用Unix套接字连接),则必须在URI类型字符串中明确指定不存在密码提供并且不需要密码提示。
要执行此操作,请
在URI类型字符串
:
后面添加一个
user
,但不要在其后面指定密码。
例如:
mysqlx://用户:@localhost
您可以使用键值对指定与MySQL服务器的连接。
这些键值对以语言自然结构提供,用于实现。
这意味着您可以使用键值对作为JavaScript中的JSON对象提供连接参数,或者在Python中使用字典中的键值对。
无论键值对的提供方式如何,概念都保持不变 - 可以为本节中指定的键分配用于指定连接的值。
您可以使用MySQL Shell
shell.connect()
方法或InnoDB集群
dba.createCluster()
方法中
的键值对指定连接
,也可以使用一些实现X DevAPI的MySQL连接器指定连接。
通常,键值对由
字符和
字符
包围
{
,
}
字符
,
用作键值对之间的分隔符。
:
在键和值之间使用
该
字符,并且必须对字符串进行分隔,例如使用该
'
字符。
与URI类型字符串不同,没有必要对字符串进行百分比编码。
指定为键值对的连接具有以下格式:
{key
:value
,key
:value
,...}
如果未指定密码(建议使用密码),则在交互式客户端中将提示输入密码。
以下示例显示如何使用键值对和用户名指定连接
user
:
与端口33065侦听的本地服务器实例的X协议连接。
{user:'user',host:'localhost',port:33065}
与端口3333侦听的本地服务器实例的典型MySQL协议连接。
{user:'user',host:'localhost',port:3333}
与远程服务器实例的X协议连接,使用主机名,IPv4地址和IPv6地址。
{user:'user',host:'server.example.com'} {user:'user',host:198.51.100.14:123} {user:'user',host:[2001:db8:85a3:8d3:1319:8a2e:370:7348]}
使用套接字的X协议连接。
{user:'user',socket:'/ path / to / socket / file /'}
可以指定可选模式,该模式表示数据库。
{user:'user',host:'localhost',schema:'world'}
前面的示例假设连接需要密码,而对于交互式客户端,在登录提示符处请求指定用户的密码。
如果用户具有无密码帐户(不安全且不推荐),或者正在使用套接字对等凭证身份验证(例如,使用Unix套接字连接),则必须明确指定不提供密码和密码提示不需要。
为此,请
''
在
password
键
后
使用空字符串
。
例如:
{user:'user',密码:'',主机:'localhost'}
与服务器的连接可以使用压缩协议,该协议可减少通过连接发送的字节数。 默认情况下,连接是未压缩的,但如果服务器和客户端都支持压缩,则可以进行压缩。
压缩连接源自客户端,但会影响客户端和服务器端的CPU负载,因为双方都执行压缩和解压缩操作。 由于启用压缩会降低性能,因此其优势主要发生在网络带宽较低时,网络传输时间主导压缩和解压缩操作的成本,结果集很大。
压缩控制适用于客户端程序和参与主/从复制的服务器与服务器的连接。
压缩控件不适用于组复制连接,X协议连接或
FEDERATED
表
连接
。
这些配置参数可用于控制连接压缩:
客户端程序支持
--compress
为服务器连接指定使用压缩
的
选项。
对于使用MySQL C API的程序,启用
MYSQL_OPT_COMPRESS
该
mysql_options()
函数
的
选项
指定使用压缩来连接到服务器。
对于主/服务器复制,启用
slave_compressed_protocol
系统变量指定使用压缩来
实现与主服务器
的从属连接。
在每种情况下,当指定使用
zlib
压缩时,如果双方都支持压缩算法
,则连接使用
压缩算法,否则将回退到未压缩连接。
可以在命令提示符下设置环境变量以影响命令处理器的当前调用,或永久设置以影响将来的调用。 要永久设置变量,可以在启动文件中设置变量,也可以使用系统提供的接口进行设置。 有关具体细节,请参阅命令解释程序的文档。 第4.9节“MySQL程序环境变量” 列出了影响MySQL程序操作的所有环境变量。
要指定环境变量的值,请使用适合命令处理器的语法。
例如,在Windows上,您可以设置
USER
变量以指定您的MySQL帐户名称。
为此,请使用以下语法:
SET USER =your_name
Unix上的语法取决于你的shell。
假设您要使用该
MYSQL_TCP_PORT
变量
指定TCP / IP端口号
。
典型的语法(例如
sh
,
ksh
,
bash
,
zsh
等)如下:
MYSQL_TCP_PORT = 3306 导出MYSQL_TCP_PORT
第一个命令设置变量,命令将变量
export
导出到shell环境,以便MySQL和其他进程可以访问它的值。
对于 csh 和 tcsh ,使用 setenv 使shell变量可用于环境:
setenv MYSQL_TCP_PORT 3306
设置环境变量的命令可以在命令提示符下执行以立即生效,但设置只会在您注销之前保持不变。 要使设置在每次登录时生效,请使用系统提供的界面,或将相应的命令放在命令解释程序每次启动时读取的启动文件中。
在Windows上,您可以使用“系统控制面板”(在“高级”下)设置环境变量。
在Unix上,典型的shell启动文件
.bashrc
或
.bash_profile
用于
庆典
,或
.tcshrc
为
tcsh的
。
假设您的MySQL程序已安装,
/usr/local/mysql/bin
并且您希望可以轻松调用这些程序。
为此,请将
PATH
环境变量
的值设置
为包含该目录。
例如,如果您的shell是
bash
,请将以下行添加到您的
.bashrc
文件中:
PATH = $ {PATH}:在/ usr /本地/ MySQL的/ bin中
bash
对登录和非登录shell使用不同的启动文件,因此您可能希望
.bashrc
为登录shell和
.bash_profile
非
登录shell
添加设置,
以确保
PATH
无论如何设置。
如果您的shell是
tcsh
,请将以下行添加到您的
.tcshrc
文件中:
setenv PATH $ {PATH}:/ usr / local / mysql / bin
如果主目录中不存在相应的启动文件,请使用文本编辑器创建它。
修改
PATH
设置后,在Windows上打开一个新的控制台窗口或在Unix上再次登录,以使设置生效。
本节介绍 mysqld ,MySQL服务器以及用于启动服务器的几个程序。
mysqld ,也称为MySQL Server,是完成MySQL安装中大部分工作的主程序。 MySQL Server管理对包含数据库和表的MySQL数据目录的访问。 数据目录也是其他信息(如日志文件和状态文件)的默认位置。
某些安装包包含名为 mysqld-debug 的服务器的调试版本 。 调用此版本而不是 mysqld 以进行调试支持,内存分配检查和跟踪文件支持(请参见 第29.5.1.2节“创建跟踪文件” )。
当MySQL服务器启动时,它会侦听来自客户端程序的网络连接,并代表这些客户端管理对数据库的访问。
该 mysqld的 程序具有可在启动时指定的许多选项。 有关选项的完整列表,请运行以下命令:
外壳> mysqld --verbose --help
MySQL服务器还有一组系统变量,它们在运行时会影响其操作。 系统变量可以在服务器启动时设置,其中许多可以在运行时更改以实现动态服务器重新配置。 MySQL Server还有一组状态变量,提供有关其操作的信息。 您可以监视这些状态变量以访问运行时性能特征。
有关MySQL服务器命令选项,系统变量和状态变量的完整说明,请参见 第5.1节“MySQL服务器” 。 有关安装MySQL和设置初始配置的信息,请参阅 第2章, 安装和升级MySQL 。
mysqld_safe 是 在Unix上 启动 mysqld 服务器 的推荐方法 。 mysqld_safe 添加了一些安全功能,例如在发生错误时重新启动服务器并将运行时信息记录到错误日志中。 本节后面将给出错误日志记录的说明。
对于某些Linux平台,从RPM或Debian软件包安装MySQL包括用于管理MySQL服务器启动和关闭的systemd支持。 在这些平台上, 没有安装 mysqld_safe, 因为它是不必要的。 有关更多信息,请参见 第2.5.9节“使用systemd管理MySQL服务器” 。
mysqld_safe
尝试启动名为
mysqld
的可执行文件
。
要覆盖默认行为并明确指定要运行的服务器的名称,请指定
mysqld_safe的
选项
--mysqld
或
--mysqld-version
选项
。
您还可以使用它
来指示
mysqld_safe
应该查找服务器
的目录
。
--ledir
mysqld_safe的 许多 选项与 mysqld 的选项相同 。 请参见 第5.1.7节“服务器命令选项” 。
mysqld_safe
未知的选项
如果在命令行中指定,
则传递给
mysqld
,但如果在
[mysqld_safe]
选项文件
的
组
中指定,则忽略它们
。
请参见
第4.2.2.2节“使用选项文件”
。
mysqld_safe的
读取的所有选项
[mysqld]
,
[server]
以及
[mysqld_safe]
选项文件中的部分。
例如,如果您指定这样的
[mysqld]
部分,
mysqld_safe
将查找并使用以下
--log-error
选项:
的[mysqld] 对数误差= error.log中
为了向后兼容,
mysqld_safe
也会读取
[safe_mysqld]
部分,但要成为最新部分,您应该将这些部分重命名为
[mysqld_safe]
。
mysqld_safe 接受命令行和选项文件中的选项,如下表所述。 有关MySQL程序使用的选项文件的信息,请参见 第4.2.2.2节“使用选项文件” 。
表4.3 mysqld_safe选项
格式 | 描述 |
---|---|
--basedir | MySQL安装目录的路径 |
--core文件大小 | mysqld应该能够创建的核心文件的大小 |
--datadir | 数据目录的路径 |
--defaults-额外文件 | 除常用选项文件外,还可以读取命名选项文件 |
--defaults文件 | 只读命名选项文件 |
- 救命 | 显示帮助消息并退出 |
--ledir | 服务器所在目录的路径 |
--log错误 | 将错误日志写入命名文件 |
--malloc-LIB | 用于mysqld的备用malloc库 |
--mysqld | 要启动的服务器程序的名称(在ledir目录中) |
--mysqld安全日志,时间戳 | 用于记录的时间戳格式 |
--mysqld版本 | 服务器程序名称的后缀 |
--nice | 使用nice程序设置服务器调度优先级 |
--no-默认 | 不读选项文件 |
--open-文件限制 | mysqld应该能够打开的文件数 |
--pid文件 | 服务器进程标识文件的路径名 |
--plugin-DIR | 安装插件的目录 |
- 港口 | 侦听TCP / IP连接的端口号 |
--skip-杀-的mysqld | 不要试图杀死流浪的mysqld进程 |
--skip-系统日志 | 不要将错误消息写入syslog; 使用错误日志文件 |
- 插座 | 用于侦听Unix套接字连接的套接字文件 |
--syslog | 将错误消息写入syslog |
--syslog标签 | 写入syslog的消息的标签后缀 |
- 时区 | 将TZ时区环境变量设置为命名值 |
- 用户 | 以具有名称user_name或数字用户ID user_id的用户身份运行mysqld |
显示帮助消息并退出。
MySQL安装目录的路径。
mysqld 应该能够创建 的核心文件的大小 。 选项值传递给 ulimit -c 。
该
innodb_buffer_pool_in_core_file
变量可用于减少支持它的操作系统上的核心文件的大小。
有关更多信息,请参见
第15.8.3.8节“从核心文件中排除缓冲池页面”
。
数据目录的路径。
--defaults-extra-file=
file_name
除了常用选项文件外,还请阅读此选项文件。
如果文件不存在或无法访问,则服务器将退出并显示错误。
file_name
如果作为相对路径名而不是完整路径名给出,则相对于当前目录进行解释。
如果使用它,它必须是命令行上的第一个选项。
有关此选项和其他选项文件选项的其他信息,请参见 第4.2.2.3节“影响选项文件处理的命令行选项” 。
仅使用给定的选项文件。
如果文件不存在或无法访问,则服务器将退出并显示错误。
file_name
如果作为相对路径名而不是完整路径名给出,则相对于当前目录进行解释。
如果使用它,它必须是命令行上的第一个选项。
有关此选项和其他选项文件选项的其他信息,请参见 第4.2.2.3节“影响选项文件处理的命令行选项” 。
如果 mysqld_safe 找不到服务器,请使用此选项指示服务器所在目录的路径名。
此选项仅在命令行上接受,而不在选项文件中接受。
在使用systemd的平台上,可以在值中指定值
MYSQLD_OPTS
。
请参见
第2.5.9节“使用systemd管理MySQL服务器”
。
将错误日志写入给定文件。 请参见 第5.4.2节“错误日志” 。
此选项控制
mysqld_safe
生成的日志输出中的时间戳格式
。
以下列表描述了允许的值。
对于任何其他值,
mysqld_safe会
记录警告并使用
UTC
格式。
UTC
,
utc
ISO 8601 UTC格式(与
--log_timestamps=UTC
服务器
相同
)。
这是默认值。
SYSTEM
,
system
ISO 8601本地时间格式(与
--log_timestamps=SYSTEM
服务器
相同
)。
HYPHEN
,
hyphen
YY-MM-DD h:mm:ss
格式,如
MySQL 5.6
中的
mysqld_safe
。
LEGACY
,
legacy
YYMMDD hh:mm:ss
格式,如
MySQL 5.6之前的
mysqld_safe
。
用于内存分配而不是系统
malloc()
库的库的名称。
该选项的值必须是一个目录中
/usr/lib
,
/usr/lib64
,
/usr/lib/i386-linux-gnu
,或
/usr/lib/x86_64-linux-gnu
。
该
--malloc-lib
选项的工作原理是修改
LD_PRELOAD
环境值以影响动态链接,以使加载程序在
mysqld
运行
时找到内存分配库
:
如果未给出该选项,或者没有给出值(
--malloc-lib=
),
LD_PRELOAD
则不会修改
该选项
,
也不会尝试使用该选项
tcmalloc
。
如果选项为
--malloc-lib=tcmalloc
,则
mysqld_safe在中
查找
tcmalloc
库
/usr/lib
。
如果
tmalloc
找到,
则将
其路径名添加到
mysqld
的
LD_PRELOAD
值
的开头
。
如果
未找到,则
mysqld_safe将
中止并显示错误。
tcmalloc
如果选项为
,
则将
完整路径添加到
值
的开头
。
如果完整路径指向不存在或不可读的文件,则
mysqld_safe将
中止并显示错误。
--malloc-lib=
/path/to/some/library
LD_PRELOAD
对于
mysqld_safe
添加路径名的情况
LD_PRELOAD
,它将路径添加到变量已有的任何现有值的开头。
在使用systemd管理服务器的系统上,
mysqld_safe
不可用。
而是通过设置
LD_PRELOAD
来
指定分配库
/etc/sysconfig/mysql
。
Linux用户可以
libtcmalloc_minimal.so
在
tcmalloc
安装软件包的
任何平台上
使用该
库,方法
是
/usr/lib
将这些行添加到
my.cnf
文件中:
[mysqld_safe的] 的malloc-LIB = tcmalloc
要使用特定
tcmalloc
库,请指定其完整路径名。
例:
[mysqld_safe的] 的malloc-LIB = /选择/ LIB / libtcmalloc_minimal.so
ledir
要启动
的服务器程序的名称(在
目录中)。
如果您使用MySQL二进制分发但是具有二进制分发之外的数据目录,则需要此选项。
如果
mysqld_safe
找不到服务器,请使用该
--ledir
选项指示服务器所在目录的路径名。
此选项仅在命令行上接受,而不在选项文件中接受。
在使用systemd的平台上,可以在值中指定值
MYSQLD_OPTS
。
请参见
第2.5.9节“使用systemd管理MySQL服务器”
。
此选项与选项类似
--mysqld
,但您只指定服务器程序名称的后缀。
基本名称假定为
mysqld
。
例如,如果使用
--mysqld-version=debug
,
mysqld_safe
将
在
目录中
启动
mysqld-debug
程序
ledir
。
如果参数
--mysqld-version
为空,则
mysqld_safe
在
目录中
使用
mysqld
ledir
。
此选项仅在命令行上接受,而不在选项文件中接受。
在使用systemd的平台上,可以在值中指定值
MYSQLD_OPTS
。
请参见
第2.5.9节“使用systemd管理MySQL服务器”
。
使用该
nice
程序将服务器的调度优先级设置为给定值。
不要读任何选项文件。
如果程序启动由于从选项文件中读取未知选项而失败,
--no-defaults
则可用于防止它们被读取。
如果使用它,它必须是命令行上的第一个选项。
有关此选项和其他选项文件选项的其他信息,请参见 第4.2.2.3节“影响选项文件处理的命令行选项” 。
mysqld 应该能够打开 的文件数 。 选项值传递给 ulimit -n 。
您必须启动
mysqld_safe的
为
root
这个才能正常工作。
mysqld 应该用于其进程ID文件 的路径名 。
插件目录的路径名。
侦听TCP / IP连接时服务器应使用的端口号。
除非服务器
root
系统用户
启动服务器,否则端口号必须为1024或更高
。
不要试图 在启动时 杀死流浪的 mysqld 进程。 此选项仅适用于Linux。
监听本地连接时服务器应使用的Unix套接字文件。
--syslog
导致
syslog
在支持
记录器
程序的
系统
上发送错误消息
。
--skip-syslog
抑制使用
syslog
;
消息将写入错误日志文件。
当
syslog
用于错误日志记录时,
daemon.err
facility / severity用于所有日志消息。
不推荐
使用这些选项来控制
mysqld
日志记录。
要将错误日志输出写入系统日志,请使用
第5.4.2.7节“错误记录到系统日志”中的说明
。
要控制设施,请使用服务器
log_syslog_facility
系统变量。
用于登录到
syslog
,从消息
mysqld_safe的
和
mysqld的
写入用的识别符
mysqld_safe
和
mysqld
分别。
要为标识符指定后缀,请使用
,将标识符修改为
和
。
--syslog-tag=
tag
mysqld_safe-
tag
mysqld-
tag
不推荐
使用此选项来控制
mysqld
日志记录。
请改用服务器
log_syslog_tag
系统变量。
请参见
第5.4.2.7节“记录到系统日志的错误”
。
将
TZ
时区环境变量设置为给定的选项值。
有关合法的时区规范格式,请参阅操作系统文档。
以
具有名称
或数字用户ID的用户身份
运行
mysqld
服务器
。
(
此上下文中的
“
用户
”
是指系统登录帐户,而不是授权表中列出的MySQL用户。)
user_name
user_id
如果
使用
或
选项命令选项文件
执行
mysqld_safe
,则
该选项必须是命令行中给出的第一个选项,否则将不使用选项文件。
例如,此命令将不使用命名选项文件:
--defaults-file
--defaults-extra-file
MySQL的> mysqld_safe --port=port_num
--defaults-file=file_name
而是,使用以下命令:
MySQL的> mysqld_safe --defaults-file=file_name
--port=port_num
该 mysqld_safe的 脚本编写,以便它可以正常启动从一个源或MySQL的一个二进制分发安装在服务器上,即使这些类型的分布通常在稍微不同的地点安装服务器。 (请参见 第2.1.4节“安装布局” 。) mysqld_safe 期望满足下列条件之一:
可以找到相对于工作目录(
调用
mysqld_safe
的目录
)
的服务器和数据库
。
对于二进制发行版,
mysqld_safe
在其工作目录下查找
bin
和
data
目录。
对于源代码分发,它会查找
libexec
和
var
目录。
如果
从MySQL安装目录中
执行
mysqld_safe
(例如,
/usr/local/mysql
对于二进制分发)
,
则应满足此条件
。
如果无法找到相对于工作目录的服务器和数据库,
mysqld_safe会
尝试按绝对路径名找到它们。
典型的位置是
/usr/local/libexec
和
/usr/local/var
。
实际位置由在构建时分配到分布中的值确定。
如果MySQL安装在配置时指定的位置,它们应该是正确的。
因为 mysqld_safe 试图找到相对于其自己的工作目录的服务器和数据库,所以只要 从MySQL安装目录 运行 mysqld_safe ,就可以在 任何地方安装MySQL的二进制发行版 :
shell> shell>cd
mysql_installation_directory
bin/mysqld_safe &
如果
mysqld_safe
失败,即使从MySQL安装目录调用,也请指定
--ledir
和
--datadir
选项以指示服务器和数据库在系统中的目录。
mysqld_safe 尝试使用 睡眠 和 日期 系统实用程序来确定它每秒尝试启动的次数。 如果存在这些实用程序并且每秒尝试的启动次数大于5,则 mysqld_safe将 等待1秒钟后再次启动。 这是为了防止在重复故障时CPU使用率过高。 (Bug#11761530,Bug#54035)
当您使用 mysqld_safe 启动 mysqld时 , mysqld_safe会 安排来自其自身和 mysqld的 错误(和通知)消息 以转到同一目的地。
有几个 mysqld_safe 选项用于控制这些消息的目标:
--log-error=
:将错误消息写入指定的错误文件。
file_name
--syslog
:将错误消息写入
syslog
支持
记录器
程序的
系统上
。
--skip-syslog
:不要写错误消息
syslog
。
消息将写入缺省错误日志文件(
在数据目录中),如果
host_name
.err--log-error
给出选项,则
写入命名文件
。
如果没有给出这些选项,则默认为
--skip-syslog
。
当
mysqld_safe
写入消息时,通知会转到日志记录目标(
syslog
或错误日志文件)和
stdout
。
错误转到记录目标和
stderr
。
不推荐使用
mysqld_safe
控制
mysqld
日志记录
。
请改用服务器的本机
支持。
有关更多信息,请参见
第5.4.2.7节“将错误记录到系统日志”
。
syslog
Unix和类Unix系统上的MySQL发行版包括一个名为 mysql.server 的脚本 ,该 脚本 使用 mysqld_safe 启动MySQL服务器 。 它可以在Linux和Solaris等使用System V样式运行目录来启动和停止系统服务的系统上使用。 它也被macOS Startup Item for MySQL使用。
mysql.server 是MySQL源代码树中使用的脚本名称。 安装的名称可能不同(例如, mysqld 或 mysql )。 在下面的讨论中, 根据您的系统 调整名称 mysql.server 。
对于某些Linux平台,从RPM或Debian软件包安装MySQL包括用于管理MySQL服务器启动和关闭的systemd支持。 在这些平台上, 没有安装 mysql.server 和 mysqld_safe ,因为它们是不必要的。 有关更多信息,请参见 第2.5.9节“使用systemd管理MySQL服务器” 。
要使用
mysql.server
脚本
手动启动或停止服务器,请使用
start
或
stop
参数
从命令行调用它
:
shell>mysql.server start
shell>mysql.server stop
mysql.server
将位置更改为MySQL安装目录,然后调用
mysqld_safe
。
要以某个特定用户身份运行服务器
,请在全局
选项文件
组中
添加适当的
user
选项
,如本节后面所示。
(
如果您在非标准位置安装了MySQL的二进制发行版,则
必须编辑
mysql.server
。修改它以在运行
mysqld_safe
之前将位置更改到正确的目录
。如果这样做,则修改后的
mysql
版本
。服务器
[mysqld]
/etc/my.cnf
如果你将来升级MySQL,可能会被覆盖;
制作您可以重新安装的已编辑版本的副本。)
mysql.server stop 通过向服务器发送信号来停止服务器。 您也可以通过执行 mysqladmin shutdown 手动停止服务器 。
要在服务器上自动启动和停止MySQL,必须将start和stop命令添加到
/etc/rc*
文件中
的相应位置
:
如果您使用Linux服务器RPM软件包(
)或本机Linux软件包安装,则
mysql.server
脚本可能会安装在
名称为
或
的
目录中
。
有关
Linux RPM软件包
的更多信息,
请参见
第2.5.4节“使用Oracle的RPM软件包在Linux上安装MySQL”
。
MySQL-server-
VERSION
.rpm/etc/init.d
mysqld
mysql
如果从源代码发行版安装MySQL或使用不
自动
安装
mysql.server
的二进制分发格式,则
可以手动安装脚本。
它可以
support-files
在MySQL安装目录下
的
目录中
找到,也可以
在MySQL源代码树中找到。
将脚本复制到
/etc/init.d
名为
mysql
的
目录
并使其可执行:
shell>cp mysql.server /etc/init.d/mysql
shell>chmod +x /etc/init.d/mysql
安装脚本后,激活它以在系统启动时运行所需的命令取决于您的操作系统。 在Linux上,您可以使用 chkconfig :
外壳> chkconfig --add mysql
在某些Linux系统上,似乎还需要以下命令才能完全启用 mysql 脚本:
外壳> chkconfig --level 345 mysql on
在FreeBSD上,启动脚本通常应该进入
/usr/local/etc/rc.d/
。
安装
mysql.server
脚本
/usr/local/etc/rc.d/mysql.server.sh
以启用自动启动。
该
rc(8)
手册指出,在这个目录中的脚本只有当他们的基本名称匹配的执行
*.sh
shell文件名模式。
目录中存在的任何其他文件或目录都将被忽略。
作为上述设置的替代方案,某些操作系统也会
在启动时
使用
/etc/rc.local
或
/etc/init.d/boot.local
启动其他服务。
要使用此方法启动MySQL,请将以下命令附加到相应的启动文件中:
/ bin / sh -c'cd / usr / local / mysql; ./bin/mysqld_safe --user = mysql&'
对于其他系统,请参阅操作系统文档以了解如何安装启动脚本。
mysql.server文件
读取的选项
[mysql.server]
和
[mysqld]
的选项文件的部分。
为了向后兼容,它还会读取
[mysql_server]
部分,但要成为最新部分,您应该将这些部分重命名为
[mysql.server]
。
您可以
在全局
文件中
添加
mysql.server的
选项
/etc/my.cnf
。
典型
my.cnf
文件可能如下所示:
的[mysqld] DATADIR =的/ usr /本地/ MySQL的/无功 插座= / var / tmp中/的mysql.sock 端口= 3306 用户= MySQL的 [mysql.server的] BASEDIR =的/ usr /本地/ MySQL的
该
mysql.server的
脚本支持下表中显示的选项。
如果指定,则
必须
将
它们
放在选项文件中,而不是放在命令行中。
mysql.server
仅支持
start
和
stop
作为命令行参数。
表4.4 mysql.server选项 - 文件选项
选项名称 | 描述 | 类型 |
---|---|---|
basedir |
MySQL安装目录的路径 | 目录名称 |
datadir |
MySQL数据目录的路径 | 目录名称 |
pid-file |
服务器应在其中写入其进程ID的文件 | 文件名 |
service-startup-timeout |
等待服务器启动多长时间 | 整数 |
MySQL安装目录的路径。
MySQL数据目录的路径。
服务器应在其中写入其进程ID的文件的路径名。 服务器在数据目录中创建文件,除非给出绝对路径名来指定不同的目录。
如果未给出此选项,则
mysql.server
使用默认值
。
传递给
mysqld_safe
的PID文件值将
覆盖
host_name
.pid[mysqld_safe]
选项文件组中
指定的任何值
。
因为
mysql.server
读取
[mysqld]
选项文件组但不
读取
[mysqld_safe]
组,所以可以确保
mysqld_safe
在从
mysql.server
调用
时获得相同的值,
就像通过
pid-file
在
[mysqld_safe]
和
[mysqld]
组中
设置
相同的
设置
手动调用一样
。
service-startup-timeout=
seconds
等待确认服务器启动的时间长度。 如果服务器在此时间内未启动,则 mysql.server将 退出并显示错误。 默认值为900.值为0表示不等待启动。 负值意味着永远等待(没有超时)。
mysqld_multi 旨在管理几个 侦听不同Unix套接字文件和TCP / IP端口上的连接的 mysqld 进程。 它可以启动或停止服务器,或报告其当前状态。
对于某些Linux平台,从RPM或Debian软件包安装MySQL包括用于管理MySQL服务器启动和关闭的systemd支持。 在这些平台上, 没有安装 mysqld_multi, 因为它是不必要的。 有关使用systemd处理多个MySQL实例的信息,请参见 第2.5.9节“使用systemd管理MySQL服务器” 。
mysqld_multi
搜索
在
(或在
选项
命名的文件中)命名的组
。
可以是任何正整数。
此编号在以下讨论中称为选项组编号,或
。
组号将选项组彼此区分开来,并用作
mysqld_multi的
参数,
以指定要为其启动,停止或获取状态报告的服务器。
这些组中列出的选项与
用于启动
mysqld
的
组中使用的
选项相同
。
(例如,参见
第2.10.5节“自动启动和停止MySQL”
[mysqld
N
]my.cnf
--defaults-file
N
GNR
[mysqld]
但是,当使用多个服务器时,每个服务器都必须使用自己的值来选择Unix套接字文件和TCP / IP端口号等选项。
有关在多服务器环境中每个服务器必须唯一的选项的更多信息,请参见
第5.8节“在一台计算机上运行多个MySQL实例”
。
要调用 mysqld_multi ,请使用以下语法:
外壳> mysqld_multi [options
] {start|stop|reload|report} [GNR
[,GNR
] ...]
start
,
stop
,
reload
(停止和重新启动),和
report
表明要执行哪个操作。
您可以为单个服务器或多个服务器执行指定的操作,具体取决于
GNR
选项名称
后面的
列表。
如果没有列表,
mysqld_multi
将对选项文件中的所有服务器执行操作。
每个
GNR
值表示选项组编号或组编号范围。
该值应该是选项文件中组名称末尾的数字。
例如,
GNR
名为的组
[mysqld17]
是
17
。
要指定数字范围,请用短划线分隔第一个和最后一个数字。
该
GNR
值
10-13
表示组
[mysqld10]
通过
[mysqld13]
。
可以在命令行上指定多个组或组范围,以逗号分隔。
列表中必须没有空格字符(空格或制表符)
GNR
;
忽略空格字符后的任何内容。
此命令使用选项组启动单个服务器
[mysqld17]
:
外壳> mysqld_multi start 17
此命令使用选项组
[mysqld8]
并
[mysqld10]
通过
[mysqld13]
以下方式
停止多个服务器
:
外壳> mysqld_multi stop 8,10-13
有关如何设置选项文件的示例,请使用以下命令:
外壳> mysqld_multi --example
mysqld_multi 搜索选项文件,如下所示:
使用时
--no-defaults
,不会读取任何选项文件。
使用时
,只读取指定的文件。
--defaults-file=
file_name
否则,将读取标准位置列表中的选项文件,包括该
选项
指定的任何文件
(如果有)。
(如果多次给出该选项,则使用最后一个值。)
--defaults-extra-file=
file_name
有关这些选项文件选项和其他选项文件选项的其他信息,请参见 第4.2.2.3节“影响选项文件处理的命令行选项” 。
搜索读取的选项文件
[mysqld_multi]
和
选项组。
该
组可用于
mysqld_multi
本身的
选项
。
groups可用于传递给特定
mysqld
实例的
选项
。
[mysqld
N
][mysqld_multi]
[mysqld
N
]
这些
[mysqld]
或
[mysqld_safe]
组可用于
mysqld
或
mysqld_safe的
所有实例读取的公共选项
。
您可以指定一个
选项,以便为该实例使用不同的配置文件,在这种情况下
,该文件中
的
或
组将用于该实例。
--defaults-file=
file_name
[mysqld]
[mysqld_safe]
mysqld_multi 支持以下选项。
显示帮助消息并退出。
显示示例选项文件。
指定日志文件的名称。 如果文件存在,则会将日志输出附加到其中。
用于停止服务器 的 mysqladmin 二进制文件。
要使用
的
mysqld
二进制文件。
请注意,您也可以将
mysqld_safe
指定
为此选项的值。
如果使用
mysqld_safe
启动服务器,则可以
在相应的
选项组中
包含
mysqld
或
ledir
选项
。
这些选项指示
mysqld_safe
应该启动
的服务器的名称以及服务器
所在目录的路径名。
(请参阅
第4.3.2节“
mysqld_safe
- MySQL服务器启动脚本”中
有关这些选项的说明
。)示例:
[mysqld
N
]
[mysqld38] mysqld = mysqld-debug ledir = / opt / local / mysql / libexec
打印日志信息
stdout
而不是日志文件。
默认情况下,输出将转到日志文件。
调用 mysqladmin 时要使用的MySQL帐户的密码 。 请注意,与其他MySQL程序不同,此选项的密码值不是可选的。
静音模式; 禁用警告。
通过TCP / IP端口而不是Unix套接字文件连接到每个MySQL服务器。
(如果缺少套接字文件,服务器可能仍在运行,但只能通过TCP / IP端口访问。)默认情况下,使用Unix套接字文件建立连接。
此选项会影响
stop
和
report
操作。
调用 mysqladmin 时要使用的MySQL帐户的用户名 。
更加冗长。
显示版本信息并退出。
关于 mysqld_multi的 一些注意 事项 :
最重要的是 :在使用 mysqld_multi 之前 ,请确保您了解传递给 mysqld 服务器 的选项的含义 以及 为什么 要使用单独的 mysqld 进程。 注意使用 具有相同数据目录的 多个 mysqld 服务器 的危险 。 使用单独的数据目录,除非您 知道 自己在做什么。 开始用相同的数据目录的多台服务器并 没有 给你一个线程系统额外的性能。 看到 第5.8节“在一台机器上运行多个MySQL实例” 。
确保
启动
特定
mysqld
进程
的Unix帐户完全可以访问每个服务器的数据目录
。
除非你
知道
自己在做什么
,否则
不要
使用Unix
root
帐户
。
请参见
第6.1.5节“如何以普通用户身份运行MySQL”
。
确保用于停止
mysqld
服务器
的MySQL帐户
(使用
mysqladmin
程序)具有与每个服务器相同的用户名和密码。
此外,请确保该帐户具有该
SHUTDOWN
权限。
如果要管理的服务器具有管理帐户的不同用户名或密码,则可能需要在每个具有相同用户名和密码的服务器上创建帐户。
例如,您可以
multi_admin
通过为每个服务器执行以下命令来
设置公共
帐户:
外壳>mysql -u root -S /tmp/mysql.sock -p
输入密码: mysql>CREATE USER 'multi_admin'@'localhost' IDENTIFIED BY 'multipass';
mysql>GRANT SHUTDOWN ON *.* TO 'multi_admin'@'localhost';
请参见
第6.2节“访问控制和帐户管理”
。
你必须为每个
mysqld
服务器
执行此操作
。
连接到每个参数时,请适当更改连接参数。
请注意,帐户名的主机名部分必须允许您
multi_admin
从要运行
mysqld_multi
的主机
进行连接
。
每个
mysqld
的Unix套接字文件和TCP / IP端口号必须不同
。
(或者,如果主机具有多个网络地址,则可以设置
bind_address
系统变量以使不同的服务器侦听不同的接口。)
--pid-file
如果您使用
mysqld_safe
启动
mysqld
(例如,
--mysqld=mysqld_safe
)每个
mysqld
应该有自己的进程ID文件
,
那么
该
选项非常重要
。
使用
mysqld_safe
而不是
mysqld
的优点
是
mysqld_safe
监视其
mysqld
进程并在进程由于使用
kill
-9
或由于其他原因(例如分段错误)
发送的信号而终止时重新启动它
。
您可能希望使用
mysqld
--user
选项
,但要执行此操作,您需要以
Unix超级用户(
)
运行
mysqld_multi
脚本
。
选项文件中的选项无关紧要;
如果您不是超级用户,并且
在您自己的Unix帐户下启动
mysqld
进程,则会
收到警告
。
root
以下示例显示了如何设置用于
mysqld_multi
的选项文件
。
其中顺序
mysqld的
程序被启动或停止取决于它们出现在选项文件的顺序。
组号不需要形成完整的序列。
在示例中有意省略了
第一
组
和第五
组,以说明您可以
在选项文件中
包含
“
间隙
”
。
这为您提供了更大的灵活性
[mysqld
N
]
#这是mysqld_multi的my.cnf文件的示例。 #通常这个文件位于home dir~ / .my.cnf或/etc/my.cnf [mysqld_multi的] mysqld = / usr / local / mysql / bin / mysqld_safe mysqladmin = / usr / local / mysql / bin / mysqladmin user = multi_admin password = my_password [mysqld2] socket = /tmp/mysql.sock2 port = 3307 pid-file = /usr/local/mysql/data2/hostname.pid2 datadir = / usr / local / mysql / data2 language = / usr / local / mysql / share / mysql / english user = unix_user1 [mysqld3] mysqld = / path / to / mysqld_safe ledir = / path / to / mysqld-binary / mysqladmin = / path / to / mysqladmin socket = /tmp/mysql.sock3 port = 3308 pid-file = /usr/local/mysql/data3/hostname.pid3 datadir = / usr / local / mysql / data3 language = / usr / local / mysql / share / mysql / swedish user = unix_user2 [mysqld4] socket = /tmp/mysql.sock4 port = 3309 pid-file = /usr/local/mysql/data4/hostname.pid4 datadir = / usr / local / mysql / data4 language = / usr / local / mysql / share / mysql / estonia user = unix_user3 [mysqld6] socket = /tmp/mysql.sock6 port = 3311 pid-file = /usr/local/mysql/data6/hostname.pid6 datadir = / usr / local / mysql / data6 language = / usr / local / mysql / share / mysql / japanese user = unix_user4
请参见 第4.2.2.2节“使用选项文件” 。
安装或升级MySQL时使用本节中的程序。
comp_err
创建
mysqld
errmsg.sys
使用
的
文件,
以确定要为不同的错误代码显示的错误消息。
comp_err
通常在构建MySQL时自动运行。
它
从位于
MySQL源代码分发中
的文本文件
编译
文件
。
errmsg.sys
sql/share/errmsg-utf8.txt
comp_err
还生成
mysqld_error.h
,
mysqld_ername.h
和
sql_state.h
头文件。
有关如何定义错误消息的详细信息,请参阅 MySQL Internals Manual 。
像这样 调用 comp_err :
外壳> 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
程序退出时打印一些调试信息。
--header_file=
,
file_name
-H
file_name
错误头文件的名称。
默认是
mysqld_error.h
。
--in_file=
,
file_name
-F
file_name
输入文件的名称。
默认是
../sql/share/errmsg-utf8.txt
。
--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
。
--statefile=
,
file_name
-S
file_name
SQLSTATE头文件的名称。
默认是
sql_state.h
。
--version
,
-V
显示版本信息并退出。
此程序使您能够通过以下方式提高MySQL安装的安全性:
您可以为
root
帐户
设置密码
。
您可以删除
root
可从本地主机外部访问的帐户。
您可以删除匿名用户帐户。
您可以删除
test
数据库(默认情况下可以由所有用户访问,甚至是匿名用户),以及允许任何人访问名称以...开头的数据库的权限
test_
。
mysql_secure_installation 可帮助您实现类似于 第2.10.4节“保护初始MySQL帐户”中 所述的安全建议 。
正常用法是连接本地MySQL服务器; 不带参数 调用 mysql_secure_installation :
外壳> mysql_secure_installation
执行时, mysql_secure_installation 会提示您确定要执行的操作。
该
validate_password
组件可用于密码强度检查。
如果未安装插件,
mysql_secure_installation将
提示用户是否安装它。
如果启用了以后输入的任何密码,请使用该插件进行检查。
大多数常见的MySQL客户端选项如
--host
和
--port
可以在命令行和选项文件中使用。
例如,要使用端口3307通过IPv6连接到本地服务器,请使用以下命令:
外壳> mysql_secure_installation --host=::1 --port=3307
mysql_secure_installation
支持下面的选项,可以在命令行或在指定
[mysql_secure_installation]
与
[client]
一个选项文件的组。
有关MySQL程序使用的选项文件的信息,请参见
第4.2.2.2节“使用选项文件”
。
表4.5 mysql_secure_installation选项
格式 | 描述 | 介绍 |
---|---|---|
--defaults-额外文件 | 除常用选项文件外,还可以读取命名选项文件 | |
--defaults文件 | 只读命名选项文件 | |
--defaults基团的后缀 | 选项组后缀值 | |
- 救命 | 显示帮助消息并退出 | |
- 主办 | 要连接的主机(IP地址或主机名) | |
--no-默认 | 不读选项文件 | |
- 密码 | 接受但始终被忽略。 无论何时调用mysql_secure_installation,都会提示用户输入密码。 | |
- 港口 | 用于连接的TCP / IP端口号 | |
--print-默认 | 打印默认选项 | |
- 协议 | 要使用的连接协议 | |
- 插座 | 对于localhost的连接,要使用的Unix套接字文件 | |
--ssl-CA | 包含受信任的SSL证书颁发机构列表的文件 | |
--ssl-capath | 包含受信任的SSL证书颁发机构证书文件的目录 | |
--ssl证书 | 包含X.509证书的文件 | |
--ssl-密码 | 用于连接加密的允许密码列表 | |
--ssl-CRL | 包含证书吊销列表的文件 | |
--ssl-crlpath | 包含证书吊销列表文件的目录 | |
--ssl-FIPS模式 | 是否在客户端启用FIPS模式 | 8.0.11 |
--ssl键 | 包含X.509密钥的文件 | |
--tls-密码套件 | 允许加密连接的TLSv1.3密码套件 | 8.0.16 |
--tls版本 | 允许加密连接的协议 | |
- 默认情况下使用 | 执行时没有用户交互性 | |
- 用户 | 连接到服务器时使用的MySQL用户名 |
--help
,
-?
显示帮助消息并退出。
--defaults-extra-file=
file_name
在全局选项文件之后读取此选项文件,但在用户选项文件之前(在Unix上)。
如果文件不存在或无法访问,则会发生错误。
file_name
如果作为相对路径名而不是完整路径名给出,则相对于当前目录进行解释。
有关此选项和其他选项文件选项的其他信息,请参见 第4.2.2.3节“影响选项文件处理的命令行选项” 。
仅使用给定的选项文件。
如果文件不存在或无法访问,则会发生错误。
file_name
如果作为相对路径名而不是完整路径名给出,则相对于当前目录进行解释。
有关此选项和其他选项文件选项的其他信息,请参见 第4.2.2.3节“影响选项文件处理的命令行选项” 。
不仅要读取常用选项组,还要读取通常名称和后缀的组
str
。
例如,
mysql_secure_installation
通常会读取
[client]
和
[mysql_secure_installation]
组。
如果
--defaults-group-suffix=_other
给出
了该
选项,
mysql_secure_installation
也会读取
[client_other]
和
[mysql_secure_installation_other]
组。
有关此选项和其他选项文件选项的其他信息,请参见 第4.2.2.3节“影响选项文件处理的命令行选项” 。
--host=
,
host_name
-h
host_name
连接到给定主机上的MySQL服务器。
不要读任何选项文件。
如果程序启动由于从选项文件中读取未知选项而失败,
--no-defaults
则可用于防止它们被读取。
例外情况是,
.mylogin.cnf
在所有情况下都会读取文件(如果存在)。
这允许以比命令行更安全的方式指定密码,即使
--no-defaults
使用
密码
也是如此。
(
.mylogin.cnf
由
mysql_config_editor
实用程序
创建
。请参见
第4.6.7节“
mysql_config_editor
- MySQL配置实用程序”
。)
有关此选项和其他选项文件选项的其他信息,请参见 第4.2.2.3节“影响选项文件处理的命令行选项” 。
--password=
,
password
-p
password
此选项已被接受但被忽略。 无论是否使用此选项, mysql_secure_installation 始终会提示用户输入密码。
--port=
,
port_num
-P
port_num
用于连接的TCP / IP端口号。
打印程序名称以及从选项文件中获取的所有选项。
有关此选项和其他选项文件选项的其他信息,请参见 第4.2.2.3节“影响选项文件处理的命令行选项” 。
--protocol={TCP|SOCKET|PIPE|MEMORY}
用于连接服务器的连接协议。 当其他连接参数通常会导致协议被使用而不是您想要的协议时,它很有用。 有关允许值的详细信息,请参见 第4.2.3节“连接到MySQL服务器” 。
--socket=
,
path
-S
path
用于连接
localhost
,要使用的Unix套接字文件,或者在Windows上,要使用的命名管道的名称。
以“开头”选项
--ssl
指定是否使用SSL连接到服务器,并指明在何处查找SSL密钥和证书。
请参见
第6.3.2节“加密连接的命令选项”
。
--ssl-fips-mode={OFF|ON|STRICT}
控制是否在客户端启用FIPS模式。
该
--ssl-fips-mode
选项与其他选项的不同之处在于
,它不用于建立加密连接,而是用于影响允许的加密操作。
请参见
第6.5节“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库。 有关详细信息,请参见 第6.3.6节“加密连接协议和密码” 。
MySQL 8.0.16中添加了此选项。
客户端允许加密连接的协议。 该值是一个或多个以逗号分隔的协议名称的列表。 可以为此选项命名的协议取决于用于编译MySQL的SSL库。 有关详细信息,请参见 第6.3.6节“加密连接协议和密码” 。
非交互式执行。 此选项可用于无人参与的安装操作。
--user=
,
user_name
-u
user_name
连接到服务器时使用的MySQL用户名。
如果缺少这些文件,此程序将创建SSL证书和密钥文件以及使用SSL进行安全连接所需的RSA密钥对文件以及使用RSA通过未加密连接进行安全密码交换。 如果现有的SSL文件已过期, mysql_ssl_rsa_setup 也可用于创建新的SSL文件。
mysql_ssl_rsa_setup 使用 openssl 命令,因此它的使用取决于在您的机器上安装OpenSSL。
对于使用OpenSSL编译的MySQL发行版,生成SSL和RSA文件的另一种方法是让服务器自动生成它们。 请参见 第6.3.3.1节“使用MySQL创建SSL和RSA证书和密钥” 。
mysql_ssl_rsa_setup 有助于降低使用SSL的障碍,方便生成所需的文件。 但是, mysql_ssl_rsa_setup 生成的 证书 是自签名的,这不是很安全。 获得使用 mysql_ssl_rsa_setup 创建的文件的经验后 ,请考虑从注册的证书颁发机构获取CA证书。
像这样 调用 mysql_ssl_rsa_setup :
外壳> 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 服务器cert.pem 服务器key.pem
如果存在任何这些文件,则 mysql_ssl_rsa_setup不会 创建任何SSL文件。 否则,它会调用 openssl 来创建它们,以及一些额外的文件:
ca.pem自签名CA证书 ca-key.pem CA私钥 server-cert.pem服务器证书 server-key.pem服务器私钥 client-cert.pem客户端证书 client-key.pem客户端私钥
这些文件使用SSL启用安全客户端连接; 请参见 第6.3.1节“配置MySQL以使用加密连接” 。
mysql_ssl_rsa_setup 使用以下名称检查数据目录中的RSA文件:
private_key.pem私钥/公钥对的私有成员 public_key.pem私钥/公钥对的公共成员
如果存在任何这些文件,则
mysql_ssl_rsa_setup不会
创建任何RSA文件。
否则,它会调用
openssl
来创建它们。
这些文件通过未加密的连接使用RSA进行安全密码交换,以便对由
sha256_password
or或
caching_sha2_password
plugin
进行身份验证的帐户进行安全
;
请参见
第6.4.1.2节“SHA-256可插拔认证”
和
第6.4.1.3节“高速缓存SHA-2可插拔认证”
。
有关 mysql_ssl_rsa_setup 创建的文件特征的信息 ,请参见 第6.3.3.1节“使用MySQL创建SSL和RSA证书和密钥” 。
在启动时,MySQL服务器会自动使用
mysql_ssl_rsa_setup
创建的SSL文件
来启用SSL,如果除了
--ssl
(可能还有
--ssl-cipher
)
之外没有给出明确的SSL选项
。
如果你喜欢明确指定文件,调用与客户
--ssl-ca
,
--ssl-cert
以及
--ssl-key
选择在启动时命名
ca.pem
,
server-cert.pem
和
server-key.pem
分别文件。
如果没有给出明确的RSA选项 ,服务器还会自动使用 mysql_ssl_rsa_setup 创建的RSA文件 来启用RSA。
如果服务器启用了SSL,则客户端默认使用SSL进行连接。
要明确指定证书和密钥文件,使用
--ssl-ca
,
--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.2.2.2节“使用选项文件”
。
--help
,
?
显示帮助消息并退出。
mysql_ssl_rsa_setup 应该检查默认SSL和RSA文件 的目录路径, 如果缺少这些文件,它应该创建文件。 默认值是已编译的数据目录。
X.509证书中Common Name属性的后缀。 后缀值限制为17个字符。 默认值基于MySQL版本号。
--uid=name
,
-v
应该是任何已创建文件的所有者的用户的名称。
该值是用户名,而不是数字用户ID。
如果没有此选项,
mysql_ssl_rsa_setup
创建的文件将由
执行它的用户拥有。
仅当您
root
在支持
chown()
系统调用
的
系统
上
执行程序时,此选项才有效
。
--verbose
,
-v
详细模式。 关于程序的功能产生更多输出。 例如,程序显示 它运行 的 openssl 命令,并生成输出以指示它是否跳过SSL或RSA文件创建,因为某些默认文件已存在。
--version
,
-V
显示版本信息并退出。
该
mysql_tzinfo_to_sql
程序加载的时区表
mysql
的数据库。
它用于具有
zoneinfo
数据库的系统(描述时区的文件集)。
此类系统的示例是Linux,FreeBSD,Solaris和OS X.这些文件的一个可能位置是
/usr/share/zoneinfo
目录(
/usr/share/lib/zoneinfo
在Solaris上)。
如果您的系统没有zoneinfo数据库,则可以使用
第5.1.13节“MySQL服务器时区支持”中
所述的可下载软件包
。
mysql_tzinfo_to_sql 可以通过以下几种方式调用:
shell> shell> shell>mysql_tzinfo_to_sql
tz_dir
mysql_tzinfo_to_sql
tz_file tz_name
mysql_tzinfo_to_sql --leap
tz_file
对于第一个调用语法,将zoneinfo目录路径名传递给 mysql_tzinfo_to_sql 并将输出发送到 mysql 程序。 例如:
外壳> 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
:
外壳> mysql_tzinfo_to_sql tz_file
tz_name
| mysql -u root mysql
如果您的时区需要考虑闰秒,
请
使用第三种语法
调用
mysql_tzinfo_to_sql
,该语法初始化闰秒信息。
tz_file
是您的时区文件的名称:
外壳> mysql_tzinfo_to_sql --leap tz_file
| mysql -u root mysql
运行 mysql_tzinfo_to_sql后 ,最好重新启动服务器,以便它不会继续使用任何以前缓存的时区数据。
从MySQL 8.0.16开始,MySQL服务器执行以前由 mysql_upgrade 处理的升级任务 (有关详细信息,请参见 第2.11.3节“MySQL升级过程升级” )。 因此, mysql_upgrade 是不需要的,并且从该版本开始不推荐使用,并且将在未来的MySQL版本中删除。 由于 mysql_upgrade 不再执行升级任务,因此无条件退出状态为0。
每次升级MySQL时,都应该执行 mysql_upgrade ,它会查找升级的MySQL服务器的不兼容性:
它会升级
mysql
架构中
的系统表,
以便您可以利用可能已添加的新特权或功能。
它升级了性能架构
INFORMATION_SCHEMA
和
sys
架构。
它检查用户模式。
如果 mysql_upgrade 发现某个表可能存在不兼容性,则会执行表检查,如果发现问题,则会尝试进行表修复。 如果表无法修复,请参见 第2.11.13节“重建或修复表或索引” 以获取手动表修复策略。
mysql_upgrade 直接与MySQL服务器通信,向其发送执行升级所需的SQL语句。
在 执行升级 之前, 应始终备份当前的MySQL安装 。 请参见 第7.2节“数据库备份方法” 。
在 升级MySQL安装和运行 mysql_upgrade 之前, 某些升级不兼容性可能需要特殊处理 。 有关 确定是否有任何此类不兼容性适用于您的安装以及如何处理它们的说明 , 请参见 第2.11节“升级MySQL” 。
像这样 使用 mysql_upgrade :
确保服务器正在运行。
调用
mysql_upgrade
以升级
mysql
模式中
的系统表,
并检查和修复其他模式中的表:
外壳> mysql_upgrade [options
]
停止服务器并重新启动它,以便任何系统表更改生效。
如果要升级多个MySQL服务器实例, 请 使用适合连接到每个所需服务器的连接参数 调用 mysql_upgrade 。 例如,如果服务器在部件3306到3308上的本地主机上运行,请通过连接到相应的端口来升级每个服务器:
shell> shell> shell>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
用户
运行
。
如果
root
运行
mysql_upgrade
时密码已过期
,您将看到一条消息,指出您的密码已过期且
mysql_upgrade因此
失败。
要更正此问题,请重置
root
密码以将其
取消,
然后再次
运行
mysql_upgrade
。
首先,连接到服务器
root
:
shell>mysql -u root -p
输入密码:****
< - 在此处输入root密码
使用
ALTER
USER
以下方法
重置密码
MySQL的> ALTER USER USER() IDENTIFIED BY 'root-password
';
然后退出 mysql 并 再次 运行 mysql_upgrade :
外壳> mysql_upgrade [options
]
如果运行服务器并将
disabled_storage_engines
系统变量设置为禁用某些存储引擎(例如,
MyISAM
),则
mysql_upgrade
可能会失败,并显示如下错误:
mysql_upgrade:[ERROR] 3161:存储引擎MyISAM被禁用 (不允许创建表)。
要处理此问题,请在
disabled_storage_engines
禁用时
重新启动服务器
。
然后你应该能够
成功
运行
mysql_upgrade
。
之后,重新启动服务器
disabled_storage_engines
并将其设置为其原始值。
除非使用该
--upgrade-system-tables
选项
调用,否则
mysql_upgrade会
根据需要处理所有用户模式中的所有表。
表检查可能需要很长时间才能完成。
每个表都被锁定,因此在处理其他会话时不可用。
检查和维修操作可能非常耗时,特别是对于大型桌子。
表检查使用
语句
的
FOR UPGRADE
选项
CHECK TABLE
。
有关此选项所需内容的详细信息,请参见
第13.7.3.2节“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 不会升级时区表或帮助表的内容。 有关升级说明,请参见 第5.1.13节“MySQL服务器时区支持” 和 第5.1.14节“服务器端帮助支持” 。
除非使用该
--skip-sys-schema
选项
调用,否则
mysql_upgrade
将安装
sys
架构(如果未安装),否则将其升级到当前版本。
如果
sys
模式存在但没有
version
视图,
则会发生错误
,前提是缺少它表示用户创建的模式:
存在没有sys.version视图的sys模式。如果 你有一个用户创建的sys模式,必须重命名为 升级成功。
要在这种情况下升级,请先删除或重命名现有
sys
架构。
mysql_upgrade
支持下面的选项,可以在命令行或在指定
[mysql_upgrade]
与
[client]
一个选项文件的组。
有关MySQL程序使用的选项文件的信息,请参见
第4.2.2.2节“使用选项文件”
。
表4.7 mysql_upgrade选项
格式 | 描述 | 介绍 |
---|---|---|
--bind地址 | 使用指定的网络接口连接到MySQL服务器 | |
--character集-DIR | 安装字符集的目录 | |
- 压缩 | 压缩客户端和服务器之间发送的所有信息 | |
--debug | 写调试日志 | |
--debug检查 | 程序退出时打印调试信息 | |
- 调试信息 | 程序退出时打印调试信息,内存和CPU统计信息 | |
--default-AUTH | 要使用的身份验证插件 | |
--default-字符集 | 指定默认字符集 | |
--defaults-额外文件 | 除常用选项文件外,还可以读取命名选项文件 | |
--defaults文件 | 只读命名选项文件 | |
--defaults基团的后缀 | 选项组后缀值 | |
- 力 | 即使已经为当前的MySQL版本执行了mysql_upgrade,也强制执行 | |
--get-服务器的公钥 | 从服务器请求RSA公钥 | 8.0.3 |
- 救命 | 显示帮助消息并退出 | |
- 主办 | 连接到给定主机上的MySQL服务器 | |
--login路径 | 从.mylogin.cnf中读取登录路径选项 | |
--max允许的分组 | 发送到服务器或从服务器接收的最大数据包长度 | |
--net缓冲长度 | TCP / IP和套接字通信的缓冲区大小 | |
--no-默认 | 不读选项文件 | |
- 密码 | 连接到服务器时使用的密码 | |
- 管 | 在Windows上,使用命名管道连接到服务器 | |
--plugin-DIR | 安装插件的目录 | |
- 港口 | 用于连接的TCP / IP端口号 | |
--print-默认 | 打印默认选项 | |
- 协议 | 要使用的连接协议 | |
--server-公钥路径 | 包含RSA公钥的文件的路径名 | 8.0.4 |
--shared存储器碱基名 | 用于共享内存连接的共享内存的名称 | |
--skip-SYS-模式 | 不要安装或升级sys架构 | |
- 插座 | 对于localhost的连接,要使用的Unix套接字文件 | |
--ssl-CA | 包含受信任的SSL证书颁发机构列表的文件 | |
--ssl-capath | 包含受信任的SSL证书颁发机构证书文件的目录 | |
--ssl证书 | 包含X.509证书的文件 | |
--ssl-密码 | 用于连接加密的允许密码列表 | |
--ssl-CRL | 包含证书吊销列表的文件 | |
--ssl-crlpath | 包含证书吊销列表文件的目录 | |
--ssl-FIPS模式 | 是否在客户端启用FIPS模式 | 8.0.11 |
--ssl键 | 包含X.509密钥的文件 | |
--ssl模式 | 与服务器连接的安全状态 | |
--tls-密码套件 | 允许加密连接的TLSv1.3密码套件 | 8.0.16 |
--tls版本 | 允许加密连接的协议 | |
--upgrade-系统表 | 仅更新系统表,而不更新用户模式 | |
- 用户 | 连接到服务器时使用的MySQL用户名 | |
--verbose | 详细模式 | |
--version检查 | 检查服务器版本是否正确 | |
--write,二进制日志 | 将所有语句写入二进制日志 |
显示简短的帮助消息并退出。
在具有多个网络接口的计算机上,使用此选项可选择用于连接MySQL服务器的接口。
安装字符集的目录。 请参见 第10.14节“字符集配置” 。
--compress
,
-C
压缩客户端和服务器之间发送的所有信息(如果可能)。 请参见 第4.2.5节“连接压缩控制” 。
--debug[=
,
debug_options
]-#
[
debug_options
]
编写调试日志。
典型的
debug_options
字符串是
。
默认是
。
d:t:o,
file_name
d:t:O,/tmp/mysql_upgrade.trace
程序退出时打印一些调试信息。
--debug-info
,
-T
程序退出时打印调试信息,内存和CPU使用情况统计信息。
有关要使用的客户端身份验证插件的提示。 请参见 第6.2.17节“可插入验证” 。
--default-character-set=
charset_name
使用
charset_name
作为默认字符集。
请参见
第10.14节“字符集配置”
。
--defaults-extra-file=
file_name
在全局选项文件之后读取此选项文件,但在用户选项文件之前(在Unix上)。
如果文件不存在或无法访问,则会发生错误。
file_name
如果作为相对路径名而不是完整路径名给出,则相对于当前目录进行解释。
有关此选项和其他选项文件选项的其他信息,请参见 第4.2.2.3节“影响选项文件处理的命令行选项” 。
仅使用给定的选项文件。
如果文件不存在或无法访问,则会发生错误。
file_name
如果作为相对路径名而不是完整路径名给出,则相对于当前目录进行解释。
有关此选项和其他选项文件选项的其他信息,请参见 第4.2.2.3节“影响选项文件处理的命令行选项” 。
不仅要读取常用选项组,还要读取通常名称和后缀的组
str
。
例如,
mysql_upgrade
通常会读取
[client]
和
[mysql_upgrade]
组。
如果
--defaults-group-suffix=_other
给出
了该
选项,
mysql_upgrade
也会读取
[client_other]
和
[mysql_upgrade_other]
组。
有关此选项和其他选项文件选项的其他信息,请参见 第4.2.2.3节“影响选项文件处理的命令行选项” 。
mysql_upgrade_info
即使
已经为当前版本的MySQL执行了
mysql_upgrade,也要
忽略该
文件并强制执行
。
从服务器请求基于RSA密钥对的密码交换所需的公钥。
此选项适用于使用
caching_sha2_password
身份验证插件
进行
身份验证的
客户端
。
对于该插件,除非有请求,否则服务器不会发送公钥。
对于未使用该插件进行身份验证的帐户,将忽略此选项。
如果不使用基于RSA的密码交换,也会忽略它,例如客户端使用安全连接连接到服务器的情况。
如果
给定并指定了有效的公钥文件,则优先于
。
--server-public-key-path=
file_name
--get-server-public-key
有关
caching_sha2_password
插件的
信息
,请参见
第6.4.1.3节“缓存SHA-2可插入身份验证”
。
--host=
,
host_name
-h
host_name
连接到给定主机上的MySQL服务器。
从
.mylogin.cnf
登录路径文件中
的指定登录路径中读取选项
。
阿
“
登录路径
”
是含有指定要连接到哪个MySQL服务器和选项哪个帐户作为认证选项组。
要创建或修改登录路径文件,请使用
mysql_config_editor
实用程序。
请参见
第4.6.7节“
mysql_config_editor
- MySQL配置实用程序”
。
有关此选项和其他选项文件选项的其他信息,请参见 第4.2.2.3节“影响选项文件处理的命令行选项” 。
客户端/服务器通信的最大缓冲区大小。 默认值为24MB。 最小值和最大值分别为4KB和2GB。
用于客户端/服务器通信的缓冲区的初始大小。 默认值为1MB - 1KB。 最小值和最大值分别为4KB和16MB。
不要读任何选项文件。
如果程序启动由于从选项文件中读取未知选项而失败,
--no-defaults
则可用于防止它们被读取。
例外情况是,
.mylogin.cnf
在所有情况下都会读取文件(如果存在)。
这允许以比命令行更安全的方式指定密码,即使
--no-defaults
使用
密码
也是如此。
(
.mylogin.cnf
由
mysql_config_editor
实用程序
创建
。请参见
第4.6.7节“
mysql_config_editor
- MySQL配置实用程序”
。)
有关此选项和其他选项文件选项的其他信息,请参见 第4.2.2.3节“影响选项文件处理的命令行选项” 。
--password[=
,
password
]-p[
password
]
连接服务器时使用的密码。
如果使用短选项表单(
-p
),
则选项和密码之间
不能
有空格。
如果省略
命令行上
password
的
--password
或
-p
选项
后面
的
值
,则
mysql_upgrade
会提示输入一个值。
在命令行上指定密码应该被认为是不安全的。 请参见 第6.1.2.1节“密码安全的最终用户指南” 。 您可以使用选项文件以避免在命令行上提供密码。
--pipe
,
-W
在Windows上,使用命名管道连接到服务器。 仅当服务器支持命名管道连接时,此选项才适用。
查找插件的目录。
如果该
--default-auth
选项用于指定身份验证插件但
mysql_upgrade
找不到,
请指定此选项
。
请参见
第6.2.17节“可插入验证”
。
--port=
,
port_num
-P
port_num
用于连接的TCP / IP端口号。
打印程序名称以及从选项文件中获取的所有选项。
--protocol={TCP|SOCKET|PIPE|MEMORY}
用于连接服务器的连接协议。 当其他连接参数通常会导致协议被使用而不是您想要的协议时,它很有用。 有关允许值的详细信息,请参见 第4.2.3节“连接到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
插件的信息,请参见
第6.4.1.2节“SHA-256可插拔认证”
和
第6.4.1.3节“高速缓存SHA-2可插拔认证”
。
--shared-memory-base-name=
name
在Windows上,要使用的共享内存名称,用于使用共享内存连接到本地服务器。
默认值为
MYSQL
。
共享内存名称区分大小写。
必须使用
--shared-memory
启用共享内存连接
的
选项
启动服务器
。
默认情况下,
如果未安装架构
,则
mysql_upgrade
将安装
sys
架构
,
否则
将其
升级到当前版本。
该
--skip-sys-schema
选项会抑制此行为。
--socket=
,
path
-S
path
用于连接
localhost
,要使用的Unix套接字文件,或者在Windows上,要使用的命名管道的名称。
以“开头”选项
--ssl
指定是否使用SSL连接到服务器,并指明在何处查找SSL密钥和证书。
请参见
第6.3.2节“加密连接的命令选项”
。
--ssl-fips-mode={OFF|ON|STRICT}
控制是否在客户端启用FIPS模式。
该
--ssl-fips-mode
选项与其他选项的不同之处在于
,它不用于建立加密连接,而是用于影响允许的加密操作。
请参见
第6.5节“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库。 有关详细信息,请参见 第6.3.6节“加密连接协议和密码” 。
MySQL 8.0.16中添加了此选项。
客户端允许加密连接的协议。 该值是一个或多个以逗号分隔的协议名称的列表。 可以为此选项命名的协议取决于用于编译MySQL的SSL库。 有关详细信息,请参见 第6.3.6节“加密连接协议和密码” 。
仅升级
mysql
架构中
的系统表
,不升级用户架构。
--user=
,
user_name
-u
user_name
连接到服务器时使用的MySQL用户名。
默认用户名是
root
。
详细模式。 打印有关程序功能的更多信息。
--version-check
,
-k
检查
mysql_upgrade
连接到
的服务器的版本,
以验证它与
构建
mysql_upgrade
的版本相同
。
如果没有,
mysql_upgrade
退出。
默认情况下启用此选项;
要禁用检查,请使用
--skip-version-check
。
默认情况下,
mysql_upgrade的
二进制日志记录
被禁用。
--write-binlog
如果您希望将其操作写入二进制日志,请
调用该程序
。
当服务器运行时启用了全局事务标识符(GTID)(
gtid_mode=ON
)时,请不要通过
mysql_upgrade
启用二进制日志记录
。
本节介绍连接到MySQL服务器的客户端程序。
mysql 是一个带有输入行编辑功能的简单SQL shell。 它支持交互式和非交互式使用。 交互使用时,查询结果以ASCII表格式显示。 当非交互式使用时(例如,作为过滤器),结果以制表符分隔格式显示。 可以使用命令选项更改输出格式。
如果由于大型结果集的内存不足而出现问题,请使用该
--quick
选项。
这迫使
mysql
一次一行地从服务器检索结果,而不是检索整个结果集并在显示它之前在内存中缓冲它。
这是通过使用
mysql_use_result()
客户端/服务器库中
的
C API函数
返回结果集
而不是
mysql_store_result()
。
或者,MySQL Shell提供对X DevAPI的访问。 有关详细信息,请参阅 MySQL Shell 8.0(MySQL 8.0的一部分) 。
使用 mysql 非常容易。 从命令解释器的提示符调用它,如下所示:
外壳> mysql db_name
要么:
shell> 输入密码:mysql --user=
user_name
--passworddb_name
your_password
然后输入一个SQL语句,以结束它
;
,
\g
或者
\G
按Enter键。
如果存在,则 键入 Control + C将 中断当前语句,否则将取消任何部分输入行。
您可以在脚本文件(批处理文件)中执行SQL语句,如下所示:
外壳> mysql db_name
< script.sql
> output.tab
在Unix上, mysql 客户端将以交互方式执行的语句记录到历史文件中。 请参见 第4.5.1.3节“mysql客户端日志记录” 。
MySQL的
支持下面的选项,可以在命令行或在指定
[mysql]
与
[client]
一个选项文件的组。
有关MySQL程序使用的选项文件的信息,请参见
第4.2.2.2节“使用选项文件”
。
表4.8 mysql客户端选项
格式 | 描述 | 介绍 | 删除 |
---|---|---|---|
--auto-翻版 | 启用自动重新散列 | ||
--auto垂直输出 | 启用自动垂直结果集显示 | ||
- 批量 | 不要使用历史文件 | ||
--binary-AS - 己 | 以十六进制表示法显示二进制值 | 8.0.2 | |
--binary模式 | 禁用\ r \ n - 到 - \ n转换和处理\ 0作为查询结束 | ||
--bind地址 | 使用指定的网络接口连接到MySQL服务器 | ||
--character集-DIR | 安装字符集的目录 | ||
--column-名 | 在结果中写入列名称 | ||
--column型信息 | 显示结果集元数据 | ||
- 评论 | 是否在发送到服务器的语句中保留或删除注释 | ||
- 压缩 | 压缩客户端和服务器之间发送的所有信息 | ||
--connect过期密码 | 指示服务器客户端可以处理过期密码沙箱模式。 | ||
--connect超时 | 连接超时前的秒数 | ||
- 数据库 | 要使用的数据库 | ||
--debug | 写调试日志; 仅当MySQL是使用调试支持构建时才支持 | ||
--debug检查 | 程序退出时打印调试信息 | ||
- 调试信息 | 程序退出时打印调试信息,内存和CPU统计信息 | ||
--default-AUTH | 要使用的身份验证插件 | ||
--default-字符集 | 指定默认字符集 | ||
--defaults-额外文件 | 除常用选项文件外,还可以读取命名选项文件 | ||
--defaults文件 | 只读命名选项文件 | ||
--defaults基团的后缀 | 选项组后缀值 | ||
对齐和美化--delimiter | 设置语句分隔符 | ||
--enable-明文-插件 | 启用明文身份验证插件 | ||
- 执行 | 执行该语句并退出 | ||
- 力 | 即使发生SQL错误也继续 | ||
--get-服务器的公钥 | 从服务器请求RSA公钥 | 8.0.3 | |
- 救命 | 显示帮助消息并退出 | ||
--histignore | 模式指定要记录的忽略哪些语句 | ||
- 主办 | 连接到给定主机上的MySQL服务器 | ||
--html | 生成HTML输出 | ||
- 忽略空间 | 忽略函数名后的空格 | ||
--init命令 | 连接后执行的SQL语句 | ||
--line号码 | 写错误的行号 | ||
--local-infile的 | 启用或禁用LOAD DATA的LOCAL功能 | ||
--login路径 | 从.mylogin.cnf中读取登录路径选项 | ||
--max允许的分组 | 发送到服务器或从服务器接收的最大数据包长度 | ||
--max联接尺寸 | 使用--safe-updates时连接中行的自动限制 | ||
--named的命令 | 启用命名的mysql命令 | ||
--net缓冲长度 | TCP / IP和套接字通信的缓冲区大小 | ||
--no-自动翻版 | 禁用自动重新散列 | ||
--no哔 | 发生错误时不要发出蜂鸣声 | ||
--no-默认 | 不读选项文件 | ||
--one数据库 | 忽略除命令行上指定的默认数据库的语句之外的语句 | ||
--pager | 使用给定命令进行分页查询输出 | ||
- 密码 | 连接到服务器时使用的密码 | ||
- 管 | 在Windows上,使用命名管道连接到服务器 | ||
--plugin-DIR | 安装插件的目录 | ||
- 港口 | 用于连接的TCP / IP端口号 | ||
--print-默认 | 打印默认选项 | ||
- 提示 | 将提示符设置为指定的格式 | ||
- 协议 | 要使用的连接协议 | ||
- 快 | 不要缓存每个查询结果 | ||
- 生的 | 写入列值而不进行转义转换 | ||
--reconnect | 如果与服务器的连接丢失,则自动尝试重新连接 | ||
--i-am-a-dummy , - 安全更新 | 仅允许指定键值的UPDATE和DELETE语句 | ||
--secure-auth的 | 不要以旧的(4.1之前的)格式向服务器发送密码 | 8.0.3 | |
- 选择限制 | 使用--safe-updates时SELECT语句的自动限制 | ||
--server-公钥路径 | 包含RSA公钥的文件的路径名 | ||
--shared存储器碱基名 | 用于共享内存连接的共享内存的名称 | ||
--show-警告 | 如果有的话,在每个语句后显示警告 | ||
--sigint,忽视 | 忽略SIGINT信号(通常是键入Control + C的结果) | ||
- 无声 | 静音模式 | ||
--skip-自动翻版 | 禁用自动重新散列 | ||
--skip-列名 | 不要在结果中写入列名 | ||
--skip-行号 | 跳过错误的行号 | ||
--skip-命名命令 | 禁用命名的mysql命令 | ||
--skip-寻呼机 | 禁用分页 | ||
--skip-重新连接 | 禁用重新连接 | ||
- 插座 | 对于连接到localhost,要使用的Unix套接字文件或Windows命名管道 | ||
--ssl-CA | 包含受信任的SSL证书颁发机构列表的文件 | ||
--ssl-capath | 包含受信任的SSL证书颁发机构证书文件的目录 | ||
--ssl证书 | 包含X.509证书的文件 | ||
--ssl-密码 | 用于连接加密的允许密码列表 | ||
--ssl-CRL | 包含证书吊销列表的文件 | ||
--ssl-crlpath | 包含证书吊销列表文件的目录 | ||
--ssl-FIPS模式 | 是否在客户端启用FIPS模式 | 8.0.11 | |
--ssl键 | 包含X.509密钥的文件 | ||
--ssl模式 | 与服务器连接的安全状态 | ||
--syslog | 将交互式语句记录到syslog中 | ||
- 表 | 以表格格式显示输出 | ||
--tee | 将输出的副本附加到命名文件 | ||
--tls-密码套件 | 允许加密连接的TLSv1.3密码套件 | 8.0.16 | |
--tls版本 | 允许加密连接的协议 | ||
--unbuffered | 每次查询后刷新缓冲区 | ||
- 用户 | 连接到服务器时使用的MySQL用户名 | ||
--verbose | 详细模式 | ||
- 版 | 显示版本信息并退出 | ||
- 垂直 | 垂直打印查询输出行(每列值一行) | ||
- 等待 | 如果无法建立连接,请等待并重试,而不是中止 | ||
--xml | 生成XML输出 |
--help
,
-?
显示帮助消息并退出。
启用自动重新散列。
默认情况下,此选项处于启用状态,可以使数据库,表和列名称完成。
使用
--disable-auto-rehash
禁用换汤不换药。
这会导致
mysql
启动得更快,但
如果要使用名称完成,则
必须发出
rehash
命令或其
\#
快捷方式。
要填写名称,请输入第一部分,然后按Tab键。 如果名称是明确的,则 mysql 完成它。 否则,您可以再次按Tab键以查看以您目前所输入的内容开头的可能名称。 如果没有默认数据库,则不会完成。
此功能需要使用 readline 库 编译的MySQL客户端 。 通常, Windows上不提供 readline 库。
如果结果集对于当前窗口来说太宽,则会导致垂直显示结果集,否则使用普通的表格格式。
(这适用于以
;
or
结尾的语句
\G
。)
--batch
,
-B
使用制表符作为列分隔符打印结果,每行都在新行上。 使用此选项, mysql 不使用历史记录文件。
批处理模式导致非常规输出格式和特殊字符的转义。
可以使用原始模式禁用转义;
请参阅
--raw
选项
的说明
。
当给出此选项时,
mysql
使用十六进制表示法(
)
显示二进制数据
。
无论整体输出显示格式是表格格式,垂直格式,HTML格式还是XML格式,都会出现这种情况。
0x
value
此选项有助于处理
可能包含
值的
mysqlbinlog
输出
BLOB
。
默认情况下,
mysql
将
\r\n
语句字符串转换
为语句终止符
\n
并将其解释
\0
为语句终止符。
--binary-mode
禁用这两个功能。
它还禁止所有
的MySQL
除了命令
charset
和
delimiter
非交互模式(用于输入管道输送到
的MySQL
或使用所加载的
source
命令)。
在具有多个网络接口的计算机上,使用此选项可选择用于连接MySQL服务器的接口。
安装字符集的目录。 请参见 第10.14节“字符集配置” 。
在结果中写入列名称。
显示结果集元数据。
--comments
,
-c
是否在发送到服务器的语句中删除或保留注释。
默认为
--skip-comments
(strip comments),启用
--comments
(保留注释)。
--compress
,
-C
压缩客户端和服务器之间发送的所有信息(如果可能)。 请参见 第4.2.5节“连接压缩控制” 。
如果用于连接的帐户具有过期密码,则向服务器指示客户端可以处理沙盒模式。 这对于 mysql的 非交互式调用很有用, 因为通常服务器会断开尝试使用具有过期密码的帐户进行连接的非交互式客户端。 (请参见 第6.2.16节“过期密码的服务器处理” 。)
连接超时前的秒数。
(默认值为
0
。)
--database=
,
db_name
-D
db_name
要使用的数据库。 这主要在选项文件中很有用。
--debug[=
,
debug_options
]-#
[
debug_options
]
编写调试日志。
典型的
debug_options
字符串是
。
默认是
。
d:t:o,
file_name
d:t:o,/tmp/mysql.trace
只有在使用MySQL构建MySQL时,此选项才可用
WITH_DEBUG
。
Oracle提供的MySQL发布二进制文件
不是
使用此选项构建的。
程序退出时打印一些调试信息。
--debug-info
,
-T
程序退出时打印调试信息,内存和CPU使用情况统计信息。
有关要使用的客户端身份验证插件的提示。 请参见 第6.2.17节“可插入验证” 。
--default-character-set=
charset_name
使用
charset_name
作为客户端和连接的默认字符集。
如果操作系统使用一个字符集并且 默认情况下 mysql 客户端使用另一个 字符集,则此选项很有 用。 在这种情况下,输出可能格式不正确。 您通常可以通过使用此选项来强制客户端使用系统字符集来修复此类问题。
有关更多信息,请参见 第10.4节“连接字符集和排序规则” 和 第10.14节“字符集配置” 。
--defaults-extra-file=
file_name
在全局选项文件之后读取此选项文件,但在用户选项文件之前(在Unix上)。
如果文件不存在或无法访问,则会发生错误。
file_name
如果作为相对路径名而不是完整路径名给出,则相对于当前目录进行解释。
有关此选项和其他选项文件选项的其他信息,请参见 第4.2.2.3节“影响选项文件处理的命令行选项” 。
仅使用给定的选项文件。
如果文件不存在或无法访问,则会发生错误。
file_name
如果作为相对路径名而不是完整路径名给出,则相对于当前目录进行解释。
例外:即使使用
--defaults-file
,客户端程序
也会
读取
.mylogin.cnf
。
有关此选项和其他选项文件选项的其他信息,请参见 第4.2.2.3节“影响选项文件处理的命令行选项” 。
不仅要读取常用选项组,还要读取通常名称和后缀的组
str
。
例如,
mysql
通常会读取
[client]
和
[mysql]
组。
如果
--defaults-group-suffix=_other
给出
了
选项,
mysql
也会读取
[client_other]
和
[mysql_other]
组。
有关此选项和其他选项文件选项的其他信息,请参见 第4.2.2.3节“影响选项文件处理的命令行选项” 。
设置语句分隔符。
默认值为分号(
;
)。
禁用命名命令。
\*
仅
使用
表单,或仅在以分号(
;
)
结尾的行的开头使用命名命令
。
mysql
默认
启用
此选项
。
但是,即使使用此选项,长格式命令仍然可以从第一行开始工作。
请参见
第4.5.1.2节“mysql客户端命令”
。
启用
mysql_clear_password
明文身份验证插件。
(参见
第6.4.1.4节“客户端明文可插拔认证”
。)
--execute=
,
statement
-e
statement
执行该语句并退出。
默认输出格式与生成的格式类似
--batch
。
有关
示例
,
请参见
第4.2.2.1节“在命令行上使用选项”
。
使用此选项,
mysql
不使用历史记录文件。
--force
,
-f
即使发生SQL错误也继续。
从服务器请求基于RSA密钥对的密码交换所需的公钥。
此选项适用于使用
caching_sha2_password
身份验证插件
进行
身份验证的
客户端
。
对于该插件,除非有请求,否则服务器不会发送公钥。
对于未使用该插件进行身份验证的帐户,将忽略此选项。
如果不使用基于RSA的密码交换,也会忽略它,例如客户端使用安全连接连接到服务器的情况。
如果
给定并指定了有效的公钥文件,则优先于
。
--server-public-key-path=
file_name
--get-server-public-key
有关
caching_sha2_password
插件的
信息
,请参见
第6.4.1.3节“缓存SHA-2可插入身份验证”
。