在Mac OS上如何停止MySQL?


Answers:


377

根据您是使用正式的二进制安装程序,使用MacPorts还是使用Homebrew安装MySQL的情况不同:

家酿

brew services start mysql
brew services stop mysql
brew services restart mysql

MacPorts

sudo port load mysql57-server
sudo port unload mysql57-server

注意:重新启动后,此设置将持续存在。

二进制安装程序

sudo /Library/StartupItems/MySQLCOM/MySQLCOM stop
sudo /Library/StartupItems/MySQLCOM/MySQLCOM start
sudo /Library/StartupItems/MySQLCOM/MySQLCOM restart

多谢-我有停止和启动命令,但对尝试重新启动一无所知。使用stop命令后,start不会执行任何操作,就像从MySQL System Preferences面板开始一样。
罗斯·亨德森

4
在我的情况下,这略有不同,因为mysql版本号已添加到plist文件中。就像这样:sudo launchctl unload -w /Library/LaunchDaemons/org.macports.mysql5.plist sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist
d1rk 2011年

1
对我来说,/ opt / local / etc / LaunchDaemons / org.macports.mysql5 / org.macports.mysql5.plist
Dmitry

10
对于自制:launchctl (un)load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
Kostas,2013年

2
如果您安装了Homebrew Services,则可以使用brew services stop mysqlbrew services start mysql。(也是restart,并且run仅在当前会话开始。)
medmunds '17

138

对于使用自制软件安装MySQL的用户,请使用以下命令启动,停止或重新启动MySQL

冲泡开始

/usr/local/bin/mysql.server start

重新启动冲泡

/usr/local/bin/mysql.server restart

冲泡停止

/usr/local/bin/mysql.server stop

4
对我来说,homebrew的安装目录是/usr/local/Cellar/mysql@5.7/5.7.23/bin/
Moobie '19

68

您可以随时使用命令“ mysqladmin shutdown”


1
上面的命令对我不起作用。这个做了。不知道我的设置有什么区别,但是谢谢。
Marco Marco

2
即使它可以工作,但是如果您使用MacPorts并运行它,launchctl不会意识到mysql已经停止,并且如果您尝试启动它(加载)将会抱怨。因此,最好使用launchctl。
lambshaanxy 2011年

1
同样,尽管这对于关闭服务器有效,但是当您要重新启动服务器时,它不会做任何帮助您恢复服务器的操作。
aroth 2011年

3
请记住添加-p并在出现提示时输入您的mysql根密码。在通过MacPorts安装mysql的安装程序中,mysql重新启动,并重新加载了配置,这是我的操作目标。
Jesper Grann Laursen

sudo /opt/local/lib/mysql56/bin/mysqladmin shutdown如果您的MySQL来自MacPorts
Alain Tiemblo

51

如果您正在使用homebrew,则可以使用

brew services restart mysql
brew services start mysql
brew services stop mysql

有关可用服务的列表

brew services list

2
即使对直接与launchctl进行交互后,此操作也对我有效。谢谢!
Lyndsy Simon

18

sudo /usr/local/mysql/support-files/mysql.server停止


2
+1这只是对我有用的一个-我刚刚使用了Mysql的DMG安装程序。谢谢
Dolan Antenucci

15

sudo /opt/local/etc/LaunchDaemons/org.macports.mysql5/mysql5.wrapper stop

您也可以在此处使用启动和重新启动。我通过查看/Library/LaunchDaemons/org.macports.mysql.plist的内容发现了这一点。


1
这是您应该执行的方式。对于MacPorts。该launchctl方法不起作用,实际上可能会导致PID / DB启动咬合和mo吟。
亚历克斯·格雷


10

尝试

sudo <path to mysql>/support-files/mysql.server start
sudo <path to mysql>/support-files/mysql.server stop

其他尝试:

sudo /Library/StartupItems/MySQLCOM/MySQLCOM start
sudo /Library/StartupItems/MySQLCOM/MySQLCOM stop<br>
sudo /Library/StartupItems/MySQLCOM/MySQLCOM restart

但是,我发现如果.plist已加载,则第二个选项仅适用(OS X 10.6,MySQL 5.1.50):

sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysqld.plist

PS:我还发现,我需要卸载.plist以获得与MAMP -MySQL 无关的安装,才能正确启动/停止。运行此命令后,MAMP-MySQL可以正常启动:

sudo launchctl卸载-w /Library/LaunchDaemons/com.mysql.mysqld.plist


