После установки MySQL через Brew я получаю сообщение об ошибке - Сервер завершил работу без обновления файла PID. - PullRequest
70 голосов
/ 09 марта 2012

Хорошо, я искал все и потратил довольно много времени на установку, удаление, пробуя различные варианты, но безуспешно.

Я на Mac OS X Lion (10.7.3)и я пытаюсь настроить Python, MySQL.

Я успешно установил Python и MySQL через HomeBrew.Python прекрасно работает.

После установки MySQL я выполнил первые 2 шага - команды unset и mysql_install_db.

Теперь, когда я пытаюсь запустить mysql «mysql.server start»,Я получаю следующую ошибку

ERROR! The server quit without updating PID file (/usr/local/var/mysql/Brajeshwar.local.pid).
  • Brajeshwar - мое имя пользователя на моей машине.

Ответы [ 26 ]

93 голосов
/ 22 июля 2014

Я обнаружил, что это проблема с правами доступа к папке mysql.

chmod -R 777 /usr/local/var/mysql/ 

решил это за меня.

72 голосов
/ 14 марта 2012

РЕДАКТИРОВАТЬ 2012/09/18: Как указал Кейн , убедитесь, что база данных mysql правильно настроена, прежде чем делать что-либо еще. См. « Ошибка PID при запуске mysql.server? » для получения дополнительной информации.

Оригинальный ответ, сохраняемый ради истории: Скорее всего, - это проблема с разрешениями. Проверьте /usr/local/var/mysql/*.err. Мина сказала:

120314 16:30:14  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 ./ibdata1
InnoDB: File operation call: 'open'.
InnoDB: Cannot continue operation.
120314 16:30:14 mysqld_safe mysqld from pid file /usr/local/var/mysql/janmoesen.local.pid ended

Я также должен был сделать это:

sudo chown _mysql /usr/local/var/mysql/*
48 голосов
/ 22 марта 2016

Я закончил с полной переустановкой mysql, и это наконец сработало.

ПРЕДУПРЕЖДЕНИЕ Это удалит все ваши базы данных, поэтому сначала сохраните дампы.

brew remove mysql
brew cleanup
launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
rm ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
sudo rm -rf /usr/local/var/mysql

brew install mysql
mysqld --initialize --explicit_defaults_for_timestamp
mysql.server start # no sudo!
28 голосов
/ 31 августа 2015

У меня была эта проблема на Mac 10.10.5 Yosemite

Что я сделал, чтобы решить эту проблему

cd /usr/local/var/mysql
sudo rm *.err && sudo rm *.pid
sudo reboot
sudo mysql.server start

18 голосов
/ 24 ноября 2014

Ноябрь 2014: если вы получаете эту ошибку на MySQL 5.6.x на Mac OS X Mavericks или Yosemite и хотите использовать MySQL с PHP локально (/tmp/mysql.sock - то, где PHP PDO ожидает найти носок файл), вот что исправило это для меня:

1) Раскомментируйте строки файла конфигурации homebrew по умолчанию и отредактируйте, как показано ниже

$ sudo vi /usr/local/Cellar/mysql/5.6.21/my.cnf
...
basedir = /usr/local/Cellar/mysql/5.6.21
datadir = /usr/local/var/mysql
port = 3306
server_id = <UNIQUE_NUMBER_HERE_OR_LEAVE_COMMENTED_OUT>
socket = /tmp/mysql.sock
pid-file = /usr/local/var/mysql/[BOXNAME].local.pid
....

BOXNAME - это то, что у вас в Системных настройках -> Сеть как уникальный идентификатор вашего компьютера в сети.

2) Установите разрешения для всех файлов в mysql datadir. Все они принадлежали [my_username]. MySQL очень разборчив в этом и отказывается создавать pid-файл, если только он (пользователь _mysql) не владеет каталогом.

$ sudo chown -R _mysql:mysql /usr/local/var/mysql

3) Запустите MySQL с помощью скрипта bash helper / wrapper:

$ sudo mysql.server start
Starting MySQL
. SUCCESS! 

Надеюсь, это поможет. Если вышеперечисленное не работает для вас, попробуйте запустить двоичный файл mysqld_safe вручную в каталоге Cellar / mysql / VERSION_ / bin / и проверьте настройки (если он работает)

sudo /usr/local/Cellar/mysql/5.6.12/bin/mysqld_safe &

Если это работает, вы можете

ps aux | grep mysql 

и увидите что-то вроде

[username]  6881   0.0  2.7  3081392 454836   ??  S     8:52AM   0:00.54 /usr/local/Cellar/mysql/5.6.21/bin/mysqld --basedir=/usr/local/Cellar/mysql/5.6.21 --datadir=/usr/local/var/mysql --plugin-dir=/usr/local/Cellar/mysql/5.6.21/lib/plugin --verbose --log-error=/usr/local/var/mysql/BOXNAME.local.err --pid-file=/usr/local/var/mysql/BOXNAME.local.pid

Я не уверен, почему это сработало для меня, но оно показывает, откуда я взял параметры файла конфигурации my.cnf. Вы также можете использовать параметры командной строки, чтобы попытаться устранить неполадки при запуске mysqld вручную.

Если вы все-таки запустите управление для запуска сервера MySQL с помощью mysqld_safe, возможно, вам придется сделать это, чтобы отключить его, прежде чем пытаться использовать mysql.server bash helper. Не поддавайтесь желанию убить -9 [PID], потому что вы можете повредить ваши данные.

mysqladmin -uroot shutdown

Удачи!

16 голосов
/ 02 февраля 2016

У меня была такая же проблема в OS X El Capitan, вот последовательность команд терминала, которая исправила ее для меня.

Удалите файлы ошибок (вам придется изменить путь в зависимости от настроек)

sudo rm /usr/local/mysql/data/*.err

Найдите информацию о процессе mysql, который все еще работает, и убейте его:

ps -A | grep -m1 mysql | awk '{print $1}' | sudo xargs kill -9

Теперь перезапустите MySQL:

/usr/local/mysql/support-files/mysql.server start
10 голосов
/ 08 августа 2015

Это сработало для меня:

sudo chmod -R 777 /usr/local/var/mysql/
sudo /usr/local/mysql/support-files/mysql.server start
3 голосов
/ 06 мая 2015

Моя проблема заключалась в том, что я однажды запустил сервер как sudo, а затем попытался перезагрузить как локальный пользователь.

Здесь mysql не смог записать файл '.err', принадлежащий пользователю root. Мне пришлось удалить этот файл и перезапустить сервер:

sudo rm /usr/local/var/mysql/*.err
mysql.server start
3 голосов
/ 09 марта 2012

Если я правильно помню, это проблема с разрешениями. Попробуйте «коснуться» и «chmod» файл pid или папку, в которой он хранится.

3 голосов
/ 22 декабря 2016

Это сработало для меня 10.12.2:

$ rm /usr/local/var/mysql/*.err

тогда

$ brew services restart mysql
...