mysqld_multi stop 1后面(反复,稍后片刻)
mysqld_multi report 1返回:
Reporting MySQL servers
MySQL server from group: mysqld1 is running
实例工作正常,当我重新启动,我必须启动实例,让他们回来(我需要解决一个单独的问题),但stop命令似乎并没有做任何事情。
它确实不会停止实例,因为在实例日志文件中我看到: 120619 11:12:39 mysqld_safe A mysqld process already exists在尝试运行后start后120619 11:12:39 mysqld_safe A mysqld process already exists 。
每当发生这种情况,我通常尝试使用mysqladminclosuresmysql
例如,closures在端口3307上运行的mysql
mysqladmin -h127.0.0.1 -P3307 -uroot -p shutdown
一旦你运行确认,那个端口上的mysql确实是这样的:
mysqladmin -h127.0.0.1 -P3307 -uroot -p ping
试一试 !!!
停止任何mysqld_multi权限的实例应该被授予multi_admin用户。 请检查拨款的一部分。
closuresmysql服务(使用mysqladmin -h127.0.0.1 -uroot -p shutdown )并重新启动后,我无法从外部客户端连接到该服务器
我查了一下这个问题 ,发现了这个问题 ,应用了答案,这样问题就解决了。 那是因为mysqld的浪费DNS反向查询。
mysqld_multi只是一个perl脚本。 为什么mysqld_multi start 1和mysqld_multi report 1工作正常,但是mysqld_multi stop 1不是,位于my_print_defaults。
my_print_defaults mysqld_multi -s --mysqld=/usr/bin/mysqld_safe --mysqladmin=/usr/bin/mysqladmin --user=multi_admin --password=yy my_print_defaults mysqld_multi --mysqld=/usr/bin/mysqld_safe --mysqladmin=/usr/bin/mysqladmin --user=multi_admin --password=*****
在MySQL5.6 +中,密码默认显示为“ ”, mysqld_multi start,报表不需要授权,所以密码是mysqld_multi ,而且是工作的,但是在停止的时候需要用户名和密码进行授权, “ ”打破了mysqld_multi stop 。
解决scheme:
-s选项添加到my_print_defaults @RolandoMySQLDBA的解决scheme的作品,只是因为mysqld_multi将最终依靠mysqladmin来pipe理mysqld实例
这个问题在MYSQL 5.7.7中仍然存在这听起来很有趣,但是解决方法是在my.cnf中为[multi_admin]组用户使用pass而不是密码。
[mysqld_multi] mysqld = /usr/bin/mysqld_safe mysqladmin = /usr/bin/mysqladmin user = multi_admin pass = pass123