После установки MySQL через Brew я получаю сообщение об ошибке - Сервер завершает работу без обновления файла PID


88

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

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

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

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

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

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

Ответы:


80

РЕДАКТИРОВАТЬ 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/*

65
Я решил проблему:sudo chown -R _mysql:_mysql /usr/local/var/mysql
Маттео Алессани,

1
Я получаю ту же ошибку, но у меня нет папки / usr / local / var / mysql :( Я тоже использую homebrew.
Натан Башоу,

2
См. Комментарии brew info mysqlили этот вопрос для правильного решения
Кейн

4
sudo chmod ugo + w / tmp было моим решением.
Ben Racicot

2
моя была решена с помощью sudo chown -R {my_user_name}: admin / usr / local / var / mysql55 /
Packet Tracer

101

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

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

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


18
нет необходимости делать этот 777
Джеймс Холсолл

2
Я тоже долго искал и вот что исправило для меня.
укушен

6
Обратите внимание, что я не рекомендую устанавливать значение 777 в производственной среде. Это должно быть только при локальной установке. Я бы также переключил его как минимум обратно на 755.
mikoop

1
Если вы видите ошибку при запуске mysql Предупреждение: доступный для записи файл конфигурации '/var/lib/mysql/none-dev/my.cnf' игнорируется Тогда вы, вероятно, захотите chmod ow / var / lib / mysql / none- dev / my.cnf
Дэвид Манн

1
моя была решена с помощью sudo chown -R {my_user_name}: admin / usr / local / var / mysql55 /
Packet Tracer

65

В итоге я полностью переустановил 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!

3
Я пробовал менять разрешения всеми возможными способами, но безуспешно. Закончил, следуя этим инструкциям и ... успех :)
kartsims 07

Это ЕДИНСТВЕННОЕ решение, которое я нашел. Это должно быть номер один
Дэн

Спасибо, это единственное, что у меня сработало. Хотя мне и не пришлось бежатьmysqld --initialize --explicit_defaults_for_timestamp
Deep

1
Запуск MySQL ... ОШИБКА! Сервер завершил работу без обновления файла PID (<путь> -.lightspeed.irvnca.sbcglobal.net.pid). Получение этой ошибки
Унникришнан

1
Просто доморощенный вопрос
McGrady

31

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

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

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


Ура! Этот способ самый простой и спас мне день!
iplus26

Отлично, ты спас мне день;)
Emy Stats

Вздох. После двухчасового тестирования всех решений в Интернете, вот что наконец исправило! Старый добрый перезапуск! :)
SexyBeast

18

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

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. Все они принадлежали [my_username]. MySQL очень разборчив в этом вопросе и отказывается создавать файл pid, если он (пользователь _mysql) не владеет каталогом.

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

3) Запустите MySQL, используя сценарий помощника / оболочки bash:

$ 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. Не поддавайтесь желанию убить -9 [PID], потому что вы можете испортить свои данные.

mysqladmin -uroot shutdown

Удачи!


спасибо - мой был решен с помощью sudo chown -R {my_user_name}: admin / usr / local / var / mysql55 /
Packet Tracer

18

У меня была такая же проблема в 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

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

sudo chmod -R 777 /usr/local/var/mysql/
sudo /usr/local/mysql/support-files/mysql.server start

Это решило мою проблему в MAC os 10.11.3 (после изменения режима на 777 в каталоге mysql)
Рата

Это означает чтение, запись, выполнение или полные права всех пользователей на эту папку и (-R) все файлы и папки в этой папке. Для подробного объяснения, пожалуйста, взгляните на следующую ссылку: linux.com/learn/understanding-linux-file-permissions
Kresimir Plese


3

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


Неа. Я даже попробовал chmod 777, чтобы увидеть, решит ли это проблему, но ничего. Та же ОШИБКА.
Brajeshwar

Вы пытались выполнить chmod 777 в каталоге mysql, удалить файл pid и перезапустить MySQL?
LonnyLot

3

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

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

sudo rm /usr/local/var/mysql/*.err
mysql.server start

2

У меня аналогичная проблема с MySQL на Mac (Mac Os X не может запустить MySQL Server. Причина: 255, а также «ОШИБКА! Сервер завершил работу без обновления файла PID»). После долгого процесса проб и ошибок, наконец, чтобы восстановить права доступа к файлам, я просто сделал это:

запустите Disk Utilities.app,
выберите мой диск на левой панели,
нажмите кнопку «Восстановить права доступа к диску».

Это помогло для меня. Надеюсь, это поможет кому-то другому.


1

Для меня это сработало с:

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

1

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

  1. Перейдите в каталог установки mysql
  2. sudo chmod -R 777 data
  3. Затем вернитесь на один каталог
  4. cd support-files/
  5. sudo ./mysql.server start

После этого сервер заработал.

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


1

Найдите файл usr / local / var / mysql / your_computer_name.local.err и узнайте больше об ошибке.

Расположение: /usr/local/var/mysql/your_computer_name.local.err

Возможно проблема с разрешениями

  1. Найдите, работает ли mysql, и убейте его

ps -ef | grep mysql

kill -9 PID

где PID - это значение второго столбца 2. проверьте право собственности на mysql

ls -laF / usr / локальный / var / mysql /

if it is owned by root, change it mysql or your user name

sudo chown -R mysql / usr / локальный / var / mysql /


1

Попробуйте это (OSX)

Шаг 1: ps -aux | grep mysql

Затем убейте 4-значный номер PID

Шаг 2: kill 1965

Шаг 3: mysql.server start

Или вам трудно найти эти числа PID, попробуйте это ниже

Шаг 1 снова: ps -aux | grep mysql

Шаг 2 снова: killall

Шаг 3 снова: mysql.server start


1

Пожалуйста, проверьте журнал, вы получите более подробную информацию.

Используйте команду ниже, чтобы отслеживать журнал ошибок

tail -100 /usr/local/var/mysql/<user_name>.local.err

Для меня один из каталогов отсутствует, после создания сервер запустился.


1

Ключевой вывод - проверить файл .err, по умолчанию в Mac OSX он находится в /usr/local/var/mysql .

Этот журнал показал мне, что мне пришлось удалить следующие файлы:

ibdata1
ib_logfile0
ib_logfile1

mysql.startПосле этого запуск MySQL с успешно работал. Обратите внимание, что удаление этих файлов может привести к потере данных.



0

У меня была такая же проблема:

Но каждый раз, когда я пытаюсь войти, ситуация была такой:

/usr/local/mysql/support-files/mysql.server start

создается файл с именем, localhost.pidвместо iMax0.local.pidкоторого было указано в ошибке:

ERROR! The server quit without updating PID file (/usr/local/mysql/data/iMax0.local.pid).

Решение, которое работает для меня, было скопировано localhost.pidи переименовано в iMax0.local.pid.


0

Мое решение для OSX El Capitan было:

sudo chmod ugo+w /tmp

Он был сломан внезапно.

Ошибка была:

ERROR! The server quit without updating PID file

и журнал показал:

Can't start server : Bind on unix socket: Permission denied

Также может быть полезно отметить, что в OSX нет my.cnfфайла по умолчанию и он не нужен по умолчанию, о чем я не знал. Удачи!



0

У меня была аналогичная проблема. Но следующие команды меня спасли.

cd /usr/local/Cellar
sudo chown _mysql mysql

0

Это проблема с правами доступа к файлу. Проверьте права доступа к диску и исправьте.

Osx => Cmd + Space => Disk Utilty => Проверить права доступа к диску.

Проверка завершена после восстановления разрешений на диск. Команда запуска mysql.server выполнена успешно.


Это сработало для меня. Пожалуйста, попробуйте это, прежде чем делать что-либо еще.
kamlesh

0

Ни один из ответов не помог мне. Однако я просто сделалsudo mysql.server start и это отлично сработало.

Кроме того, для меня это НЕ отображало проблему с разрешениями в файле * .err.


0

У меня была эта проблема в Linux, но причина связана с любой установкой mysql. В моем случае сервер падал до завершения запуска и обновления файла pid. Сообщения об ошибках были замечены при запуске mysqld напрямую, а не через "запуск службы mysql".

В моем случае причина заключалась в том, что раздел, на котором находились файлы журнала, был переполнен. Удаление файлов журнала позволило запустить mysql снова. Чтобы проверить эту проблему, перейдите к местоположению ваших журналов активности mysql и выполните df ..


0

Если вы обновили установку mysql до 8.x, проверьте, поддерживается ли ваша предыдущая версия для обновления. .

В противном случае mysql работать не будет! Удалите mysql вместе со всеми файлами конфигурации в /usr/local/var/mysql(удалите всю папку). Переустановите mysql.

ПРИМЕЧАНИЕ: переустановка может привести к потере данных.


0

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

mysql.server start ---- ошибка Сервер завершает работу без обновления файла PID

Я установил mysql@5.7 на свой macbook mojave с помощью homebrew

brew установить mysql@5.7

Журнал ошибок mysql расположен в /usr/local/var/mysql/IU.lan.err, в нем есть одна строка: Невозможно открыть и заблокировать таблицы привилегий: Таблица mysql.user не существует

попробовав много сообщений в поисковой системе goole, я обратился к baidu https://blog.csdn.net/xhool/article/details/52398042, вдохновившись этим сообщением, я нашел решение:

rm / usr / локальный / var / mysql / *

mysqld --initialize

случайный пароль для пользователя root будет показан в bash. но команда mysql -uroot -p [theRandomPassword] не может работать. поэтому мне нужно сбросить пароль. создать файл инициализации с таким содержимым

УСТАНОВИТЬ ПАРОЛЬ ДЛЯ 'root' @ 'localhost' = ПАРОЛЬ ('MyNewPass');

поместите его в любой каталог, который легко найти, например Desktop

mysqld --init-file = [YourInitFile] &

много журналов напечатано на вашем экране.

mysql -uroot -pMyNewPass

наслаждайтесь своей версией mysql!


0

Произошло со мной, потому что я фактически переходил с MariaDB на Mysql. Переход на MariaDB решил эту проблему.

Я предполагаю, что существующая база данных несовместима.


Это тоже было моей проблемой, я переходил с MariaDB на MySQL. Но возврат к MariaDB не был приемлемым решением. Я удалил новый mysql, brew uninstall mysql@8.0затем удалил старую папку mysql, созданную MariaDB sudo rm -rf /usr/local/var/mysql(очевидно, это удалит ваши базы данных). Тогда brew install mysql@8.0и mysql.server startэто работает.
antriver

0

Решено с помощью sudo chown -R _mysql:_mysql /usr/local/var/mysql Спасибо Маттео Алессани


0

Эта ошибка может отображаться, потому что mysql уже запущен. Попробуйте узнать текущий статус:

mysql.server status

Я всегда решал эту проблему, удаляя файлы журнала, но psна самом деле показывал процессы mysql. Убил все заново запустил mysql.server restartи все заработало!
ЕСТЬ
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.