mysql.server启动PID错误?

joe*_*tch 33 mysql macos homebrew pid

我刚刚尝试使用自制软件安装MySQL(在Mac OS X 10.6上),但我遇到了第一个问题.当尝试手动启动服务器(mysql.server启动)时,我收到以下错误:

. ERROR! Manager of pid-file quit without updating file.
Run Code Online (Sandbox Code Playgroud)

不幸的是我不确定要检查哪些错误日志或配置文件,因为我之前从未以这种方式安装MySQL.

Mik*_*ade 33

通过自制软件安装时我遇到了同样的问题.确保运行这些命令(在安装期间列出但很容易错过):

unset TMPDIR
mysql_install_db
Run Code Online (Sandbox Code Playgroud)

  • 这输出异常:`2016-05-31 10:47:27 [警告]不推荐使用mysql_install_db.请考虑切换到mysqld --initialize 2016-05-31 10:47:27 [错误]需要指定数据目录. (8认同)
  • 它适用于MYSQL 5.7.13(通过Homebrew安装).`unset TMPDIR && cd/usr/local/var/mysql /&& rm*&& mysqld --initialize`注意这将清理你的数据. (4认同)
  • 谢谢你,先生.在执行以下操作之前,似乎已经完成了这一操作:sudo chown -R`whoami`/usr/local (2认同)
  • 我没有目录`/ usr / local / var / mysql /`。 (2认同)

Lee*_*Lee 16

您可能需要确保以root用户身份运行mysql - 否则它将无权写入PID文件(因此您收到的错误).

试试这个:

sudo mysql.server start
Run Code Online (Sandbox Code Playgroud)

系统会提示您输入密码.(这假设您的用户帐户具有"sudo"的权限 - 除非它在OS X中设置为受限制的用户帐户,否则应该这样做).

这可能不是唯一的问题 - 但无论如何它应该让你进入下一步.

祝好运!

  • 我的天啊!为什么mysql不能简单地说"你没有足够的权限"."错误!服务器退出而不更新PID文件"是一个极具误导性的错误消息. (7认同)

lmm*_*des 6

我尝试使用自制程序在Lion中安装MySQL 5.5.15时遇到了同样的问题并解决了以下问题:

mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp
Run Code Online (Sandbox Code Playgroud)

并创建一个文件〜/ my.cnf

内容:

 [mysqld]
   basedir=/usr/local/Cellar/mysql/5.5.15
   datadir=/usr/local/var/mysql
Run Code Online (Sandbox Code Playgroud)

basedir - 应该是你当前的MySQL instalation dir datadir - 应该是MySQL数据的位置

你可以通过在"brew install mysql"中查看make命令来找出这个位置,搜索这样的东西:

-DCMAKE_INSTALL_PREFIX=/usr/local/Cellar/mysql/5.5.15 -DMYSQL_DATADIR=/usr/local/var/mysql -DINSTALL_MANDIR=/usr/local/Cellar/mysql
Run Code Online (Sandbox Code Playgroud)

其中DCMAKE_INSTALL_PREFIX = basedir和DMYSQL_DATADIR = datadir


Jas*_*der 6

以下两个命令应该可以解决您的问题.

> unset TMPDIR
> mysql_install_db --verbose --user=\`whoami\` --basedir="$(brew
--prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp
Run Code Online (Sandbox Code Playgroud)


Gro*_*ozz 5

没有其他真正的帮助,但以下方法有效:

$ ps aux | grep mysql
tagir           27260   0.0  1.0  3562356 175120   ??  S     2:52PM   0:00.42 mysqld --skip-grant-tables
tagir           42704   0.0  0.0  2434840    784 s000  S+    3:04PM   0:00.00 grep mysql
$ kill 27260
# Careful! This might erase your existing data
$ rm -rf /usr/local/var/mysql
$ mysqld --initialize
$ mysql.server start
Run Code Online (Sandbox Code Playgroud)


rmc*_*rry 5

我在这里添加这个是因为我在安装其他软件后多次遇到这个问题。MySQL 工作了好几天,然后突然我收到这个错误。

当我安装某些东西(例如,elasticsearch 或 Puma Web 服务器)时,似乎会发生这种情况。MySql 权限再次恢复(返回给我,而不是_mysql)。不知道为什么。

  • MacOS 塞拉利昂
  • 自制 1.0.5-43-g41b2df8 (2016-10-02)
  • MySQL 5.7.15

所以我发现造成这种情况的一个原因是 MySQL 存储数据库的位置的权限,默认情况下,这里是:

/usr/local/var/mysql
Run Code Online (Sandbox Code Playgroud)

如果您查看该文件夹,您将看到一个文件

<your computer name>.err
Run Code Online (Sandbox Code Playgroud)

如果您查看该文件(more它或cat它),您可能会看到以下错误:

[ERROR] InnoDB: The innodb_system data file 'ibdata1' must be writable
Run Code Online (Sandbox Code Playgroud)

如果是这样,那么您就知道这是一个权限问题。

如果您不在乎,您可能可以通过运行mysqld(并保持该终端打开)来运行 MySQL 。

如果你真的关心:

ls -al /usr/local/var/mysql

您会注意到权限可能都设置给您(您的用户帐户)。这意味着当您使用自制软件快捷方式运行 mysql 时,它无法挂载您的数据库sudo mysql.server start[即使您使用 sudo 在“管理员”模式下运行]。

因此,更改权限:

$ sudo chown -R _mysql /usr/local/var/mysql
$ sudo chmod -R o+rwx /usr/local/var/mysql
Run Code Online (Sandbox Code Playgroud)

然后它会起作用。