在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

当前回答

在/etc/ SELinux /config:

SELINUX=禁用并重新启动服务器。

其他回答

我的回答很不专业,我不理解。我用的是CentOS和通用版的MySQL…当我用root用户启动mysql时,我的问题用——user=root解决了:

/path/to/mysql/support-files/mysql.server start --user=root

如果你正在使用systemctl启动mysql。服务,您需要更改mysql。/etc/systemd/system/mysql.service中的服务文件:

.
.
.
ExecStart=/path/tp/mysql/support-files/mysql.server start --user=root
ExecStop=/path/to/mysql/support-files/mysql.server stop --user=root
.
.
.

在/etc/ SELinux /config:

SELINUX=禁用并重新启动服务器。

我最近遇到了这个问题,但它之前是工作的,然后停止了。

这是因为mysql最初是我创建的。服务器的根用户,而不是我自己。

修复方法是删除err日志文件(它属于_mysql)。重新开始就通过了。

这对我很管用……

检查所有正在运行的MySQL进程:

$ ps aux | grep mysql

USER     PID    %CPU  %MEM 
_mysql   5970   0.0   0.4 ...

然后使用以下命令杀死上面命令中列出的所有进程:

$ sudo kill -9 [PID]

将[PID]替换为上面列表中的单个PID,例如5970。

对使用第一个命令看到的所有行都这样做。

然后你可以再次启动你的MySQL服务器:

mysql.server start

这是5.5版本的一个问题:

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

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

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