在Mac OS X v10.6 (Snow Leopard)上,启动MySQL会出现以下错误:

服务器退出,没有更新PID文件

文件my.cnf

[mysqld]
port            = 3306

socket          = /tmp/mysql.sock

skip-external-locking

key_buffer_size = 16K

pid-file=/var/run/mysqld/mysqld.pid

[mysqld_safe]

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

当前回答

在我的情况下,我得到了这个问题在一个VPS和cPanel。

我试了之前的大部分答案,但都没有成功。

check where your error log is. It would be mentioned at the end of the error line. ERROR! The server quit without updating PID file (/var/lib/mysql/111318.vps-11.com.pid). Open that file (/var/lib/mysql/111318.vps-11.com.err) and check the bottom for the latest lines. In my case, there is [ERROR] Fatal error: Can't open and lock privilege tables: Table './mysql/db' is marked as crashed and should be repaired How solve this: Recovering and fixing the table indexes by command: [~]# myisamchk -r /var/lib/mysql/mysql/db.MYI MySQL is not running (Re)Start your MySQL server

其他回答

在我的例子中,错误发生是由于错误日志文件的访问问题。

下面两个命令帮助我解决这个问题。

sudo chown <user> /usr/local/var/mysql/<my-host-name>.err
sudo chmod 666 /usr/local/var/mysql/<my-host-name>.err

尝试查找后缀为“.err”的日志文件。应该有更多的信息。它可能在:

/usr/local/var/mysql/your_computer_name.local.err

可能是权限有问题

检查是否有MySQL实例正在运行 Ps -ef | grep mysql 如果是,你应该停止它,或者终止进程: kill -9 PID 其中PID是显示在前一个命令输出的用户名旁边的数字 检查/usr/local/var/mysql/的所有权 ls -laF /usr/local/var/mysql/ 如果它是root的owner,你应该把它改为mysql或your_user sudo chown -R mysql /usr/local/var/mysql/

如果您正在运行MySQL Galera集群,例如Percona XtraDB集群,请检查wsrep_recovery。*数据目录下的文件(例如:/var/lib/mysql)。

当我试图启动一个已经被主机的OOM杀手杀死的节点时,我从systemctl得到了相同的消息,但在任何正常日志中都没有任何迹象表明为什么启动失败。wsprep恢复文件有答案,在我的情况下,我需要用以下标志启动MySQL:

mysqld --tc-heuristic-recover=ROLLBACK

如果你的系统有多个版本的MySQL,那么你很可能会遇到这个PID错误:

我们可以从杀死所有MySQL进程开始:

sudo killall mysqld

转到/usr/local,选择你想要的MySQL版本,然后为它提供MySQL权限。在我的情况下,我需要版本8。

sudo chown -R mysql mysql-8.0.21-macos10.15-x86_64

打开/usr/local/mysql-8.0.21-macos10.15-x86_64文件夹,启动SQL server:

sudo。/ mysql。服务器启动(输入您的笔记本电脑密码)

如果它给出下面的输出…PID问题解决了

sudo ./mysql.server start

Starting MySQL
.. SUCCESS!

将日志文件“ib_logfile”移到“/var/lib/mysql”目录下,重启mysql。有时mysql会失败,因为它面临更新日志文件的困难

mv /var/lib/mysql/ib_logfile* /some/tmp/folder/

你也可以删除ib_logfile,因为它会在mysql重启后自动创建

现在重启mysql服务器