在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

当前回答

我在Mac OS X v10.7.5 (Lion)上尝试升级时遇到了这个问题。

不幸的是,MySQL也从5.5.14升级到5.6.10。我尝试了新版本,但它不起作用。

我决定回到我以前的设置,做了一个

brew switch mysql 5.5.14

这并没有解决问题。我在其他地方阅读并这样做了,瞧!一切都回来了:)

cd /usr/local/var/mysql
mv ib_logfile0 ib_logfile0.bak
mv ib_logfile1 ib_logfile1.bak

其他回答

它可能与旧的MySQL进程有关。你得关掉它,重新启动。有时可能是由于MySQL配置文件中的冲突。尝试移动它并重新启动MySQL。

查看下面的URL了解更多详细信息。

http://linuxadministrator.pro/blog/?p=225

删除pid文件,然后再次启动mysqld。

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

bind-address = xxx.xxx.xxx.xx

里面有旧的IP地址。

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

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

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

现在重启mysql服务器

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

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