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

Posted

技术标签:

【中文标题】如何在 Mac OS 安装上停止 MySQL?【英文标题】:How do you stop MySQL on a Mac OS install? 【发布时间】:2010-09-11 04:27:23 【问题描述】:

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

【问题讨论】:

【参考方案1】:

显然你想要:

sudo /Library/StartupItems/MySQLCOM/MySQLCOM stop

请进一步阅读Jeez People, Stop Fretting Over Installing RMagic

【讨论】:

【参考方案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 软件包。

【讨论】:

这将在您重新启动时阻止它启动,这不是发布者所要求的。【参考方案3】:

你总是可以使用命令“mysqladmin shutdown”

【讨论】:

上面的命令对我不起作用。这个做到了。不知道我的设置有什么不同,但谢谢。 即使它可能有效,但如果您使用 MacPorts 并运行它,launchctl 将不会意识到 mysql 已停止并且如果您尝试启动它(加载)会报错。因此最好使用 launchctl。 此外,虽然这适用于关闭服务器,但当您想要重新启动它时,它不会帮助您恢复它。 记得加 -p 并在提示时输入你的 mysql root 密码。在我使用 MacPorts 安装 mysql 的设置中,mysql 重新启动,并重新加载了配置,这是我的操作目标。 sudo /opt/local/lib/mysql56/bin/mysqladmin shutdown 如果你的mysql来自MacPorts【参考方案4】:

好吧,如果一切都失败了,你可以采取无情的方法,手动杀死运行 MySQL 的进程。

也就是说,

ps -Af

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

【讨论】:

是的..这个是最好的和通用的脚本。您认为有数据损坏的可能性吗?还是有其他问题? 这有可能导致数据损坏。 但作为最后的努力,这已经足够了。【参考方案5】:

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

自制

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

Mac 端口

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 面板启动一样。 在我的情况下略有不同,因为在 plist 文件中添加了 mysql 版本号。是这样的: sudo launchctl unload -w /Library/LaunchDaemons/org.macports.mysql5.plist sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist 对我来说,/opt/local/etc/LaunchDaemons/org.macports.mysql5/org.macports.mysql5.plist 对于自制软件:launchctl (un)load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist 如果你安装了Homebrew Services,你可以使用brew services stop mysqlbrew services start mysql。 (还有 restartrun 仅在当前会话中启动。)【参考方案6】:

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

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

【讨论】:

这就是你应该这样做的方式.. 对于 MacPorts..launchctl 方法不起作用,实际上可能会导致 PID / DB 启动问题和抱怨。跨度> 【参考方案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

【讨论】:

【参考方案8】:

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

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

【讨论】:

【参考方案9】:

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

开始酿造

/usr/local/bin/mysql.server start

Brew 重启

/usr/local/bin/mysql.server restart

停止酿造

/usr/local/bin/mysql.server stop

【讨论】:

对于我来说,homebrew 的安装目录是/usr/local/Cellar/mysql@5.7/5.7.23/bin/【参考方案10】:

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

【讨论】:

+1 这只是一个对我有用的——我刚刚使用了 Mysql 的 DMG 安装程序。谢谢 对我来说它给出了这个错误。 $ sudo /usr/local/mysql/support-files/mysql.server stop ERROR! MySQL server PID file could not be found! 这是唯一适合我的。非常感谢!【参考方案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-服务器:

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

【讨论】:

【参考方案12】:

用途:

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

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

【讨论】:

【参考方案13】:

mysql> 显示变量 where variable_name like '%dir%';

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

【讨论】:

【参考方案14】:

在 OSX 雪豹上

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

【讨论】:

【参考方案15】:

在我的 mac osx 优胜美地 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文件来运行

【讨论】:

这是唯一对我有用的方法。对于任何其他方法,mysqld 进程在停止后立即重新启动。 这也是唯一对我有用的方法。我从 homebrew 切换到 MySQL 提供的 DMG,我认为即使我卸载了 brew 版本,它可能仍在运行。【参考方案16】:

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

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

查看可用服务列表

brew services list

【讨论】:

这对我有用,即使直接与 launchctl 交互后也没有。谢谢! @Jan omg,非常感谢,您的回答帮助很大 这行得通,但我必须用它指定 MySQL 版本。 brew服务重启mysql@5.7【参考方案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

【讨论】:

【参考方案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.

【讨论】:

【参考方案19】:

就我而言,只要我使用 PID 终止进程,它就会继续重新启动。 brew stop 命令也不起作用,因为我在不使用自制软件的情况下安装。然后我去了 mac 系统偏好设置,我们在那里安装了 MySQL。只需打开它并停止 MySQL 服务器即可。在屏幕截图中,您可以在系统偏好设置的底部找到 MySQL。

【讨论】:

在 Big Sur 上通过 .pkg 版本 8.0.27-arm64 直接安装。【参考方案20】:

这在 macOS 10.13.6 和 8.0.12 MySQL 上对我有用

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

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

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

【讨论】:

【参考方案21】:

对我来说,以下解决方案有效Unable to stop MySQL on OS X 10.10

要停止我使用的自动启动:

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

并终止我使用的服务:

sudo pkill mysqld

【讨论】:

【参考方案22】:

获取实例名称:

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

【讨论】:

【参考方案23】:

正如@gediminas所说的

系统偏好设置 > MySQL > 停止 MySQL 服务器

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

【讨论】:

以上是关于如何在 Mac OS 安装上停止 MySQL?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 mac os 10.13.3 中重置我的 mysql 密码

如何从 Mac OS X 中卸载 MySQL?

在 Mac OS X 上安装 MySQL Python

如何在 Mac OS Lion 上从命令行启动 MySQL 服务器?

如何在一台windows主机上安装多个mysql服务

如何在Mac OS X上安装 Ruby运行环境