如何在 Mac OS 安装上停止 MySQL?

How do you stop MySQL on a Mac OS install?

提问人:Laurie Young 提问时间:9/19/2008 最后编辑:Peter MortensenLaurie Young 更新时间:10/3/2023 访问量:331537

问:

我通过MacPorts安装了MySQL。我需要什么命令来停止服务器(我需要测试我的应用程序在MySQL死机时的行为)?

MySQL 的macOS

评论


答:

12赞 Dan 9/19/2008 #1

显然你想要:

sudo /Library/StartupItems/MySQLCOM/MySQLCOM stop

进一步阅读 Jeez People, Stop Wetting for Installing RMagic.

1赞 Bartosz Blimke 9/19/2008 #2

如果您使用 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赞 Matthew Schinckel 9/19/2008
这将在您重新启动时阻止它启动,这不是海报所要求的。
80赞 Rimantas 9/19/2008 #3

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

评论

1赞 Marco 9/6/2009
上面的命令对我不起作用。这个做到了。不确定我的设置有什么区别,但谢谢。
2赞 lambshaanxy 7/6/2011
尽管它可能有效,但如果您使用 MacPorts 并运行它,launchctl 不会意识到 mysql 已停止,并且如果您尝试启动它(加载),它会抱怨。因此,最好使用 launchctl。
1赞 aroth 8/9/2011
此外,尽管这适用于关闭服务器,但当您想要重新启动服务器时,它不会做任何事情来帮助您将其恢复。
4赞 Jesper Grann Laursen 11/27/2013
请记住添加 -p 并在出现提示时输入您的 mysql root 密码。在我的设置中,mysql与MacPorts一起安装mysql,mysql重新启动,并重新加载了配置,这是作的目标。
1赞 Alain 11/29/2014
sudo /opt/local/lib/mysql56/bin/mysqladmin shutdown如果你的mysql来自MacPorts
4赞 John Montgomery 9/19/2008 #4

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

那是

ps -Af

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

评论

0赞 user425720 11/12/2010
是的。。这是最好的和通用的脚本。您认为存在数据损坏的可能性吗?还是其他问题?
1赞 Dan Sandland 12/11/2015
这可能会导致数据损坏。
0赞 Dan Sandland 12/11/2015
但作为最后的努力,这已经足够了。
521赞 mloughran 9/19/2008 #5

根据您是使用官方二进制安装程序、使用 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

评论

