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

dar*_*ale 8 mysql linux mysql-5.7

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

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

$ sudo mysqld_safe --skip-grant-tables&
Run Code Online (Sandbox Code Playgroud)

现在,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.
Run Code Online (Sandbox Code Playgroud)

那么如何在 MySQL 守护进程开始使用时停止它mysqld_safe呢?

dar*_*ale 14

命令是:

$ mysqladmin shutdown
Run Code Online (Sandbox Code Playgroud)

  • @jackalope 我注意到较新的 MySQL 版本需要 ^\ (SIGQUIT)。 (3认同)
  • 如果您的目标是创建用户,请运行“mysqld_safe”而不将其放入后台(“&”),这样您就可以“^C”中断它并返回到常规操作。 (2认同)

Nik*_*ntz 6

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

  • 如果您想避免数据库不一致,请勿使用此选项。Kill 信号会立即终止 MySQL,如果它有正在运行的事务,则会提前结束。QUIT 信号(如 @tadman 所写)避免了这种情况并正确终止 MySQL。 (4认同)