我在 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.plist
,launchctl 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
。