在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

当前回答

我也有同样的问题。对我来说,它是在运行mysqld之前的安装时进行brew删除。Homebrew (brew)在卸载之前似乎不会停止服务。

在检查.err文件后,我看到了另一个MySQL副本可能正在运行的日志错误,在终止旧的服务后。然后我可以重新启动新的MySQL安装。

其他回答

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

ps auxf | grep mysql

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

我在交换服务器IP地址后遇到了这个问题。在此之前,数据库工作正常。在/etc/my.cnf文件中有一个条目需要更新:

bind-address = xxx.xxx.xxx.xx

里面有旧的IP地址。

我在重新启动并删除所有*err文件后遇到了这个问题。

我发现/usr/local/etc文件夹中my.cnf.d目录不见了

它创造了它:

mkdir /usr/local/etc/my.cnf.d

我只是复制粘贴了位于/usr/local/etc中的my。cnf。default文件到这个目录。

然后MySQL可以重新启动:

cd /usr/local/var/mysql
mysql.server start

MySQL可以工作。

这个问题通常出现在你没有libaio的时候。安装了1个库。首先安装这个包,然后重做mysql_install_db步骤。

在终端上从解压库的文件夹中使用以下命令下载并安装库。

make prefix=$HOME install
cd /usr/local/lib
ln -sv $HOME/libaio.so.1 libaio.so.1

请按照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

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