6.3.4 mysqld_multi - 管理多个 MySQL 服务器

mysqld_multi旨在管理多个 mysqld进程,这些进程监听不同 Unix 套接字文件和 TCP/IP 端口上的连接。它可以启动或停止服务器,或报告其当前状态。

笔记
对于某些 Linux 平台,从 RPM 或 Debian 软件包安装 MySQL 包括 systemd 支持,用于管理 MySQL 服务器的启动和关闭。在这些平台上, mysqld_multi未安装,因为它是不必要的。有关使用 systemd 处理多个 MySQL 实例的信息,请参见第 2.5.9 节“使用 systemd 管理 MySQL 服务器”。

mysqld_multi搜索中 指定的组 (或由选项指定的文件中的 )。 可以是任何正整数。在以下讨论中,此数字称为选项组号或。组号将选项组彼此区分开来,并用作mysqld_multi的参数,以指定要启动、停止或获取状态报告的服务器。这些组中列出的选项与用于启动 mysqld 的组中使用的选项相同。(例如,请参见 第 2.9.5 节“自动启动和停止 MySQL”[mysqldN]my.cnf--defaults-fileNGNR[mysqld]。)但是,当使用多台服务器时,每台服务器都必须使用自己的选项值,例如 Unix 套接字文件和 TCP/IP 端口号。有关多服务器环境中每台服务器必须唯一的选项的更多信息,请参见 第 7.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,则不读取任何选项文件。

命令行格式    --no-defaults
类型    布尔值
默认值    false
使用 ,仅读取命名的文件。 --defaults-file=file_name

命令行格式    --defaults-file=filename
类型    文件名
默认值    [none]
否则,将读取标准位置列表中的选项文件,包括由选项命名的任何文件 (如果给出)。(如果多次给出该选项,则使用最后一个值。) --defaults-extra-file=file_name

命令行格式    --defaults-extra-file=filename
类型    文件名
默认值    [none]
有关这些选项和其他选项文件选项的更多信息,请参见第 6.2.2.3 节“影响选项文件处理的命令行选项”。

搜索读取的选项文件 [mysqld_multi]和 选项组。组可用于mysqld_multi本身的选项。 组可用于传递给特定 mysqld实例的选项。 [mysqldN][mysqld_multi][mysqldN]

[mysqld]或 组[mysqld_safe]可用于所有mysqld或 mysqld_safe实例读取的通用选项。您可以指定一个 选项来为该实例使用不同的配置文件,在这种情况下,该文件中的或 组将用于该实例。 --defaults-file=file_name[mysqld][mysqld_safe]

mysqld_multi支持以下选项。

--help

命令行格式    --help
类型    布尔值
默认值    false
显示帮助信息并退出。

--example

命令行格式    --example
类型    布尔值
默认值    false
显示示例选项文件。

--log=file_name

命令行格式    --log=path
类型    文件名
默认值    /var/log/mysqld_multi.log
指定日志文件的名称。如果文件存在,则日志输出将附加到该文件。

--mysqladmin=prog_name

命令行格式    --mysqladmin=file
类型    文件名
默认值    [none]
用于停止服务器的 mysqladmin 二进制文件。

--mysqld=prog_name

命令行格式    --mysqld=file
类型    文件名
默认值    [none]
要使用的mysqld二进制 文件。请注意,您也可以指定mysqld_safe作为此选项的值。如果您使用 mysqld_safe启动服务器,则可以在相应的选项组中 包括mysqld或 选项。这些选项指示mysqld_safe应启动的 服务器的名称以及服务器所在目录的路径名。(请参阅第 6.3.2 节“mysqld_safe — MySQL 服务器启动脚本”中对这些选项的描述 。)示例: ledir[mysqldN]

[mysqld38]
mysqld = mysqld-debug
ledir  = /opt/local/mysql/libexec
--no-log

命令行格式    --no-log
类型    布尔值
默认值    false
将日志信息打印到日志文件中,stdout而不是日志文件中。默认情况下,输出到日志文件。

--password=password

命令行格式    --password=string
类型    细绳
默认值    [none]
调用mysqladmin 时要使用的 MySQL 帐户的密码 。请注意,与其他 MySQL 程序不同,此选项的密码值不是可选的。

--silent

命令行格式    --silent
类型    布尔值
默认值    false
静音模式;禁用警告。

--tcp-ip

命令行格式    --tcp-ip
类型    布尔值
默认值    false
通过 TCP/IP 端口而不是 Unix 套接字文件连接到每个 MySQL 服务器。(如果缺少套接字文件,服务器可能仍在运行,但只能通过 TCP/IP 端口访问。)默认情况下,使用 Unix 套接字文件进行连接。此选项会影响 stop和report 操作。

--user=user_name

命令行格式    --user=name
类型    细绳
默认值    root
调用mysqladmin 时使用的 MySQL 帐户的用户名 。

--verbose

命令行格式    --verbose
类型    布尔值
默认值    false
更加详细一些。

--version

命令行格式    --version
类型    布尔值
默认值    false
显示版本信息并退出。

关于mysqld_multi 的 一些注意事项:

最重要的是:在使用mysqld_multi之前,请确保您了解传递给mysqld服务器的选项的含义以及 为什么要有单独的 mysqld进程。请注意使用具有相同数据目录的多个mysqld服务器的危险。使用单独的数据目录,除非您知道自己在做什么。 在线程系统中,使用相同的数据目录启动多个服务器不会给您带来额外的性能。请参阅第 7.8 节 “在一台机器上运行多个 MySQL 实例”。

重要的
确保每个服务器的数据目录对于 启动 特定mysqld进程的 Unix 帐户而言都是完全可访问的。除非您知道自己在做什么 ,否则不要root为此使用 Unix 帐户。请参见第 8.1.5 节“如何以普通用户身份运行 MySQL”。

确保用于停止 mysqld服务器(使用 mysqladmin程序)的 MySQL 帐户对每个服务器都具有相同的用户名和密码。此外,还要确保该帐户具有权限。如果您要管理的服务器的管理帐户的用户名或密码不同,则可能需要在每个服务器上创建一个具有相同用户名和密码的帐户。例如,您可以通过为每个服务器执行以下命令来 SHUTDOWN 设置一个通用帐户:multi_admin

$> mysql -u root -S /tmp/mysql.sock -p
Enter password:
mysql> CREATE USER 'multi_admin'@'localhost' IDENTIFIED BY 'multipass';
mysql> GRANT SHUTDOWN ON *.* TO 'multi_admin'@'localhost';
请参见第 8.2 节“访问控制和帐户管理”。您必须为每个mysqld服务器执行此操作。连接到每个服务器时,请适当更改连接参数。请注意,帐户名的主机名部分必须允许您从要运行mysqld_multimulti_admin的主机 进行连接。

每个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脚本 ( )。选项文件中有该选项并不重要;如果您不是超级用户并且mysqld 进程在您自己的 Unix 帐户下启动, 您只会收到警告。root

以下示例显示如何设置与mysqld_multi一起使用的选项文件。mysqld 程序的启动或停止顺序取决于它们在选项文件中出现的顺序。组号不必形成连续的序列。示例中有意省略了第一组和第五组,以说明选项文件中 可以有“间隙” 。这为您提供了更大的灵活性。[mysqldN]

# This is an example of a my.cnf file for mysqld_multi.
# Usually this file is located in home dir ~/.my.cnf or /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
请参见第 6.2.2.2 节“使用选项文件”。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值