我刚刚尝试使用自制软件安装MySQL(在Mac OS X 10.6上),但我遇到了第一个问题。当尝试手动启动服务器(mysql.server start)时,我收到以下错误:
. ERROR! Manager of pid-file quit without updating file.
不幸的是我不确定要检查哪些错误日志或配置文件,因为我之前从未以这种方式安装MySQL。
答案 0 :(得分:33)
我在通过自制软件安装时遇到了同样的问题。确保您运行这些命令(在安装期间列出但很容易错过):
unset TMPDIR
mysql_install_db
答案 1 :(得分:16)
您可能需要确保以root
用户身份运行mysql - 否则它将无权编写PID文件(因此您收到错误)。
试试这个:
sudo mysql.server start
系统会提示您输入密码。 (这假设您的用户帐户具有“sudo”的权限 - 除非在OS X中将其设置为受限制的用户帐户,否则应该这样做。)
这可能不是唯一的问题 - 但无论如何它都应该让你进入下一步。
祝你好运!答案 2 :(得分:6)
我尝试使用自制程序在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
答案 3 :(得分:6)
以下两个命令可以解决您的问题。
> unset TMPDIR
> mysql_install_db --verbose --user=\`whoami\` --basedir="$(brew
--prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp
答案 4 :(得分: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
答案 5 :(得分:3)
我在此处添加此内容是因为我在安装其他软件后多次遇到此问题。 MySQL工作正常好几天,然后突然我得到了这个错误。
当我安装某些东西(例如elasticsearch或Puma web服务器)时似乎会发生这种情况。 MySql权限再次被恢复(返回给我,而不是_mysql
)。不知道为什么。
所以我发现其中一个原因是MySQL存储数据库的位置的权限,默认情况下在这里:
/usr/local/var/mysql
如果查看该文件夹,您将看到一个文件
<your computer name>.err
如果您查看该文件(more
或cat
),您可能会看到此错误:
[ERROR] InnoDB: The innodb_system data file 'ibdata1' must be writable
如果是,那么您知道这是权限问题。
如果你不在乎,你可以只运行mysqld
来运行MySQL(并让该终端保持打开状态)。
如果你照顾:
ls -al /usr/local/var/mysql
您会注意到权限可能都设置为您(您的用户帐户)。这意味着当您使用自制快捷方式sudo mysql.server start
运行数据库时,mysql无法装入数据库[即使您使用sudo以“管理”模式运行]。
所以,更改权限:
$ sudo chown -R _mysql /usr/local/var/mysql
$ sudo chmod -R o+rwx /usr/local/var/mysql
然后它会起作用。
答案 6 :(得分:1)
看来无论出于何种原因,我无法在上面的Immendes下面评论,但是在10.8.2上使用mySQL 5.6.10,除了验证db_install并添加my.cnf之外,我还不得不chown -R myusername /tmp/mysql.sock。
似乎允许mySQL在用户下运行(如我在ww上做的那样在linux上运行)并不是这方面的最佳选择(尽管Homebrew可以更新公式 - 超出我的范围和时间)