10

我有带有 NGINX 的 CentOS 6.4。

当我尝试使用start/stop/restartmysql 服务器时(/etc/init.d/mysqld restart),我收到此错误:

MySQL server PID file could not be found!                  [FAILED]
Starting MySQL..The server quit without updating PID file ([FAILED]/mysql/mysqld.pid).

我能做些什么来解决这个问题?

谢谢!

4

6 回答 6

6

我在 CentOS 6.3 上遇到了同样的错误,我将 MySQL 升级到 5.6.14,但我保留了旧的 my.cnf 文件。升级后,MySQL 不再启动,出现与您描述的相同的错误。

问题是我在 my.cnf 中有这个设置:

table_cache=2048

根据此链接table_cache 重命名 table_open_cache ..

“似乎在 5.5 中,系统变量 table_cache 被重命名为 table_open_cache。在 5.6 中,如果发现未知变量,mysqld 会失败,这意味着如果在 my.cnf 中指定了 table_cache,从 5.5 之前的版本升级可能会出现问题。”

在我将上面的行更改为

table_open_cache=2048

MySQL 完美启动。

因此,如果您拥有 MySQL 5.5+(可能还有较旧的 my.cnf),我建议您执行以下操作:

  • 从 /etc 文件夹中删除 my.cnf 并尝试启动 MySQL
  • 如果 MySQL 启动,则问题出在 my.cnf 中。逐一注释/取消注释所有设置,以查看导致问题的原因。

希望这可以帮助。

于 2013-10-24T12:19:46.960 回答
3

我将我的 Mac OS 升级到 10.9.3 并在 mysql.server 重启时遇到了上述问题

以下解决了我的问题

sudo chmod -R o+rwx /usr/local/var/mysql/
sudo chown -R mysql /usr/local/var/mysql/
sudo mysql.server restart
于 2014-09-19T12:07:25.807 回答
2

首先确保 /var/run/mysqld/mysqld.pid 中不存在哪个文件夹/文件

如果 dir 不存在,则将其创建为:

sudo mkdir -p /var/run/mysqld/

如果 mysqld.pid 不存在,则将其创建为:

sudo touch /var/run/mysqld/mysqld.pid

将所有权更改为:

sudo chown mysql:mysql -R /var/run/mysqld
chmod 775 -R /var/run/mysqld

重启mysql服务

sudo service mysql restart
于 2017-06-06T17:36:51.420 回答
1

我发现有时 MySQL 进程仍在运行。当然,在我的 OS X Yosemite 系统上就是这种情况,因此请使用以下命令查找名称中带有 MySQL 的任何进程:

ps aux | grep mysql

然后使用 command 杀死它们 sudo kill -9 PID,替换PID为有问题的进程 ID。

于 2015-04-10T22:05:37.547 回答
0

我发现这行得通....

# ps aux | grep mysql
root      3668  0.0  0.0  11432  1240 ?        S     2014   0:00 /bin/sh /usr/bin/mysqld_safe --datadir=/db/data01 --pid-file=/var/lib/mysql/mysql.pid
mysql     5303  0.1  0.4 1964748 12368 ?       S<l   2014 1663:35 /usr/sbin/mysqld --basedir=/usr --datadir=/db/data01 --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --log-error=/db/logs01/mysql-error.err --open-files-limit=8192 --pid-file=/var/lib/mysql/mysql.pid --socket=/var/lib/mysql/mysql.sock --port=3306
root     12369  0.0  0.0   6376   680 pts/0    S+   09:05   0:00 grep mysql
# kill -9 3668 5303
# rm /var/lock/subsys/mysql rm: remove regular empty file `/var/lock/subsys/mysql'? y
# service mysql start Starting MySQL (Percona Server).. SUCCESS!
于 2016-06-25T16:15:39.093 回答
0

检查是否有锁。

/etc/init.d/mysql status

如果操作系统说有锁,例如:

ERROR! MySQL is not running, but lock file (/var/lock/subsys/mysql) exists

删除该锁定文件并重新启动。

于 2016-06-17T08:31:32.710 回答