在Mac OS安装中,如何停止MySQL?

249

我通过MacPorts安装了MySQL。请问停止服务器的命令是什么(我需要测试当MySQL挂掉时我的应用程序的行为)?

24个回答

521

根据您使用的安装程序,MySQL 的情况会有所不同,可能是官方二进制安装程序,也可能是MacPortsHomebrew

Homebrew

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
非常感谢 - 我有停止和启动命令,但没有想到尝试重新启动。在使用停止命令后,启动将无法执行,从MySQL系统首选项面板启动也是如此。 - Ross Henderson
4
我的情况略有不同,因为在plist文件中加入了mysql版本号。操作如下:sudo launchctl unload -w /Library/LaunchDaemons/org.macports.mysql5.plist sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist - d1rk
1
对我来说,/opt/local/etc/LaunchDaemons/org.macports.mysql5/org.macports.mysql5.plist - Dmitry Minkovsky
11
对于自制软件:launchctl (un)load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist 的意思是加载或卸载 homebrew.mxcl.mysql.plist 文件,用于启动或停止自制软件。 - Kostas
2
如果你已经安装了Homebrew Services,你可以使用brew services stop mysqlbrew services start mysql。(还有 restartrun,它们仅在当前会话中启动.) - medmunds
显示剩余5条评论

146

如果您使用Homebrew安装了MySQL,则可以使用以下命令启动、停止或重新启动MySQL:

brew start

/usr/local/bin/mysql.server start

Brew restart

/usr/local/bin/mysql.server restart

停止Brew

/usr/local/bin/mysql.server stop

5
对我来说,Homebrew 的安装目录是 /usr/local/Cellar/mysql@5.7/5.7.23/bin/ - Moobie

80

你可以始终使用命令"mysqladmin shutdown"


1
上面的命令对我没用,但这个可以。不太确定我的设置有什么区别,但还是谢谢。 - Marco
2
尽管这样可能有效,但如果您正在使用MacPorts并运行此命令,则launchctl将无法意识到mysql已停止,并且如果您尝试启动它(load),则会出现错误。因此,最好使用launchctl。 - lambshaanxy
1
虽然这个方法可以关闭服务器,但当你想要重新启动它时,它并不能帮助你恢复它。 - aroth
4
在提示时记得添加“-p”,并输入你的MySQL根密码。在我的设置中,MySQL是通过MacPorts安装的,并重新启动和重新加载了配置文件,这是我的目标。 - Jesper Grann Laursen
1
如果您的MySQL来自MacPorts,请执行以下命令以关闭MySQL:sudo /opt/local/lib/mysql56/bin/mysqladmin shutdown - Alain Tiemblo
显示剩余3条评论

57

如果您正在使用homebrew,您可以使用以下命令:

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

查看可用服务列表

brew services list

3
谢谢!即使直接与launchctl进行交互没有起作用,但这对我很有帮助。 - Lyndsy Simon
@Jan 哇,非常感谢你,你的回答帮了我很多。 - whitesiroi
1
这个命令可以运行,但是我必须指定MySQL的版本。 brew services restart mysql@5.7 - Abrar Ahmad

27
在我的情况下,无论我使用PID杀死进程,它都会立即重新启动。并且brew stop命令无法正常工作,因为我是没有使用Homebrew安装的。然后我去了mac系统偏好设置,我们在那里安装了MySQL。只需打开它并停止MySQL服务器即可完成操作。您可以在屏幕截图中找到系统偏好设置底部的MySQL。enter image description here

2
适用于直接通过.pkg安装,在Big Sur上的8.0.27-arm64版本可正常工作。 - SagarM

23

使用sudo /usr/local/mysql/support-files/mysql.server stop命令可以停止MySQL服务。


3
+1 这是唯一对我有效的方法 - 我只是使用了 Mysql 的 DMG 安装程序。谢谢。 - Dolan Antenucci
1
对我来说,它显示了以下错误:$ sudo /usr/local/mysql/support-files/mysql.server stop ERROR! MySQL server PID file could not be found! - codeaprendiz
1
这是唯一一个对我有效的。非常感谢! - Chen Ni

15

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

您也可以使用 start 和 restart。我发现这个方法是通过查看 /Library/LaunchDaemons/org.macports.mysql.plist 的内容找到的。


1
这就是你应该做的方式。对于MacPorts来说,launchctl方法不起作用,实际上可能会导致PID / DB启动出现问题。 - Alex Gray

12

11

使用:

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

也许可以不使用sudo命令。例如,用户可以是root用户(即MySQL的root用户)。


11
尝试
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

然而,我发现第二个选项只在以下情况下起作用(OS X 10.6,MySQL 5.1.50),即当.plist已加载时:

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接