使用 mysqld_safe 运行 MySQL 后如何停止它?

Posted

技术标签:

【中文标题】使用 mysqld_safe 运行 MySQL 后如何停止它?【英文标题】:How to stop MySQL after running it using mysqld_safe? 【发布时间】:2019-04-04 19:20:29 【问题描述】:

我正在使用 mysqld_safe 为我的 root 用户创建密码(在 Ubuntu 18.04 下,安装时不会询问)。

要启动 MySQL,我已经完成了:

$ sudo mysqld_safe --skip-grant-tables&

现在,MySQL 守护程序正在运行,我无法停止它。通过终止进程来停止它会阻止我启动另一个 MySQL 守护进程,因为前一个守护进程没有归还资源,导致如下错误:

2018-10-31T14:50:40.238735Z 0 [ERROR] InnoDB: Unable to lock ./ibdata1 error: 11
2018-10-31T14:50:40.238815Z 0 [Note] InnoDB: Check that you do not already have another mysqld process using the same InnoDB data or log files.

那么,当 MySQL 守护程序使用 mysqld_safe 启动时,如何停止它?

【问题讨论】:

Stack Overflow 是一个编程和开发问题的网站。也许Database Administrators Stack Exchange 会是一个更好的提问地点。 ***.com/questions/37879448/… 【参考方案1】:

其他答案对我不起作用。不得不这样做 sudo killall -KILL mysql mysqld_safe mysqld

【讨论】:

如果你想避免数据库不一致,千万不要使用它。 Kill 信号会立即终止 MySQL,如果它有一个正在运行的事务将过早结束。 QUIT 信号(如@tadman 所写)避免了这种情况并正确终止 MySQL。【参考方案2】:

命令是:

$ mysqladmin shutdown

【讨论】:

如果您的目标是创建用户,请运行 mysqld_safe 而不将其置于后台 (&),这样您只需 ^C 将其中断并返回正常操作。跨度> @jackalope 我注意到较新的 MySQL 版本需要 ^\ (SIGQUIT)。 运行这个让我拒绝访问

以上是关于使用 mysqld_safe 运行 MySQL 后如何停止它?的主要内容,如果未能解决你的问题,请参考以下文章

mysql程序之mysqld_safe详解

MySQL各命令行工具功能说明(转)

无法在 linux 上启动 mysqld_safe

MySQL安装过程启动mysqld_safe中提示的pid ended错误导致无法启动问题处理

MySQL常用命令基础操作

如何杀死以“mysqld_safe”脚本开头的mysql?