如何通过移动 pid 来终止 mysql

如何通过移动 pid 来终止 mysql

我在 OSX 10.10 上运行了多个 mysql 实例。/usr/local/mysql/bin/mysqld stop弹出一堆警告和错误,我不确定它们是否值得分享。这是第一个错误,16164 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.运行 mysql_upgrade 失败。

运行ps aux | grep mysql结果:

clayton         16179   0.0  0.0  2423356    228 s000  R+   10:58AM   0:00.00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn mysql
_mysql          15599   0.0  0.3  3070756  24508   ??  S    10:22AM   0:01.64 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/usr/local/mysql/data/Beast.local.err --pid-file=/usr/local/mysql/data/Beast.local.pid
root            15514   0.0  0.0  2452828    876   ??  Ss   10:22AM   0:00.02 /bin/sh /usr/local/mysql/bin/mysqld_safe --user=mysql

我尝试终止进程sudo kill -15 16179 15599 15514,但我的用户进程 pid 发生了变化。kill: 16179: No such process如果我ps aux | grep mysql反复执行此操作,则由 clayton 拥有的第一个进程的 pid 每次都会增加 10。

因此,接下来我尝试使用 卸载 mysql launchctl unload /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plistlaunchctl unload /Library/LaunchDaemons/com.mysql.mysql.plist结果如下Could not find specified service

呃。我确实很困惑,不知道该怎么做。有什么建议吗?

答案1

每次您尝试终止它时,该进程可能会重新生起。

pgrep您始终可以尝试一次性使用并杀死它们,例如:

kill $(pgrep mysql)

但我认为解决方案是找到每次重新启动的源头,因此请尝试使用以下方法检查正在运行/系统守护程序的列表:launchctl

sudo launchctl list

然后按如下所述卸载:如何在 Mac OS 安装中停止 MySQL?

如果您有以下问题:

[错误] 无法打开 mysql.plugin 表。

可能你运行错误,没有指定正确的 mysql 数据目录。所以也许值得通过 重新加载它们launchctl,检查它们之前是如何运行的,或者找到你的配置文件并仔细检查配置,或​​者你有错误的权限设置。

以下是手动运行的示例语法:

mysqld --defaults-file=/etc/mysql/my.cnf --basedir=/var/db/mysql --datadir=/var/db/mysql --plugin-dir=/var/db/mysql/lib/plugin --user=mysql --tmpdir=/tmp/mysql/tmpdir --log-error=/var/log/mysql_error_log.err --pid-file=/tmp/mysql/mysql.pid --socket=/tmp/mysql/mysql.sock --port=3306

使用MAMP时,命令行参数如下:

/Applications/MAMP/Library/bin/mysqld --defaults-file=/Applications/MAMP/tmp/mysql/my.cnf --basedir=/Applications/MAMP/Library --datadir=/Library/Application Support/appsolute/MAMP PRO/db/mysql --plugin-dir=/Applications/MAMP/Library/lib/plugin --user=mysql --tmpdir=/Applications/MAMP/tmp/mysql/tmpdir --log-error=/Applications/MAMP/logs/mysql_error_log.err --pid-file=/Applications/MAMP/tmp/mysql/mysql.pid --socket=/Applications/MAMP/tmp/mysql/mysql.sock --port=3306 

答案2

您看到的第一行是 ps aux | grep mysql您每次(重新)运行的命令,因此不必担心。

如果您使用,您应该能够按名称终止 mysql 进程sudo pkill mysql

相关内容