在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

当前回答

似乎MySQL进程正在运行,因此您无法使用端口。用于查看正在运行的MySQL进程。

ps auxf | grep mysql

如果你得到任何MySQL进程,使用kill -9 PID杀死该进程ID,然后尝试启动MySQL。

其他回答

我试图重新安装MySQL,实际上我忘记停止服务器从我的旧安装。要解决这个问题,ps -ax | grep mysql并杀死[任何pid]。但话说回来,每个人都不一样。就像其他答案说的,转到/usr/local/var/mysql/并检查你的.err日志文件。

如果你的系统有多个版本的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!

请按照brew install mysql的说明安装mysql。

设置数据库以您的用户帐户运行:

对于MySQL 5.x:

unset TMPDIR
mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp

要在另一个文件夹中设置基表,或者使用不同的用户运行mysqld,请查看mysqld_install_db的帮助:

mysql_install_db --help

查看MySQL文档:

4.4.3 mysql_install_db -初始化MySQL数据目录 2.10.4 MySQL初始帐户安全

对于MySQL 8.x:

unset TMPDIR
mysqld --initialize-insecure --log-error-verbosity --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp

确保上面的数据目录/usr/local/var/mysql为空。必要时备份。

例如,要以“mysql”用户运行,你可能需要sudo:

sudo mysql_install_db ...options...

手动启动mysqld:

mysql.server start

注意:如果失败,您可能忘记运行上面的前两个步骤

错误日志说了什么?我得到了这个错误,它最终是my.cnf文件中的一个旧的无效设置,这是MySQL错误日志指示的。如果不是错误的配置设置,错误日志至少应该为您指明正确的方向。

我也有同样的问题。原因很简单。我安装了两个MySQL服务器。一个来自MacPorts,另一个来自下载的包。所以我只是按照这里的说明,从包中卸载了一个。

如何从Mac OS X上卸载MySQL ?

在那之后,MySQL运行得很好。