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