在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服务器上创建PID文件,权限被拒绝

改变我的一些权限似乎奏效了。我使用的是一台2012年年中的MacBook Air,安装了Mac OS X v10.8.2 (Mountain Lion), MySQL安装了Homebrew。

chmod 0755 /var
chown root:wheel /var/tmp
sudo chmod 0771 /usr/local/var/mysql/*

其他回答

我使用

全新的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”的日志文件。应该有更多的信息。它可能在:

/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/

这招对我很管用:

注意:这是一个硬重新安装。当所有其他选项都用尽时再使用。

在安装了Homebrew的Mac电脑上:

列出运行时存在的所有MySQL实例

brew services

通过运行删除每个实例

brew uninstall <instance_name>

删除/usr/local/var/mysql目录:

rm -rf /usr/local/var/mysql

使用Homebrew重新安装MySQL:

brew install mysql
brew install mysql@<version> #Optional

重新运行mysql。服务器启动:

mysql.server start

在这里发布的一些答案的帮助下,我找到了这个问题

我先跑

sudo -我

所以我有根权限。

然后我删除了xxxx。犯错文件:

Rm -rf /usr/local/mysql/data/xxxx.err

当我在SafeMode中创建MySQL后,

/usr/local/mysql/bin/mysqld_safe开始

它将尝试启动并因为错误而退出…一个新的xxx。Err文件将被创建,你需要读取它来查看错误的原因:

Tail -f /usr/local/mysql/data/mysqld.local.err

在我的情况下,由于某种原因,它在/var/log/文件夹中缺少一些文件夹和文件…所以我创建了两个:

cd /var/log

mkdir mysql

触摸mysql-bin.index

创建新文件后,您需要更改权限:

chown -R _mysql /var/log/mysql

当所有这些步骤都采取后,我的数据库立即开始工作……

关键是要读取错误和日志,并找到错误的地方……

这是5.5版本的一个问题:

下面是my.cnf文件[mysqld]部分的示例:

skip-character-set-client-handshake
collation_server=utf8_unicode_ci
character_set_server=utf8

参考:10.3.2服务器字符集和排序规则