在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

当前回答

我使用

全新的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目录中运行它并不能为它提供足够的上下文来运行它。

其他回答

这是5.5版本的一个问题:

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

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

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

我希望这对你有用。

在检查错误日志后,我发现了这个:

120309 17:42:49 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data
120309 17:42:50 [Warning] Setting lower_case_table_names=2 because file system for /usr/local/mysql/data/ is case insensitive
120309 17:42:50 [Warning] You need to use --log-bin to make --binlog-format work.
120309 17:42:50 [Note] Plugin 'FEDERATED' is disabled.
120309 17:42:50 InnoDB: The InnoDB memory heap is disabled
120309 17:42:50 InnoDB: Mutexes and rw_locks use GCC atomic builtins
120309 17:42:50 InnoDB: Compressed tables use zlib 1.2.3
120309 17:42:50 InnoDB: Initializing buffer pool, size = 16.0M
120309 17:42:50 InnoDB: Completed initialization of buffer pool
120309 17:42:50  InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
InnoDB: File name /usr/local/mysql/data/ib_logfile0
InnoDB: File operation call: 'open'.
InnoDB: Cannot continue operation.
120309 17:42:50 mysqld_safe mysqld from pid file /usr/local/mysql/data/lu1s.local.pid ended

为了解决这个问题,我给了整个mysql文件夹的所有权:

cd /usr/local
sudo chown mysql mysql
sudo chown mysql mysql-5.5.21-osx10.6-x86_64
sudo chown _mysql mysql
sudo chown _mysql mysql-5.5.21-osx10.6-x86_64

然后(你也可以做命令行),我应用权限(一旦我把所有权给_mysql和mysql用户),从文件夹/usr/local/mysql-5.5.21-osx10.6-x86_64的“获取信息”菜单中的所有附带的文件夹。你不需要把它传给别名,因为它只是一个别名。

文件夹的名称取决于MySQL的安装版本。

我在Mac电脑上也遇到了同样的问题(正确地遵循了brew install建议的所有安装步骤)。

删除错误文件为我修复了它:

执行rm -rf /usr/local/var/mysql/dev.work。Err (dev.work是我的主机名)

这是因为dev.work.err属于_mysql:wheel,而不是我自己的用户名。 chon -ing错误文件可能也会修复它。

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

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

⚠️这将删除您的数据,所以请确保它首先备份。

如果没有人帮助你,只需删除/usr/local/var/mysql文件夹,然后使用brew重新安装MySQL。