10bet网址
MySQL 8.0参考手册
相关的文档10bet官方网站 下载本手册
PDF(美版)- 41.2 mb
PDF (A4)- 41.3 mb
PDF (RPM)- 39.5 mb
HTML下载(TGZ)- 9.3 mb
HTML下载(Zip)- 9.3 mb
HTML下载(RPM)- 7.8 mb
手册页(TGZ)- 260.6 kb
手册页(Zip)- 371.8 kb
信息(Gzip)- 4.0 mb
信息(邮政编码)- 4.0 mb
本手册节选

4.3.4 mysqld_multi管理多个MySQL服务器

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

请注意

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

mysqld_multi搜索名称为(mysqldNmy.cnf(或在由——defaults-file选项)。N可以是任意正整数。这个数字在下面的讨论中被称为选项组号,或者GNR。组号用于区分选项组和其他选项组,并用作参数mysqld_multi指定要启动、停止或获取其状态报告的服务器。列表中列出的选项与您在(mysqld)启动组mysqld。(例如,第2.10.5节,“自动启动和停止MySQL”)。但是,当使用多个服务器时,每个服务器都必须使用自己的选项值,例如Unix套接字文件和TCP/IP端口号。有关在多服务器环境中每个服务器必须唯一的选项的详细信息,请参见第5.8节“在一台机器上运行多个MySQL实例”

调用mysqld_multi,使用以下语法:

mysqld_multi [选项{启动|停止|重新加载|报告}[GNR(,GNR]…]

开始停止重新加载(停止和重新启动),和报告指示要执行的操作。您可以对单个服务器或多个服务器执行指定的操作,具体取决于GNR选项名称后面的列表。如果没有列表,mysqld_multi对option文件中的所有服务器执行该操作。

每一个GNR值表示选项组号或组号范围。该值应该是选项文件中组名末尾的数字。例如,GNR对于一个名为(mysqld17)17。要指定一个数字范围,用破折号分隔第一个和最后一个数字。的GNR价值10 - 13代表集团(mysqld10)通过(mysqld13)。可以在命令行上指定多个组或组范围,以逗号分隔。中不能有空白字符(空格或制表符)GNR列表;空白字符之后的任何内容都将被忽略。

该命令使用选项组启动单个服务器(mysqld17)

Mysqld_multi start

该命令使用选项组停止多个服务器(mysqld8)(mysqld10)通过(mysqld13)

Mysqld_multi停止8,10-13

关于如何设置选项文件的示例,使用以下命令:

mysqld_multi——示例

mysqld_multi搜索选项文件的方法如下:

有关这些选项和其他选项文件选项的其他信息,请参见节4.2.2.3,“影响选项文件处理的命令行选项”

搜索已读的选项文件(mysqld_multi)(mysqldN选项组。的(mysqld_multi)组可用于选项mysqld_multi本身。(mysqldN组可用于传递给特定对象的选项mysqld实例。

(mysqld)(mysqld_safe)的所有实例读取的公共选项可使用组mysqldmysqld_safe。您可以指定——defaults-file =file_name选项为该实例使用不同的配置文件,在这种情况下(mysqld)(mysqld_safe)该文件中的组用于该实例。

mysqld_multi支持以下选项。

一些关于mysqld_multi

  • 最重要的是:使用前mysqld_multi方法传递的选项的含义mysqld服务器和为什么你会想要分开mysqld流程。注意使用多个的危险mysqld具有相同数据目录的服务器。使用单独的数据目录,除非您知道你在做什么。使用相同的数据目录启动多个服务器就可以了在线程系统中提供额外的性能。看到第5.8节“在一台机器上运行多个MySQL实例”

    重要的

    确保每个服务器的数据目录可以被指定的Unix帐户完全访问mysqld进程启动为。使用Unix解释一下,除非你知道你在做什么。看到第6.1.5节,“如何作为普通用户运行MySQL”

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

    shell> mysql -u root -S /tmp/mysql。mysql b>创建用户'multi_admin'@'localhost' IDENTIFIED BY 'multipass';mysql>授权关闭*。* TO 'multi_admin'@'localhost';

    看到第6.2节“访问控制和帐户管理”。你必须对每一个都这样做mysqld服务器。在连接到每个节点时,请适当更改连接参数。请注意,帐户名的主机名部分必须允许您以multi_admin从您想要运行的主机mysqld_multi

  • Unix套接字文件和TCP/IP端口号必须不同mysqld。(或者,如果主机有多个网络地址,也可以设置bind_address系统变量,使不同的服务器监听不同的接口。)

  • ——pid文件选项是非常重要的,如果你使用mysqld_safe开始mysqld(例如,——mysqld = mysqld_safe)每mysqld应该有自己的进程ID文件。使用的优势mysqld_safe而不是mysqld是,mysqld_safe监控其mysqld进程,如果进程由于使用发送的信号而终止,则重新启动它kill - 9或者由于其他原因,例如分段错误。

  • 你可能想用——用户选择mysqld,但要做到这一点,你需要运行mysqld_multi以Unix超级用户()。在选项文件中拥有选项并不重要;如果你不是超级用户,你会得到一个警告mysqld进程在您自己的Unix帐户下启动。

下面的示例展示了如何设置一个选项文件以使用mysqld_multi。的顺序mysqld程序的启动或停止取决于它们在选项文件中出现的顺序。群号不必形成不间断的序列。第一和第五(mysqldN在示例中故意省略了组,以说明您可以拥有差距在选项文件中。这给了你更多的灵活性。

这是一个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用户= multi_admin密码= my_password [mysqld2] socket = /tmp/mysql。Sock2端口= 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/ mysqldd -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/爱沙尼亚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节“使用选项文件”