1赞 Ross Henderson 4/16/2011
非常感谢 - 我有停止和启动命令,但不知道/考虑尝试重新启动。使用 stop 命令后,start 将不执行任何操作,就像从 MySQL 系统首选项面板启动一样。
4赞 d1rk 10/26/2011
就我而言,它略有不同,因为 mysql 版本号已添加到 plist 文件中。就像这样: sudo launchctl unload -w /Library/LaunchDaemons/org.macports.mysql5.plist sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist
1赞 Dmitry Minkovsky 7/1/2012
对我来说,/opt/local/etc/LaunchDaemons/org.macports.mysql5/org.macports.mysql5.plist
11赞 Kostas 6/12/2013
对于自制软件:launchctl (un)load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
2赞 medmunds 5/28/2017
如果您安装了 Homebrew Services,则可以使用 和 .(此外,它仅在当前会话中启动。brew services stop mysqlbrew services start mysqlrestartrun
15赞 katy lavallee 1/13/2010 #6

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

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

评论

1赞 Alex Gray 3/13/2012
这就是你应该这样做的方式。对于MacPorts..该方法不起作用,实际上可能会导致 PID/DB 启动婊子和呻吟问题。launchctl
11赞 zack 8/20/2010 #7

尝试

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 unload -w /Library/LaunchDaemons/com.mysql.mysqld.plist

2赞 Allisone 6/30/2011 #8

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

sudo launchctl unload -w /Library/LaunchDaemons/org.macports.mysql5.plist
sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist
146赞 pjammer 1/19/2012 #9

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

冲泡开始

/usr/local/bin/mysql.server start

Brew 重新启动

/usr/local/bin/mysql.server restart

冲泡停止

/usr/local/bin/mysql.server stop

评论

5赞 Moobie 1/29/2019
对我来说,自制软件的安装目录是/usr/local/Cellar/[email protected]/5.7.23/bin/
23赞 Moesio 8/17/2012 #10

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

评论

3赞 Dolan Antenucci 2/9/2013
+1 这只是一个对我有用的---我只是使用了 Mysql 的 DMG 安装程序。谢谢
1赞 codeaprendiz 1/7/2021
对我来说,它给出了这个错误。$ sudo /usr/local/mysql/support-files/mysql.server stop ERROR! MySQL server PID file could not be found!
1赞 Chen Ni 9/27/2021
这是唯一对我有用的方法。多谢!
0赞 Manuel_B 2/13/2013 #11

我在 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-server:

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
11赞 Steve 7/8/2013 #12

用:

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

人们可能会不使用 sudo 而侥幸逃脱。例如,用户可以是 root(即 MySQL root 用户)。

0赞 Jack Peng 4/4/2014 #13

mysql> 显示变量,其中variable_name类似于 '%dir%';

|数据目录 |/opt/local/var/db/mysql5/ |

2赞 sweetfa 10/15/2015 #14

在OSX Snow Leopard上

launchctl unload /System/Library/LaunchDaemons/org.mysql.mysqld.plist
9赞 Duc Chi 3/22/2016 #15

在我的 mac osx yosemite 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赞 Rockallite 6/7/2016
这是唯一对我有用的方法。对于任何其他方法,进程在停止后立即重新启动。mysqld
0赞 Sam Critchley 1/18/2017
这也是对我有用的唯一方法。我从自制软件切换到 MySQL 提供的 DMG,我认为即使我卸载了它,brew 版本可能仍在运行。
57赞 Jan 5/13/2016 #16

如果你正在使用,你可以使用homebrew

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

获取可用服务的列表

brew services list

评论

3赞 Lyndsy Simon 12/15/2016
这对我有用,即使在直接与 launchctl 交互之后也没有。 谢谢!
0赞 whitesiroi 7/6/2021
@Jan天哪,非常感谢你,你的回答帮助很大
1赞 Abrar Ahmad 11/12/2021
这有效,但我必须用它指定MySQL版本。brew 服务重新启动 [email protected]
5赞 ppostma1 6/23/2016 #17

最新的 OSX (10.8) 和 mysql 5.6,该文件位于 Launch Daemons 下,为 com.oracle.oss.mysql.mysqld.plist。它在“系统选项”下显示一个选项,通常位于列表的底部。因此,转到系统设置,单击Mysql,然后从选项框中将其关闭。https://dev.mysql.com/doc/refman/5.6/en/osx-installation-launchd.html

1赞 bronze man 7/9/2018 #18

在尝试了所有这些命令行之后,它不起作用。我必须做以下事情:

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.
28赞 Abhijeet Khangarot 4/13/2020 #19

就我而言,一旦我使用 PID 终止进程,它就会继续重新启动。此外,命令不起作用,因为我在没有使用自制软件的情况下安装。然后我转到 mac 系统偏好设置,我们在那里安装了 MySQL。只需打开它并停止MySQL服务器,您就完成了。在屏幕截图中,您可以在系统首选项的底部找到MySQL。brew stopenter image description here

评论

2赞 SagarM 11/20/2021
适用于通过 .pkg 直接安装,版本 8.0.27-arm64 在大苏尔上。
1赞 Szekelygobe 8/24/2020 #20

这在带有 10.13.6 MySQL 的 macOS 8.0.12 上对我有用

/usr/local/mysql/support-files/mysql.server start

/usr/local/mysql/support-files/mysql.server restart

/usr/local/mysql/support-files/mysql.server stop

2赞 codeaprendiz 11/30/2020 #21

对我来说,以下解决方案有效:无法在OS X 10.10上停止MySQL

要停止自动启动,我使用了:

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

为了终止我使用的服务:

sudo pkill mysqld
5赞 Gediminas Šukys 7/21/2021 #22

获取实例名称:

ls /Library/LaunchDaemons | grep mysql

停止MySQL实例(适用于MacOS Catalina,MySQL 8):

sudo launchctl unload /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist

或者,您可以在

MacOS Settings > MySQL > Stop MySQL Server 

另外,请在此处查看更多方法: https://tableplus.com/blog/2018/10/how-to-start-stop-restart-mysql-server.html

3赞 Jaime Bula 7/22/2021 #23

正如@gediminas所说

MySQL>停止MySQL服务器>系统首选项

是最简单的方法。使用从 Oracle 下载的二进制安装程序。

6赞 Upasana Mittal 1/27/2023 #24

对于Mac M1 Pro,转到底部的系统设置和Mysql,然后单击停止MySQL服务器:

Stop MySQL server