mysqld_multi stop 似乎不起作用

mysqld_multi stop 似乎不起作用

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 1mysqld_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

解决方案:

  1. 修改 mysqld_multi,将-s选项添加到 my_print_defaults
  2. mysqld_multi stop 4 --password=我的密码

@RolandoMySQLDBA 的解决方案有效,因为 mysqld_multi 最终将依靠 mysqladmin 来管理 mysqld 实例

相关内容