如何重启MySQL


32

我正在运行MySQL 5.1.54,并使用以下命令通过终端将其安装在Ubuntu上

sudo apt-get install mysql-server

我更改了my.cnf文件,想要停止然后再启动数据库。我尝试了以下

sudo /usr/bin/mysqld_safe stop

我的问题是我如何知道数据库已停止?当我运行上面的命令时,后面是

sudo mysql -uuser -ppassword

我可以直接登录回数据库。它不应该告诉我数据库没有运行吗?

有什么建议么?谢谢。

编辑: 我也尝试过

mysqladmin -uuser -ppassword shutdown

然后

ps aux | grep mysql

我得到以下输出

david    12093  0.0  0.0   6052  1276 pts/1    T    May10   0:00 nano /etc/mysql/my.cnf
root     12267  0.0  0.0   6396  1436 pts/1    T    May10   0:00 sudo nano /etc/mysql/my.cnf
root     12269  0.0  0.0   6052  1388 pts/1    T    May10   0:00 nano /etc/mysql/my.cnf
mysql    15371  0.3  0.1  55344  9088 ?        Ssl  10:53   0:00 /usr/sbin/mysqld
david    15512  0.0  0.0   5304   864 pts/1    R+   10:54   0:00 grep --color=auto mysql

以上输出是否表示MySQL已关闭?如果我运行,mysql -uuser -ppassword我仍然可以登录mysql。

有什么建议么?

Answers:


64

您实际上应该使用位于中的Sys-V初始化脚本/etc/init.d

开始:

sudo /etc/init.d/mysql start

停止:

sudo /etc/init.d/mysql stop

重新启动/重新加载配置:

sudo /etc/init.d/mysql restart

检查运行状态:

sudo /etc/init.d/mysql status

1
我尝试了一下,然后收到以下错误消息“而不是通过/etc/init.d调用初始化脚本,而是使用service(8)实用程序,例如service mysql status”
David

3
@David这是唯一正确的答案。service只是一个小程序,为您查找正确的init.d脚本。即使它向您抛出“错误消息”,sudo /etc/init.d/mysql start/stop也仍然可以完成其工作。使用service只是使用启动脚本的“新方法”。要使用service,只需在终端上执行:service mysql stop或开始。
BloodPhilia 2011年

@BloodPhilia,我想service mysql stop我得到了以下信息:Rejected send message, 1 matched rules; type="method_call", sender=":1.72" (uid=1000 pid=17673 comm="stop mysql ") interface="com.ubuntu.Upstart0_6.Job" member="Stop" error name="(unset)" requested_reply=0 destination="com.ubuntu.Upstart" (uid=0 pid=1 comm="/sbin/init"))。有任何想法吗?
大卫,

2
@David您是否尝试过使用sudo?喜欢sudo service mysql stop吗?
BloodPhilia

1
@BloodPhilia。您的建议有效。谢谢您的澄清。
大卫,

13

在Ubuntu计算机中,可以使用以下两个命令重新启动mysql:

 1. sudo /etc/init.d/mysql restart

 2. # service mysql restart

在Debian上也是如此。但是第一个命令使我localhost的所有命令都不起作用。它们将需要替换为127.0.0.1。后者没有那个问题。
MA-Maddin '18年

3

要关闭mysql,运行:

mysqladmin -uuser -ppassword shutdown

用户和密码是具有适当的SHUTDOWN特权的用户的密码

要检查它是否已关闭:

ps aux | grep mysql

如果显示任何进程(“ grep”命令除外),则说明该进程尚未关闭。


我按照您的指示进行操作,得到了输出。我已经按照您的程序编辑了问题。我可以告诉我我走的路是否正确?
大卫

我认为关闭停止,然后自动启动mysql。有命令永久停止mysql吗?
大卫,

@David自动重启不是mysqladmin shutdown的行为。可能是ubuntu的/etc/init.d/mysql行为?我不确定。我认为@gerryk的答案是适合您的操作系统的正确答案。
DTest 2011年

0

您可以使用kill -9“ PID”命令执行此操作,您可以通过运行ps -a或top命令来获得MySQL进程ID(PID)。然后,您可以通过调用./"main process“再次启动它。


嗨,我是命令行和MySQL的新手。您能确切显示我需要在终端中输入的内容吗?
大卫,

5
kill -9有点不礼貌,因为它不会让进程自行清理。
格里克2011年

1
我不建议这样做。根据MySQL突然停止时的操作,您可能会重新启动一些不满意的数据库。
Xenoactive 2011年

0

默认情况下,systemctl实用程序可用于管理Linux机器中的服务。它可用于启动,重新启动和停止服务。您还可以使用其他选项。结帐系统ctl?

systemctl stop mysql
systemctl start mysql

请添加一些详细信息,以了解为何会有帮助。不鼓励非解释性的答案,这很可能导致投票失败。
kdb
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.