Після встановлення MySQL за допомогою Brew я отримую помилку - сервер вийшов без оновлення файлу PID


88

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

Я працюю на 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 це моє ім'я користувача на моїй машині.

Відповіді:


80

EDIT 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 :( Я також використовую домашню мову.
Натан Башо,

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
JamesHalsall

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

Це ЄДИНЕ рішення, яке я знайшов. Це має бути номер один
Ден,

Дякую, це єдине, що мені вдалося. Хоча бігти мені не довелосяmysqld --initialize --explicit_defaults_for_timestamp
глибоко

1
Запуск MySQL ... ПОМИЛКА! Сервер завершив роботу без оновлення файлу PID (<шлях> -.lightspeed.irvnca.sbcglobal.net.pid). Отримання цієї помилки
Уннікрішнан

1
Просто домашнє видання
Макгреді,

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

Зітхайте. Випробувавши кожне рішення в Інтернеті протягом 2 годин, це, нарешті, це виправило! Старий добрий перезапуск! :)
SexyBeast

18

Листопад 2014 р .: Якщо ви отримуєте цю помилку на MySQL 5.6.x у Mac OS X Mavericks або Yosemite і хочете використовувати MySQL з PHP локально (/tmp/mysql.sock - це місце, де PHP PDO очікує знайти файл sock), ось що мені це виправили:

1) Прокоментуйте рядки конфігураційного файлу домашньої писемності за замовчуванням та відредагуйте, як показано нижче

$ 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 - це те, що у вас є у вашому System Prefs -> Network як унікальний ідентифікатор вашого комп'ютера в мережі.

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, можливо, вам доведеться зробити це, щоб вимкнути його, перш ніж спробувати помічник bash mysql.server. Втримайтеся від бажання вбити -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)
Рата

Це означає Read Write Execute або повні права для всіх користувачів на цю папку та (-R) усі файли та папки в цій папці. Для детального пояснення, будь ласка, перегляньте таке посилання: linux.com/learn/understanding-linux-file-permissions
Kresimir Plese


3

Якщо я добре пам’ятаю, це проблема з дозволами. Спробуйте "торкнутися" та "chmod" файлу pid або папки, у якій зберігається файл.


Ні. Я навіть спробував chmod 777, щоб перевірити, чи це вирішує проблему, але нічого. Та сама ПОМИЛКА.
Браджешвар,

Ви намагалися 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. Причина: 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

вбити -9 PID

де PID - значення другого стовпця 2. перевірити право власності на mysql

ls -laF / usr / local / var / mysql /

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

sudo chown -R mysql / usr / local / 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 with mysql.startуспішно працював після цього. Зверніть увагу, що видалення цих файлів, ймовірно, призведе до втрати даних.



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 + пробіл => Утиліта диска => Перевірка дозволів на диск.

Перевірка завершена після відновлення дозволів диска. Команда запуску mysql.server працює успішно.


Це спрацювало для мене. Будь ласка, спробуйте це, перш ніж робити щось інше.
камлеш

0

Жодна з відповідей у ​​мене не спрацювала. Однак я просто зробив, sudo mysql.server startі це добре працювало.

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


0

У мене була проблема в Linux, але причина стосується будь-якої інсталяції mysql. У моєму випадку сервер аварійно завершував роботу до завершення запуску та оновлення файлу pid. Повідомлення про помилки були помічені під час запуску mysqld безпосередньо, а не за допомогою "служби mysql start".

У моєму випадку причиною був розділ, де знаходились файли журналів, заповнений. Видалення файлів журналів дозволило mysql почати знову. Щоб перевірити цю проблему, перейдіть до розташування ваших журналів активності mysql і виконайте df ..


0

Якщо ви оновили інсталяцію mysql до 8.x, перевірте, чи підтримується ваша попередня версія для оновлення .

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

ПРИМІТКА: перевстановлення може призвести до втрати даних.


0

усі наведені вище рішення для мене не працюють. але вони дають мені деякі підказки, щоб виправити цю помилку.

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

Я встановив mysql@5.7 на моєму macbook mojave with homebrew

заваріть встановіть 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 / local / var / mysql / *

mysqld - ініціалізувати

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

ВСТАНОВИТИ ПАРОЛЬ для 'root' @ 'localhost' = ПАРОЛЬ ('MyNewPass');

помістіть його в будь-який каталог, який легко знайти, наприклад, на робочий стіл

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.