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
之后。
答案1
每当发生这种情况时,我通常会尝试使用以下方法关闭 mysqlmysql管理员
例如,关闭在端口 3307 上运行的 mysql
mysqladmin -h127.0.0.1 -P3307 -uroot -p shutdown
运行该程序后,请确保该端口上的 mysql 确实已关闭,如下所示:
mysqladmin -h127.0.0.1 -P3307 -uroot -p ping
试一试 !!!
答案2
要停止任何实例,mysqld_multi
应向用户授予权限multi_admin
。另请检查授予部分。
答案3
该问题在 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
答案4
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
启动、报告不需要授权,因此密码没有用,并且可以工作,但在停止时,需要用户和密码进行授权,并且”“ 崩溃 了mysqld_multi stop
。
解决方案:
- 修改 mysqld_multi,将
-s
选项添加到 my_print_defaults - mysqld_multi stop 4 --password=我的密码
@RolandoMySQLDBA 的解决方案有效,因为 mysqld_multi 最终将依靠 mysqladmin 来管理 mysqld 实例