MySQL server PID file could not be found!_白及-CSDN博客
使用
ps -ef|grep mysqld
命令查看mysqld进程。
我出现的结果是这样的
mr.yu@mryus-mbp ~ % ps -ef|grep mysqld
0 22121 1 0 三07下午 ?? 0:00.02 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/Mryus-MBP.lan.pid
74 22205 22121 0 三07下午 ?? 1:29.85 /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=Mryus-MBP.lan.err --pid-file=/usr/local/mysql/data/Mryus-MBP.lan.pid
501 96134 94867 0 7:13下午 ttys000 0:00.00 grep mysqld
出来后根据以下内容查看哪个是进程号然后关闭它。
# 在不知程序端口号的情况下: 这样搜索好像会搜索出另外的同名线程,我也不是很清楚
【ps -axu 本机名|grep 程序名】
【ps -axu ShuChan|grep mysql】
# 我的本机名是 ShuChan,要查找的程序是mysql,有的程序名区分大小写
代码示例:
SC:~ ShuChan$ ps -axu ShuChan|grep mysql # 最前面可以看到 $符号前 就是我的本机名
0 2004 ?? 0:00.04 /bin/sh ./mysqld_safe --skip-grant-tables
74 2091 ?? 0:01.22 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --skip-grant-tables --log-error=/usr/local/mysql/data/SC.err --pid-file=/usr/local/mysql/data/SC.pid
501 2826 ?? 0:00.01 (mysqladmin)
501 2828 ttys000 0:00.01 grep mysql # 这种grep的一般都不是我们要找的程序
# 上方一大串字母就是我要找的进程,其pid号为 2091
# 在知道程序端口的情况下:
# 将PortNum替换为要查询的端口号(注意端口号前面不要空格)
sudo lsof -i:PortNum
# 举个例子
sudo lsof -i:3306
# 当然也可以不用管理员权限
lsof -i:3306
代码演示:
SC:~ ShuChan$ sudo lsof -i:3306
Password: # 在此需要输入的是mac的密码
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mysqld 2091 _mysql 30u IPv6 0xfd98d1f629a43db3 0t0 TCP *:mysql (LISTEN)
# 很明显 端口号 3306 的程序的 pid号为 2091
结束进程
# 前提是需要知道进程的PID号
# 将PID替换为相应的进程号
sudo kill PID号
# 举个例子
sudo kill 2091
然后我是这样的,我杀死22205这个进程号,然后内容如下所示
mr.yu@mryus-mbp ~ % sudo kill 22205
Password:
mr.yu@mryus-mbp ~ % sudo /usr/local/mysql/support-files/mysql.server restart
ERROR! MySQL server PID file could not be found!
Starting MySQL
. SUCCESS!