7

在我的Mac OS X优胜美地10.10上。该命令有效:

sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist
sudo launchctl unload -w /Library/LaunchDaemons/com.mysql.mysql.plist

您可以在/ Library / LaunchDaemons /文件夹中找到要运行的mysql文件


2
这是唯一为我工作的方法。对于任何其他方法,该mysqld过程将在停止后立即重新启动。
Rockallite

这也是对我有用的唯一方法。我从自制软件切换到了MySQL提供的DMG,我认为即使卸载了Brew版本,它仍然可以运行。
山姆·克里奇利

5

用:

sudo mysqladmin shutdown --user=*user* --password=*password*

不使用sudo可能会逃脱。例如,该用户可以是root 用户(即MySQL root用户)。


4

好吧,如果其他所有方法都失败了,您可以采取无情的方法并手动终止运行MySQL的进程。

那是,

ps -Af

列出所有进程,然后执行“ kill <pid>”,其中<pid>MySQL守护进程(mysqld)的进程ID 在哪里。


是的..这是最好的脚本通用脚本。您是否认为有数据损坏的可能性?或其他任何问题?
user425720's

1
这可能会损坏数据。
丹·桑德兰

但是,作为最后的努力,这已足够。
丹·桑德兰


2

对我来说,它正在使用“ mysql5”

sudo launchctl unload -w /Library/LaunchDaemons/org.macports.mysql5.plist
sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist

2

就我而言,一旦我使用PID终止了进程,它就会继续重新启动。也brew stop因为我没有使用自制安装命令没有工作。然后,我进入了Mac系统偏好设置,并在那里安装了MySQL。只需打开它并停止MySQL服务器即可。在屏幕快照的此处,您可以在系统偏好设置的底部找到MySQL。在此处输入图片说明


1

在OSX Snow Leopard上

launchctl unload /System/Library/LaunchDaemons/org.mysql.mysqld.plist

0

我在macports上安装了mysql5和mysql55。对我来说,这里提到的文件位于以下位置:

(mysql55服务器)/opt/local/etc/LaunchDaemons/org.macports.mysql55-server/org.macports.mysql55-server.plist

(mysql5)/opt/local/etc/LaunchDaemons/org.macports.mysql5/org.macports.mysql5.plist

所以停止这些工作是这样的:

mysql55服务器:

sudo launchctl unload -w /opt/local/etc/LaunchDaemons/org.macports.mysql55-server/org.macports.mysql55-server.plist

mysql5:

sudo launchctl unload -w /opt/local/etc/LaunchDaemons/org.macports.mysql5/org.macports.mysql5.plist 

您可以检查该服务是否仍在运行:

ps ax | grep mysql

此外,您可以在这里查看我的日志文件:

mysql55服务器

sudo tail -n 100 /opt/local/var/db/mysql55/<MyName>-MacBook-Pro.local.err
...
130213 08:56:41 mysqld_safe mysqld from pid file /opt/local/var/db/mysql55/<MyName>-MacBook-Pro.local.pid ended

mysql5:

sudo tail -n 100 /opt/local/var/db/mysql5/<MyName>-MacBook-Pro.local.err
...
130213 09:23:57  mysqld ended

0

如果您在MacPorts上安装了MySQL 5软件包:

sudo launchctl  unload -w /Library/LaunchDaemons/org.macports.mysql.plist 

要么

sudo launchctl  unload -w /Library/LaunchDaemons/org.macports.mysql5-devel.plist 

如果安装了mysql5-devel软件包。


1
这将阻止它在重新启动时启动,这不是发布者所要求的。
马修·申克尔

0

mysql>显示变量,其中variable_name如'%dir%';

| datadir | / opt / local / var / db / mysql5 / |


0

在尝试所有这些命令行后,它是行不通的。我必须做以下事情:

mv /usr/local/Cellar/mysql/5.7.16/bin/mysqld /usr/local/Cellar/mysql/5.7.16/bin/mysqld.bak
mysql.server stop

通过这种方式,mysqld进程消失了。但是/var/log/system.log有很多垃圾:

Jul  9 14:10:54 xxx com.apple.xpc.launchd[1] (homebrew.mxcl.mysql[78049]): Service exited with abnormal code: 1
Jul  9 14:10:54 xxx com.apple.xpc.launchd[1] (homebrew.mxcl.mysql): Service only ran for 0 seconds. Pushing respawn out by 10 seconds.
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.