错误!找不到MySQL管理器或服务器PID文件!QNAP

57

我遇到了一个问题,MySQL在我的QNAP NAS上无法启动。

我首先发现这个问题是因为无法通过phpMyAdmin登录 - 出现错误:

#2002 Cannot log in to the MySQL server

我尝试启动mysql,因为我猜这是一个普遍的问题,但它只给出了一个通用错误。

我尝试通过排除mysql.sock文件等问题,更改其权限,但什么都没用。

我已经多次重启了我的NAS。

最终,我尝试重新启动mysql。这样做时,我遇到了以下问题:

ERROR! MySQL manager or server PID file could not be found!

我找不到与QNAP有关的具体解决方法,也没有任何一般类型的故障排除。我发现的所有内容似乎都与OSX有关。


http://sysinfo.bascomp.org/mysql/error-mysql-manager-or-server-pid-file-could-not-be-found/ - Naveen Kumar Alone
那没解决问题,但我找到了如何解决的方法。那个建议无处不在。如我上面所说,我已经尝试过排除mysql.sock文件等所有可能,但都没有奏效。我将回答自己的问题,请查看下面的答案。 - adprocas
20个回答

74

经过大量搜索,我成功解决了我的电脑上的“无法找到PID文件”问题。我使用的是OS X 10.9.3,并通过Homebrew安装了mysql。

首先,我在这里找到了我的PID文件:

/usr/local/var/mysql/{username}.pid

接下来,我在这里找到了我的my.cnf文件:

/usr/local/Cellar/mysql/5.6.19/my.cnf

最后,我在my.cnf文件的底部添加了这一行:

pid-file = /usr/local/var/mysql/{username}.pid
希望这个方法对别人有用,可以帮助你避免麻烦!不要忘记用你机器的名称(在我的情况下是jeffs-air-2)替换{username}。

37
我知道,只是觉得其他和我有同样问题的人可能会偶然发现这个并感谢这个答案。 :) - jeffwtribble
1
我还需要执行 sudo chown -R (whoami) /usr/local/var/mysql 命令,然后再执行 mysql.server restart 命令。 - Vik
我正在运行MariaDB,它在"/usr/local/Cellar/mariadb/10.2.12/bin/mysql_config"中有一个mysql_config文件,在该文件底部添加了"pid-file = /usr/local/var/mysql/(my_computer_name).local.pid",但是.pid文件是动态创建的,并根据我所在的网络命名,因此添加带有.pid文件名的路径将无法正常工作。如果出现此错误,我可以通过杀死任何多余的mysql进程(应该只有一个)来启动和关闭。 - Dave Everitt
在OSX上,MySQL的8版本将PID放置在/usr/local/mysql/data/mysqld.local.pid中 - 您可以在系统偏好设置MySQL配置面板中查找它。 - Keith Whittingham
非常感谢!受到你的启发,我找到了<HostName>.pid文件,并最近更改了我的Mac访问网络。因此,我的主机名已更改,MySQL无法找到旧的hostname.pid文件。在路由器中将我的Mac主机名更改回来后,“mysql.server stop”就可以正常工作了! - Loyea

36

8
这对我很有用。运行ps -A | grep mysql,然后杀死所有这些进程,然后启动mysql。 - aliteralmind

31

如果您使用brew安装了MySQL,则最好使用homebrew

brew services restart mysql

运行该命令后,更新引起的所有问题都将得到解决。


3
这个方法有效,但在运行mysql.server restart时无法解决“找不到MySQL服务器PID文件!”的错误。 - GMarx
3
收到错误提示:Error: Formula mysql is not installed. 该意思为“错误:mysql 公式未安装”。 - Adil
如果你遇到了这个错误 Error: Formula mysql is not installed.。请尝试以下步骤 -> 使用 which mysql 命令查找已安装的 mysql 版本,然后在以下命令中指定该版本 brew services restart mysql@5.6 - Vignesh VRT

16

我最终自己解决了这个问题。

在搜寻我的日志时,我进入了

cd /usr/local/mysql/var
在那里,我找到了名为[MyNAS].pid的文件(将[MyNAS]替换为您的NAS的名称)。
然后我运行以下命令来删除该文件。
rm -rf /usr/local/mysql/var/[MyNAS].pid

我随后重新启动了mysql

[/usr/local/mysql/var] # /etc/init.d/mysqld.sh restart        
/mnt/ext/opt/mysql
/mnt/ext/opt/mysql
Try to shutting down MySQL
ERROR! MySQL manager or server PID file could not be found!
/mnt/ext/opt/mysql
Starting MySQL. SUCCESS! 

我测试了所有内容,一切都再次完美运行!


6

运行以下命令即可生效。

打开终端并输入:

sudo chown -RL root:mysql /usr/local/mysql

sudo chown -RL mysql:mysql /usr/local/mysql/data

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

1
我不知道它是如何工作的。我以前从未见过魔法……但它确实起作用了!我只是复制粘贴并加上了“成功”!谢谢你,我的英雄! - aalexren

4

只需在终端中运行mysqld(不要以root身份运行)。您的MySQL服务器将重新启动并重置所有内容。

然后使用以下命令:

mysql -u root -h 127.0.0.1

2

错误!无法找到MySQL服务器PID文件!

这可能是由于磁盘空间、磁盘inode使用或innodb损坏等问题导致的错误。

问题出在pid文件上,解决方法如下:

  1. 以root身份登录服务器的SSH

  2. 创建目录/var/run/mysql

mkdir /var/run/mysql

3) 创建一个名为mysqld.pid的文件

touch mysqld.pid

  1. 将其所有权和组更改为mysql:mysql

    chown mysql:mysql mysqld.pid

  2. 重新启动MySQL服务

完成!


1
首先,检查一下你的服务器是否已满,这是一个常见的原因(无法创建PID文件是因为没有空间)。运行以下命令来检查你的磁盘使用情况。
df -h

如果你得到这样的东西,你就已经满足了。。
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        40G   40G     0 100% /

在这种情况下,您需要开始寻找要删除的内容以腾出空间,或者给服务器添加额外的驱动器。

1
注意:如果只想停止MySQL服务器,则可能会有所帮助。在我的情况下,每当我使用PID杀死进程时,它就会不断重启。 此外,由于我没有使用homebrew安装,brew stop命令也无法正常工作。然后我去了mac系统首选项,我们在那里安装了MySQL。只需打开它并停止MySQL服务器即可完成操作。在屏幕截图中,您可以在系统首选项底部找到MySQL。enter image description here

1
我遇到了相同的问题。结果发现我在my.cnf文件中添加了不正确的变量。一旦我将它们删除并重新启动mysql,它就可以正常启动了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接