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


当前回答

获取实例名:

ls /Library/LaunchDaemons | grep mysql

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

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

或者,您可以停止MySQL实例

MacOS Settings > MySQL > Stop MySQL Server 

此外,查看这里更多的方法: https://tableplus.com/blog/2018/10/how-to-start-stop-restart-mysql-server.html

其他回答

Mysql >显示变量variable_name为'%dir%';

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

Try

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

好吧,如果所有这些都失败了,您可以采取无情的方法,手动杀死运行MySQL的进程。

也就是说,

ps -Af

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

对我来说,它与mysql5一起工作

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

尝试了所有的命令行,还是不行。我要做的事情有:

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.