在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

当前回答

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

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

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

其他回答

以安全模式启动MySQL:

/usr/local/mysql/bin/mysqld_safe start

或者在Mac上,结束Activity Monitor应用程序中的任何mysql或mysqld任务(或其他)。

或者检查你的错误

tail -f /usr/local/mysql/data/XXXXX-XXXXX-Pro.local.err

我使用

全新的MacBook Pro,搭载OS X v10.7.3操作系统。x(狮子) 通过OS X GCC安装程序

我使用Homebrew ('brew install MySQL ')安装MySQL。它安装了几个依赖项,然后安装了MySQL。

当我试着启动它时,

mysql.server start

Starting MySQL
.. ERROR! The server quit without updating PID file (/usr/local/var/mysql/west.local.pid).

我执行这个命令,

/usr/local/Cellar/mysql/5.5.25/scripts/mysql_install_db

和MySQL工作。

请注意,您需要从MySQL目录的顶层运行mysql_install_db(例如,usr/local/Cellar/ MySQL /5.5.25)。直接在/scripts目录中运行它并不能为它提供足够的上下文来运行它。

我试着去掉所有的*。err文件,但我仍然得到相同的错误。我在错误日志中得到了一个错误:

InnoDB:试图打开先前打开的表空间。以前的表空间“erp/brand”在文件路径:./erp/brand.ibd下使用了“ID: 7”的空间。在“filepath: ./webdb1/system_ user.ibd”目录下,无法打开ID为7的表空间“webdb1/system_user”

所以我删除了所有的ib*文件,它工作:

rm -f *.err ib*

在我的Homebrew MySQL安装中,我只需要将位于/usr/local/var/mysql/中的ib_logfile0和ib_logfile1移动到另一个目录。

然后我就用mysql了。服务器启动,一切正常。

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

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

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