繁体   English   中英

mysql.server 启动时出现 PID 错误?

[英]PID error on mysql.server start?

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

. ERROR! Manager of pid-file quit without updating file.

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

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

unset TMPDIR
mysql_install_db

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

尝试这个:

sudo mysql.server start

系统会提示您输入密码。 (这假设您的用户帐户具有“sudo”权限——它应该如此,除非它在 ​​OS X 中设置为受限用户帐户)。

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

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

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

我在尝试使用自制软件在 Lion 中安装 MySQL 5.5.15 时遇到了同样的问题,并通过以下方式解决了该问题:

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

并创建文件 ~/my.cnf

内容:

 [mysqld]
   basedir=/usr/local/Cellar/mysql/5.5.15
   datadir=/usr/local/var/mysql

basedir - 应该是你当前的 MySQL 安装目录 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

其中 DCMAKE_INSTALL_PREFIX = basedir 和 DMYSQL_DATADIR = datadir

没有其他真正的帮助,但以下工作有效:

$ 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

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

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

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

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

/usr/local/var/mysql

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

<your computer name>.err

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

[ERROR] InnoDB: The innodb_system data file 'ibdata1' must be writable

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

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

如果你真的关心:

ls -al /usr/local/var/mysql

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

因此,更改权限:

$ sudo chown -R _mysql /usr/local/var/mysql
$ sudo chmod -R o+rwx /usr/local/var/mysql

然后它会起作用。

看来无论出于何种原因我都无法在上面的 Immendes 下方发表评论,但是在 10.8.2 和 mySQL 5.6.10 上,除了验证 db_install 并添加 my.cnf 之外,我还必须 chown -R myusername /tmp/ mysql.sock。

似乎允许 mySQL 在用户下运行(就像我在 linux 上所做的那样与 root 或 www 相关)在这方面并不是最好的主意(尽管 Homebrew 可以更新公式 - 超出了我的范围和时间)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM