mysqld_multi使用说明

2016/06/13 mysql

#mysqld_multi使用说明

mysqld_multi是一个用来管理多个mysqld实例的工具,可以监听不同的TCP/IP端口,可以启动关闭多个服务,显示服务的状态等。

mysqld_multi会搜索配置文件my.cnf下命名为[mysqldN]的组配置(也可以通过–defaults-file选项指定配置文件路径)。其中N,可以是任意有效的数字。

数字N,用来区分不同的配置,并且告诉mysqld_multi将要指定哪个服务被启动,关闭,显示状态等。组里面的配置同[mysqld]的配置格式是一样的。每个组的配置,有一些参数必需是不同的,如data目录,端口号,pid路径,socket路径,日志路径等

##mysqld_multi调用方式如下:

shell> mysqld_multi [options] {start|stop|reload|report} [GNR[,GNR] ...]

其中GNR是组数字N,可以指定多个,表示对多个实例进行启动,关闭,报告状态等。 如果没有指定GNR,则将对配置文件中的所有[mysqldN]实例,执行相应的操作 还可以指定数字的范围,用-符号相连,数字之间不要有空格,如下表示,停止8,10,11,12,13几个服务。

mysqld_multi stop 8,10-13

如下命令可以显示配置案例

shell> mysqld_multi --example

可以通过–defaults-file=file_name指定配置文件的路径,或者使用–no-defaults不指定配置文件 如果不指定任何参数,会按照配置文件的搜索路径进行搜索,如果指定了选项defaults-extra-file=file_name ,额外的配置文件也将被包含

mysqld_multi程序会搜索配置文件中的[mysqld_multi]和[mysqldN]组配置,[mysqld_multi]是用来给mysqld_multi程序使用,[mysqldN]是用来传递给mysqld实例的

[mysqld] 或者 [mysqld_safe]组配置,可以设置成通用的配置,给mysqld,mysqld_safe使用。

可以给每个实例指定配置文件,这样相应的实例会使用相应的配置文件。

##mysqld_multi 支持以下参数配置:

–help 帮助信息

–example 输出配置案例

–log=file_name 日志文件的位置

–mysqladmin=prog_name 指定mysqladmin程序的位置,用来关闭mysql服务

–mysqld=prog_name

指定mysqld程序的位置,也可以指定mysqld_safe,如果指定为mysqld_safe,则需要在相应的配置组[mysqldN]中加入ledir,或mysqld配置,告诉mysqld_safe在哪里找到mysqld程序如:

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

–no-log 输出日志到终端,不到日志文件

–password=password 调用mysqladmin所需要的密码配置,该参数是必需配置的

–silent 静默模式,不提示任何警告信息

–tcp-ip 通过TCP/IP端口连接MYSQL服务,不通过socket file方式,默认是使用socket file方式

–user=user_name 调用mysqladmin的mysql帐户

–verbose 显示详细的信息

–version 显示版本并退出

##注意事项 1.请确保对每个启动mysqld服务的unix帐户,拥有对mysql的数据目录的完全访问权限,不要使用root帐户。 2.确保每个实例用来停止mysqld服务的mysql帐户(供mysqladmin程序使用),有相同的帐户名称和密码,并且拥有SHUTDOWN权限。 如可以每个实例设置一个相同的帐户名称密码(如multi_admin),用来关闭多实例服务,连接每个mysql实例,进行如下设置

shell> 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';

连接不同的mysql实例,请改变客户端连接参数的配置,如

mysql -h 127.0.0.1 -u root -p123456 -P 3306
mysql -h 127.0.0.1 -u root -p123456 -P 3307

##如果启动mysqld_multi出现错误提示

WARNING: my_print_defaults command not found.
Please make sure you have this command available and
in your path. The command is available from the latest
MySQL distribution.
ABORT: Can't find command 'my_print_defaults'.
This command is available from the latest MySQL
distribution. Please make sure you have the command
in your PATH.

将mysql/bin的路径加入环境变量

vi /etc/profile
export PATH=/usr/local/mysql/bin/:$PATH

source /etc/profile

##mysqld_multi无法关闭的原因 发现在配置文件中[mysqld_multi]指定password后也无法停止mysql实例 经排查发现,password被转化成***,传递给了mysqladmin 使用命令行选项指定password即可,如

bin/mysqld_multi --password=123456 stop 2

还有用来管理mysql多实例的帐户,需要授权shutdown权限

##以下是多实例my.cnf的参考配置

# 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

http://dev.mysql.com/doc/refman/5.7/en/mysqld-multi.html


Search

    Table of Contents