安装后设置和测试
本节讨论安装MySQL后应执行的任务:
如有必要,初始化数据目录并创建MySQL授权表,对于某些MySQL安装方法,可以自动为你完成数据目录初始化:
- MySQL安装程序执行的Windows安装操作。
- 使用Oracle的服务器RPM或Debian发行版在Linux上安装。
- 在许多平台上使用原生打包系统进行安装,包括Debian Linux、Ubuntu Linux、Gentoo Linux等。
- 使用DMG发行版在macOS上安装。
- 对于其他平台和安装类型,你必须手动初始化数据目录,这些包括在Unix和类Unix系统上从通用二进制和源代码发行版安装,以及从Windows上的ZIP Archive包安装。
- 启动服务器并确保可以访问它。
- 如果在数据目录初始化期间尚未完成密码,则将密码分配给授权表中的初始
root
帐户,密码可防止未经授权访问MySQL服务器。 - (可选)安排服务器在系统启动和停止时自动启动和停止。
- (可选)填充时区表以启用对指定时区的识别。
初始化数据目录
安装MySQL后,必须初始化数据目录,包括mysql
系统模式中的表:
- 对于某些MySQL安装方法,数据目录初始化是自动的。
- 对于其他安装方法,你必须手动初始化数据目录,这些包括在Unix和类Unix系统上从通用二进制文件和源代码发行版安装,以及从Windows上的ZIP Archive包安装。
本节描述如何为非自动初始化数据目录的MySQL安装方法手动初始化数据目录,对于某些建议的命令,它们可以测试服务器是否可访问且工作正常。
在MySQL 8.0中,默认的身份验证插件已从
mysql_native_password
更改为
caching_sha2_password
,而
'root'@'localhost'
管理帐户默认使用
caching_sha2_password
。
数据目录初始化概述
在此处显示的示例中,服务器旨在在mysql
登录帐户的用户ID下运行,如果帐户不存在,请创建帐户(请参阅创建mysql用户和组),或者替换你计划用于运行服务器的其他现有登录帐户的名称。
将位置更改为MySQL安装的顶级目录,通常是
/usr/local/mysql
(根据需要调整系统的路径名):cd /usr/local/mysql
在目录中,你将找到多个文件和子目录,包括包含服务器以及客户端和实用程序的
bin
子目录。secure_file_priv
系统变量将导入和导出操作限制为特定目录,创建一个目录,其位置可以指定为该变量的值:mkdir mysql-files
将目录用户和组所有权授予
mysql
用户和mysql
组,并相应地设置目录权限:chown mysql:mysql mysql-files chmod 750 mysql-files
使用服务器初始化数据目录,包括包含初始MySQL授权表的
mysql
模式,该表确定如何允许用户连接到服务器,例如:bin/mysqld --initialize --user=mysql
通常,只有在首次安装MySQL后才需要进行数据目录初始化,但是,初始化数据目录的命令不会覆盖任何现有的
mysql
模式表,因此在任何情况下都可以安全运行。如果要部署自动支持安全连接的服务器,请使用
mysql_ssl_rsa_setup
实用程序创建默认SSL和RSA文件:bin/mysql_ssl_rsa_setup
- 如果没有任何选项文件,服务器将以其默认设置启动,要显式指定MySQL服务器在启动时应使用的选项,请将它们放在选项文件中,例如
/etc/my.cnf
或/etc/mysql/my.cnf
。例如,你可以使用选项文件来设置secure_file_priv
系统变量。 - 数据目录初始化在
mysql
模式中创建时区表,但不填充它们。
数据目录初始化过程
将位置更改为MySQL安装的顶级目录,通常是/usr/local/mysql
(根据需要调整系统的路径名):
cd /usr/local/mysql
要初始化数据目录,请使用--initialize
或--initialize-insecure
选项调用mysqld
,取决于你是希望服务器为'root'@'localhost'
帐户生成随机初始密码,还是创建没有密码的帐户:
- 使用
--initialize
用于“默认安全”安装(即包括生成随机初始root
密码),在这种情况下,密码标记为已过期,你需要选择一个新密码。 - 使用
--initialize-insecure
,不会生成root
密码,这是不安全的。假设你在将服务器投入生产使用之前及时为帐户分配密码。
服务器将任何消息(包括任何初始密码)写入其标准错误输出,这可能会重定向到错误日志,因此,如果你没有在屏幕上看到消息,请查看此处。在Windows上,使用
--console
选项将消息定向到控制台。
在Unix和类Unix系统上,重要的是数据库目录和文件归mysql
登录帐户所有,以便服务器在以后运行时对它们具有读写权限。要确保这一点,请从系统root
帐户启动mysqld
并包含--user
选项,如下所示:
bin/mysqld --initialize --user=mysql
bin/mysqld --initialize-insecure --user=mysql
或者,以mysql
身份登录时执行mysqld
,在这种情况下,你可以省略命令中的--user
选项。
在Windows上,使用以下命令之一:
bin\mysqld --initialize --console
bin\mysqld --initialize-insecure --console
如果缺少必需的系统库,数据目录初始化可能会失败,例如,你可能会看到如下错误:
bin/mysqld: error while loading shared libraries:
libnuma.so.1: cannot open shared object file:
No such file or directory
如果发生这种情况,你必须手动或使用系统的软件包管理器安装缺少的库,然后重试数据目录初始化命令。
如果mysqld
无法识别安装目录或数据目录的正确位置,则可能需要指定其他选项,例如--basedir
或--datadir
,例如(在一行中输入命令):
bin/mysqld --initialize --user=mysql
--basedir=/opt/mysql/mysql
--datadir=/opt/mysql/mysql/data
或者,将相关选项设置放在选项文件中,并将该文件的名称传递给mysqld
,对于Unix和类Unix系统,假设选项文件名是/opt/mysql/mysql/etc/my.cnf
,将这些行放在文件中:
[mysqld]
basedir=/opt/mysql/mysql
datadir=/opt/mysql/mysql/data
然后按如下方式调用mysqld
(首先使用--defaults-file
选项在单行上输入命令):
bin/mysqld --defaults-file=/opt/mysql/mysql/etc/my.cnf
--initialize --user=mysql
在Windows上,假设C:\my.ini
包含以下行:
[mysqld]
basedir=C:\\Program Files\\MySQL\\MySQL Server 8.0
datadir=D:\\MySQLdata
然后按如下方式调用mysqld
(首先使用--defaults-file
选项在单行上输入命令):
bin\mysqld --defaults-file=C:\my.ini
--initialize --console
数据目录初始化期间的服务器操作
服务器执行的数据目录初始化序列不能替代
mysql_secure_installation
和
mysql_ssl_rsa_setup
执行的操作。
当使用--initialize
或--initialize-insecure
选项调用时,mysqld
在数据目录初始化序列期间执行以下操作:
服务器检查数据目录是否存在,如下所示:
- 如果不存在数据目录,则服务器会创建它。
如果数据目录存在但不为空(即,它包含文件或子目录),则在生成错误消息后服务器退出:
[ERROR] --initialize specified but the data directory exists. Aborting.
在这种情况下,请删除或重命名数据目录,然后重试。
如果每个条目的名称都以句点(.)开头,则允许现有数据目录为非空。
- 在数据目录中,服务器创建
mysql
系统模式及其表,包括数据字典表、授权表、时区表和服务器端帮助表。 服务器初始化管理
InnoDB
表所需的系统表空间和相关数据结构。在
mysqld
设置
InnoDB
系统表空间之后,对表空间特性的某些更改需要设置一个全新的实例,符合条件的更改包括系统表空间中第一个文件的文件名和撤消日志的数量。如果你不想使用默认值,请确保在运行
mysqld
之前在mysql配置文件中设置了
innodb_data_file_path
和
innodb_log_file_size
配置参数。还要确保根据需要指定影响
InnoDB
文件创建和位置的其他参数,例如
innodb_data_home_dir
和
innodb_log_group_home_dir
。如果这些选项在你的配置文件中,但该文件不在MySQL默认读取的位置,请在运行
mysqld
时使用
--defaults-extra-file
选项指定文件位置。服务器创建
'root'@'localhost'
超级用户帐户和其他保留帐户,某些保留帐户被锁定且客户端无法使用,但'root'@'localhost'
用于管理用途,你应为其分配密码。关于
'root'@'localhost'
帐户密码的服务器操作取决于你调用它的方式:使用
--initialize
而不是--initialize-insecure
,服务器生成随机密码,将其标记为已过期,并写入显示密码的消息:[Warning] A temporary password is generated for root@localhost: iTag*AfrH5ej
使用
--initialize-insecure
,(使用或不使用--initialize
,因为--initialize-insecure
意味着--initialize
),服务器不会生成密码或将其标记为已过期,并写入警告消息:[Warning] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.
- 服务器填充用于
HELP
语句的服务器端help表,服务器不会填充时区表。 - 如果给出了
--init-file
选项用于命名SQL语句的文件,则服务器执行文件中的语句,此选项使你可以执行自定义引导序列。当服务器在引导模式下运行时,某些功能不可用,这限制了文件中允许的语句,这些包括与帐户管理(例如
CREATE USER
或GRANT
)、复制和全局事务标识符相关的语句。 - 服务器退出。
初始化后root密码分配
通过使用--initialize
或--initialize-insecure
启动服务器来初始化数据目录后,正常启动服务器(即,没有这些选项)并为'root'@'localhost'
帐户分配一个新密码:
- 启动服务器。
连接到服务器:
如果你使用
--initialize
而不是--initialize-insecure
来初始化数据目录,请以root
身份连接到服务器:mysql -u root -p
然后,在密码提示符下,输入服务器在初始化序列期间生成的随机密码:
Enter password: (enter the random root password here)
如果你不知道此密码,请查看服务器错误日志。
如果你使用
--initialize-insecure
初始化数据目录,请以root
身份而不使用密码连接到服务器:mysql -u root --skip-password
连接后,使用
ALTER USER
语句分配新的root
密码:ALTER USER 'root'@'localhost' IDENTIFIED BY 'root-password';
尝试连接到主机
127.0.0.1
通常会解析为
localhost
帐户,但是,如果使用
--skip-name-resolve
选项运行服务器,则会失败。如果你打算这样做,请确保存在可以接受连接的帐户,例如,要能够使用
--host=127.0.0.1
或
--host=::1
以
root
身份连接,请创建以下帐户:
CREATE USER 'root'@'127.0.0.1' IDENTIFIED BY 'root-password';
CREATE USER 'root'@'::1' IDENTIFIED BY 'root-password';
启动服务器
本节介绍如何在Unix和类Unix系统上启动服务器,如果你的安装包含mysqld_safe
,请启动MySQL服务器:
shell> bin/mysqld_safe --user=mysql &
对于使用RPM软件包安装MySQL的Linux系统,使用
systemd
而不是
mysqld_safe
管理服务器启动和关闭,而且未安装
mysqld_safe
。
如果你的安装包含systemd
支持,请像这样启动服务器:
shell> systemctl start mysqld
如果它与mysqld
不同,则替换相应的服务名称(例如,SLES系统上的mysql
)。
使用非特权(非root
)登录帐户运行MySQL服务器非常重要,要确保这一点,请以root
身份运行mysqld_safe
并包含--user
选项,如上所示。否则,你应该以mysql
身份登录时执行程序,在这种情况下,你可以省略命令中的--user
选项。
如果命令立即失败并打印mysqld ended
,请在错误日志中查找信息(默认情况下是数据目录中的host_name.err
文件)。
如果服务器无法访问数据目录,它将启动或读取mysql模式中的授权表,它会将消息写入其错误日志。如果你在继续执行此步骤之前通过初始化数据目录而忽略了创建授权表,或者如果你运行了初始化数据目录而没有--user
选项的命令,则可能会出现此类问题,删除数据目录并使用--user
选项运行该命令。
解决启动MySQL服务器的问题
本节提供有关启动服务器问题的故障排除建议,如果你在启动服务器时遇到问题,可以尝试以下方法:
检查错误日志以查看服务器无法启动的原因,日志文件位于数据目录中(通常是Windows上的
C:\Program Files\MySQL\MySQL Server 8.0\data
,/usr/local/mysql/data
用于Unix /Linux二进制分发版,/usr/local/var
用于Unix/Linux源码发行版)。在数据目录中查找名称为host_name.err
和host_name.log
的文件,其中host_name
是服务器主机的名称。然后检查这些文件的最后几行,使用tail
显示它们:shell> tail host_name.err shell> tail host_name.log
- 指定你正在使用的存储引擎所需的任何特殊选项,你可以创建
my.cnf
文件并为计划使用的引擎指定启动选项。如果你打算使用支持事务表(InnoDB
、NDB
)的存储引擎,请确保在启动服务器之前按照你的方式配置它们。虽然存储引擎使用你省略的选项的默认值,但Oracle建议你查看可用选项,并为你的安装不适合的默认值的任何选项指定显式值。
确保服务器知道在哪里可以找到数据目录,
mysqld
服务器使用此目录作为其当前目录,这是它期望找到数据库以及它希望写入日志文件的位置,服务器还将pid(进程ID)文件写入数据目录。编译服务器时,默认数据目录位置是硬编码的,要确定默认路径设置是什么,请使用
--verbose
和--help
选项调用mysqld
。如果数据目录位于系统上的其他位置,请在命令行或选项文件中使用mysqld
或mysqld_safe
的--datadir
选项指定该位置,否则,服务器将无法正常工作。作为--datadir
选项的替代方法,你可以使用--basedir
指定mysqld
安装MySQL的基本目录的位置,并且mysqld
在那里查找data
目录。要检查指定路径选项的效果,请使用
--verbose
和--help
选项调用mysqld
,例如,如果将位置更改为安装mysqld的目录,然后运行以下命令,则会显示使用/usr/local
的基目录启动服务器的效果:shell> ./mysqld --basedir=/usr/local --verbose --help
你也可以指定其他选项,例如
--datadir
,但是--verbose
和--help
必须是最后一个选项。
确定所需的路径设置后,启动服务器而不使用--verbose
和--help
。
如果mysqld
当前正在运行,你可以通过执行以下命令找出它正在使用的路径设置:shell> mysqladmin variables
或:
shell> mysqladmin -h host_name variables
host_name
是MySQL服务器主机的名称。确保服务器可以访问数据目录,数据目录及其内容的所有权和权限必须允许服务器读取和修改它们。
如果在启动
mysqld
时获得Errcode 13
(这意味着权限被拒绝),这意味着数据目录或其内容的权限不允许服务器访问,在这种情况下,你可以更改所涉及文件和目录的权限,以便服务器有权使用它们,你也可以以root
身份启动服务器,但这会引发安全问题,应该避免。将位置更改为数据目录并检查数据目录及其内容的所有权,以确保服务器具有访问权限,例如,如果数据目录是
/usr/local/mysql/var
,请使用以下命令:shell> ls -la /usr/local/mysql/var
如果数据目录或其文件或子目录不归你用于运行服务器的登录帐户所有,请将其所有权更改为该帐户,如果该帐户名为
mysql
,请使用以下命令:shell> chown -R mysql /usr/local/mysql/var shell> chgrp -R mysql /usr/local/mysql/var
即使拥有正确的所有权,如果你的系统上运行其他安全软件来管理对文件系统各个部分的应用程序访问,MySQL也可能无法启动,在这种情况下,重新配置该软件以使
mysqld
能够访问它在正常操作期间使用的目录。验证服务器要使用的网络接口是否可用。
如果出现以下任一错误,则意味着某些其他程序(可能是另一个
mysqld
服务器)正在使用mysqld
尝试使用的TCP/IP端口或Unix socket文件:Can't start server: Bind on TCP/IP port: Address already in use Can't start server: Bind on unix socket...
使用
ps
确定是否有另一个mysqld
服务器正在运行,如果是这样,请在再次启动mysqld
之前关闭服务器。
如果没有其他服务器正在运行,请执行命令telnet your_host_name tcp_ip_port_number
(默认的MySQL端口号是3306),然后按几次回车键。如果你没有收到类似的错误消息telnet: Unable to connect to remote host: Connection refused
,其他一些程序正在使用mysqld
尝试使用的TCP/IP端口。跟踪这是什么程序并禁用它,或告诉mysqld
使用--port
选项侦听不同的端口,在这种情况下,请在使用TCP/IP连接到服务器时为客户端程序指定相同的非默认端口号。
端口可能无法访问的另一个原因是你运行的防火墙阻止了与它的连接,如果是这样,请修改防火墙设置以允许访问端口。
如果服务器启动但你无法连接到它,请确保在/etc/hosts
中有一个如下所示的条目:127.0.0.1 localhost
- 如果你无法启动
mysqld
,请尝试使用--debug
选项创建跟踪文件以查找问题。
测试服务器
在初始化数据目录并启动服务器之后,执行一些简单的测试以确保它能够令人满意地工作,本节假定你当前的位置是MySQL安装目录,并且它具有包含此处使用的MySQL程序的bin
子目录,如果不是这样,请相应地调整命令路径名。
或者,将bin
目录添加到PATH
环境变量设置中,这使你的shell(命令解释器)能够正确地找到MySQL程序,这样你就可以通过只输入它的名字来运行一个程序,而不是它的路径名。
使用mysqladmin
验证服务器是否正在运行,以下命令提供简单的测试,以检查服务器是否已启动并响应连接:
shell> bin/mysqladmin version
shell> bin/mysqladmin variables
如果无法连接到服务器,请指定-u root
选项以root
身份连接,如果你已经为root帐户分配了密码,则还需要在命令行中指定-p
并在提示时输入密码,例如:
shell> bin/mysqladmin -u root -p version
Enter password: (enter root password here)
mysqladmin version
的输出略有不同,具体取决于你的平台和MySQL版本,但应与此处显示的类似:
shell> bin/mysqladmin version
mysqladmin Ver 14.12 Distrib 8.0.19, for pc-linux-gnu on i686
...
Server version 8.0.19
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /var/lib/mysql/mysql.sock
Uptime: 14 days 5 hours 5 min 21 sec
Threads: 1 Questions: 366 Slow queries: 0
Opens: 0 Flush tables: 1 Open tables: 19
Queries per second avg: 0.000
要查看使用mysqladmin
可以执行的其他操作,请使用--help
选项调用它。
验证你是否可以关闭服务器(如果root
帐户已有密码,请包含-p
选项):
确认你可以再次启动服务器,通过使用mysqld_safe
或直接调用mysqld
来完成此操作,例如:
shell> bin/mysqld_safe --user=mysql &
运行一些简单的测试以验证你是否可以从服务器检索信息,输出应类似于此处显示的输出。
使用mysqlshow
查看存在哪些数据库:
shell> bin/mysqlshow
+--------------------+
| Databases |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
已安装数据库的列表可能有所不同,但始终至少包含mysql
和information_schema
。
如果指定数据库名称,mysqlshow
将显示数据库中的表列表:
shell> bin/mysqlshow mysql
Database: mysql
+---------------------------+
| Tables |
+---------------------------+
| columns_priv |
| component |
| db |
| default_roles |
| engine_cost |
| func |
| general_log |
| global_grants |
| gtid_executed |
| help_category |
| help_keyword |
| help_relation |
| help_topic |
| innodb_index_stats |
| innodb_table_stats |
| ndb_binlog_index |
| password_history |
| plugin |
| procs_priv |
| proxies_priv |
| role_edges |
| server_cost |
| servers |
| slave_master_info |
| slave_relay_log_info |
| slave_worker_info |
| slow_log |
| tables_priv |
| time_zone |
| time_zone_leap_second |
| time_zone_name |
| time_zone_transition |
| time_zone_transition_type |
| user |
+---------------------------+
使用mysql
程序从mysql
模式中的表中选择信息:
shell> bin/mysql -e "SELECT User, Host, plugin FROM mysql.user" mysql
+------+-----------+-----------------------+
| User | Host | plugin |
+------+-----------+-----------------------+
| root | localhost | caching_sha2_password |
+------+-----------+-----------------------+
此时,你的服务器正在运行,你可以访问它,如果你尚未为初始帐户分配密码,请加强安全性。
保护初始MySQL帐户
MySQL安装过程涉及初始化数据目录,包括定义MySQL帐户的mysql
系统模式中的授权表。
本节介绍如何为在MySQL安装过程中创建的初始root帐户分配密码(如果尚未这样做)。
执行本节所述过程的备选方法:
- 在Windows上,你可以在使用MySQL Installer进行安装期间执行该过程。
- 在所有平台上,MySQL发行版都包含
mysql_secure_installation
,这是一个命令行实用程序,可以自动完成保护MySQL安装的大部分过程。- 在所有平台上,MySQL Workbench都可用,并提供管理用户帐户的功能。
在这些情况下,密码可能已经分配给初始帐户:
- 在Windows上,使用MySQL Installer执行的安装为你提供了分配密码的选项。
- 使用macOS安装程序进行安装会生成一个初始随机密码,安装程序会在对话框中向用户显示该密码。
- 使用RPM软件包进行安装会生成一个初始随机密码,该密码将写入服务器错误日志。
- 使用Debian软件包的安装为你提供了分配密码的选项。
- 对于使用
mysqld --initialize
手动执行的数据目录初始化,mysqld
生成一个初始随机密码,将其标记为已过期,并将其写入服务器错误日志。
mysql.user
授权表定义了初始MySQL用户帐户及其访问权限,安装MySQL只会创建一个'root'@'localhost'
的超级用户帐户,该帐户具有所有权限并可以执行任何操作。如果root
帐户的密码为空,则你的MySQL安装不受保护:任何人都可以在没有密码的情况下以root身份连接到MySQL服务器并获得所有权限。
'root'@'localhost'
帐户在mysql.proxies_priv
表中也有一行,它允许为'@'
授予PROXY
权限,即为所有用户和所有主机授予,这使root
能够设置代理用户,以及委托其他帐户设置代理用户的权限。
要为初始MySQL root
帐户分配密码,请使用以下过程,将示例中的root-password替换为你要使用的密码。
如果服务器未运行,请启动它。
初始root
帐户可能有也可能没有密码,选择以下适用的过程:
如果
root
帐户存在初始随机密码已过期,请使用该密码以root
身份连接到服务器,然后选择新密码。如果数据目录是使用mysqld --initialize
初始化的,手动或使用安装程序,无法在安装操作期间为你提供指定密码的选项,由于密码存在,你必须使用它来连接到服务器。但由于密码已过期,除非你选择新密码,否则不能将该帐户用于选择新密码之外的任何其他目的。- 如果你不知道初始随机密码,请查看服务器错误日志。
使用密码以
root
身份连接到服务器:shell> mysql -u root -p Enter password: (enter the random root password here)
选择一个新密码来替换随机密码:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root-password';
如果
root
帐户存在但没有密码,请使用无密码以root
身份连接到服务器,然后分配密码,如果使用mysqld --initialize-insecure
初始化数据目录,则会出现这种情况。使用无密码以
root
身份连接到服务器:shell> mysql -u root --skip-password
分配密码:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root-password';
在为root帐户分配密码后,只要使用该帐户连接到服务器,就必须提供该密码,例如,要使用mysql
客户端连接到服务器,请使用以下命令:
shell> mysql -u root -p
Enter password: (enter root password here)
要使用mysqladmin
关闭服务器,请使用以下命令:
shell> mysqladmin -u root -p shutdown
Enter password: (enter root password here)
自动启动和停止MySQL
本节讨论启动和停止MySQL服务器的方法。
通常,你可以通过以下方式之一启动mysqld
服务器:
- 直接调用
mysqld
,这适用于任何平台。 - 在Windows上,你可以设置在Windows启动时自动运行的MySQL服务。
- 在Unix和类Unix系统上,你可以调用
mysqld_safe
,它试图确定mysqld
的正确选项,然后用这些选项运行它。 - 在支持
systemd
的Linux系统上,你可以使用它来控制服务器。 - 在使用System V样式运行目录(即
/etc/init.d
和运行级别特定目录)的系统上,调用mysql.server
,此脚本主要用于系统启动和关闭,它通常以mysql
的名称安装,mysql.server
脚本通过调用mysqld_safe
启动服务器。 - 在macOS上,安装一个launchd守护进程以在系统启动时启用自动MySQL启动,守护程序通过调用
mysqld_safe
启动服务器,MySQL首选项窗格还提供了通过“系统偏好设置”启动和停止MySQL的控件。 - 在Solaris上,使用服务管理框架(SMF)系统来启动和控制MySQL启动。
systemd
、mysqld_safe
和mysql.server
脚本、Solaris SMF和macOS启动项(或MySQL首选项窗格)可用于手动启动服务器,或在系统启动时自动启动。systemd
、mysql.server
和启动项也可用于停止服务器。
下表显示了服务器和启动脚本从选项文件中读取的选项组。
MySQL启动脚本和支持的服务器选项组
脚本 | 选项组 |
---|---|
mysqld | [mysqld], [server], [mysqld-major_version] |
mysqld_safe | [mysqld], [server], [mysqld_safe] |
mysql.server | [mysqld], [mysql.server], [server] |
[mysqld-major_version]
表示名为[mysqld-5.7]
和[mysqld-8.0]
的组由具有5.7.x,8.0.x等版本的服务器读取,此特性可用于指定只能由给定版本系列中的服务器读取的选项。
为了向后兼容,mysql.server
还读取[mysql_server]
组,mysqld_safe
也读取[safe_mysqld]
组。要成为最新的,你应该更新你的选项文件以使用[mysql.server]
和[mysqld_safe]
组。