1. 配置了mysqld_multi启动mysql,但关闭时却关闭不了。查了一下,原来是如下原因:

[root@zw-test-db ~]# my_print_defaults mysqld_multi mysqld3307

--mysqld=/usr/local/mysql/bin/mysqld_safe

--mysqladmin=/usr/local/mysql/bin/mysqladmin

--log=/opt/mysql/mysqld_multi.log

--user=admin

--password=*****

--port=3307

--datadir=/data/mysql/mysql_3307/data

--tmpdir=/data/mysql/mysql_3307/tmp/

--log-bin=/data/mysql/mysql_3307/logs/mysql-bin

--server-id=23307

--socket=/tmp/mysql3307.sock

可以看到密码被保护起来了都是**

mysqld_multi里也调用了这个参数,调用过去都是***所以密码不正确

加一个-s参数

[root@zw-test-db ~]# my_print_defaults mysqld_multi -s  mysqld3307

--mysqld=/usr/local/mysql/bin/mysqld_safe

--mysqladmin=/usr/local/mysql/bin/mysqladmin

--log=/opt/mysql/mysqld_multi.log

--user=admin

--password=admin

--port=3307

--datadir=/data/mysql/mysql_3307/data

--tmpdir=/data/mysql/mysql_3307/tmp/

--log-bin=/data/mysql/mysql_3307/logs/mysql-bin

--server-id=23307

--socket=/tmp/mysql3307.sock

[root@zw-test-db ~]# 

可以看到-s参数可以看到显示密码

2.解决办法: 修改mysqld_multi的如下行

my $com= join ' ', 'my_print_defaults', @defaults_options, $group;

修改为

my $com= join ' ', 'my_print_defaults -s', @defaults_options, $group;

3. 然后再用multi停库,可以看到成功了

[root@zw-test-db bin]# mysqld_multi stop 3306

[root@zw-test-db bin]# mysqld_multi stop 3307

[root@zw-test-db bin]# ps -ef|grep mysql

root     15792 14921  0 14:29 pts/2    00:00:00 grep mysql