开发者

PID error on mysql.server start?

开发者 https://www.devze.com 2023-01-30 09:08 出处:网络
I\'ve just tried installing MySQL using homebrew (on Mac OS X 10.6), but I\'ve run across an issue at the first hurdle. When trying to manually start the server (mysql.server start), I get the followi

I've just tried installing MySQL using homebrew (on Mac OS X 10.6), but I've run across an issue at the first hurdle. When trying to manually start the server (mysql.server start), I get the following error:

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

Unfortunately I'm not sure of which error logs or co开发者_如何学JAVAnfiguration files to check, as I've never installed MySQL in this way before.


I ran into this same problem when installing via homebrew. Make sure you run these commands (which are listed during install but easy to miss):

unset TMPDIR
mysql_install_db


You probably need to ensure that you're running mysql as the root user -- otherwise it won't have permission to write the PID file (thus the error you're receiving).

Try this:

sudo mysql.server start

You'll be prompted for your password. (this assumes that your user account has permissions to "sudo" -- which it should, unless it's setup as a restricted user account in OS X).

This may not be the only issue -- but it should get you to the next step anyway.


I ran into the same issue while trying to install MySQL 5.5.15 in Lion using homebrew and resolved the issue with:

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

and creating a the file ~/my.cnf

with the content:

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

basedir - should be your current MySQL instalation dir datadir - should be the location of MySQL data

You can figure out that too location by watching the make command during the "brew install mysql" searching for something like this:

-DCMAKE_INSTALL_PREFIX=/usr/local/Cellar/mysql/5.5.15 -DMYSQL_DATADIR=/usr/local/var/mysql -DINSTALL_MANDIR=/usr/local/Cellar/mysql

Where DCMAKE_INSTALL_PREFIX = basedir and DMYSQL_DATADIR = datadir


Nothing else really helped, but the following worked:

$ 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


These following two commands should solve your issue.

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


I am adding this here because I encountered this problem several times after installing other software. MySQL was working fine for days, then suddenly I get this error.

It seems to happen when I install something (eg. elasticsearch or Puma web server). The MySql permissions get reverted again (back to me, and not _mysql). No idea why.

  • MacOS Sierra
  • Homebrew 1.0.5-43-g41b2df8 (2016-10-02)
  • MySQL 5.7.15

So I have found that one cause of this is the permissions on the location where MySQL stores your databases, which by default is here:

/usr/local/var/mysql

If you look in that folder you will see a file

<your computer name>.err

If you look inside that file (more it or cat it) you will probably see this error:

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

If so then you know it is a permissions issue.

If you don't care, you can probably just run MySQL by just running mysqld (and leave that terminal open).

If you do care:

ls -al /usr/local/var/mysql

you will notice that the permissions are probably all set to you (your user account). This means mysql cannot mount your databases when you run it using the homebrew shortcut sudo mysql.server start [even though you are using sudo to run in 'admin' mode].

So, change the permissions:

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

Then it will work.


It appears that for whatever reason I can't comment below Immendes above, but on 10.8.2 with mySQL 5.6.10, in addition to verifying the db_install and adding the my.cnf, I also had to chown -R myusername /tmp/mysql.sock.

It appears that allowing mySQL to run under the user (as apposed to root or www as I woudl do on linux) is not the best idea in this regard (though Homebrew could update the formula -- beyond my scope and time).


  1. brew postinstall mysql
  2. delete document /opt/homebrew/var/mysql
  3. brew postinstall mysql
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号