Ошибка запуска сервера MySql "Сервер завершает работу без обновления PID файла"

В Snow Leopard запуск MySQL дает следующую ошибку:

Сервер завершает работу без обновления файла PID

my.cnf

[mysqld]
port            = 3306

socket          = /tmp/mysql.sock

skip-external-locking

key_buffer_size = 16K

pid-file=/var/run/mysqld/mysqld.pid

[mysqld_safe]

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

Ответ 1

попробуйте найти файл журнала с суффиксом ".err", должно быть больше информации. Это может быть в:

/usr/local/var/mysql/your_computer_name.local.err

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

  • проверьте, запущен ли какой-либо экземпляр mysql

    ps -ef | grep mysql

    если да, вы должны остановить его или убить процесс

    kill -9 PID

    где PID - номер, отображаемый рядом с именем пользователя на выходе предыдущей команды

  • проверить принадлежность /usr/local/var/mysql/

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

    если это владелец root, вы должны изменить его mysql или your_user

    sudo chown -R mysql/usr/local/var/mysql/

Ответ 2

Вы следовали инструкциям brew install mysql?

Настройте базы данных для запуска в качестве учетной записи пользователя с:

Для MySQL 5.x:

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

Чтобы настроить базовые таблицы в другой папке или использовать другого пользователя для запуска mysqld, просмотрите справку для mysqld_install_db:

mysql_install_db --help

и просмотрите документацию MySQL:

Для MySQL 8.x:

unset TMPDIR
mysqld --initialize-insecure --log-error-verbosity --user='whoami' --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp

Убедитесь, что каталог данных /usr/local/var/mysql приведенный выше, пуст, сделайте резервную копию, если это необходимо.

Например, для запуска от имени пользователя "mysql" вам может понадобиться sudo:

sudo mysql_install_db ...options...

Запустите mysqld вручную с помощью:

mysql.server start

Примечание: если это не удается, вы, вероятно, забыли выполнить первые два шага выше

Ответ 3

У меня была такая же проблема на моем компьютере Mac (правильно соблюдались все шаги установки, предложенные brew install).

Удаление файла ошибки исправлено для меня:

sudo rm -rf /usr/local/var/mysql/dev.work.err (dev.work - мое имя хоста)

Это сработало, потому что dev.work.err принадлежал _mysql:wheel вместо моего собственного имени пользователя. Возможно, исправление файла ошибки также может быть исправлено.

Ответ 4

После перезагрузки у меня была такая же проблема. Вот как я его исправил:

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

Ответ 5

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

Проверьте все запущенные процессы MySQL:

$ ps aux | grep mysql

USER     PID    %CPU  %MEM 
_mysql   5970   0.0   0.4 ...

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

$ sudo kill -9 [PID]

Заменить [PID] отдельным ПИД из списка выше, например. 5970.

Сделайте это для всех строк, которые вы видите с помощью первой команды.

Затем вы можете снова запустить свой сервер MySQL:

mysql.server start

Ответ 6

Мой файл ошибок также сообщил мне, что порт может использоваться другим процессом, но просто запуск sudo mysql.server start исправил проблему для меня.

Ответ 7

Эта ошибка может возникнуть при попытке запустить msql после ненадлежащего отключения.

  • Взгляните на файл журнала ошибок mysql. Если в нем упоминается что-то вроде "Убедитесь, что у вас еще нет другого процесса mysqld с использованием тех же данных или файлов журналов". Затем вам необходимо правильно завершить этот процесс.

  • Посмотрите, в каком процессе mysql работает, используйте следующую команду: lsof -i:3306

Ваш вывод должен выглядеть следующим образом:

COMMAND  PID    USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
mysqld  4249 username   17u  IPv4 0x7843d9d130469c0b      0t0  TCP localhost:mysql (LISTEN)
  1. Завершить работу с запуском mysql: kill -15 4249

Kill -15 отправляет siganl в процесс, чтобы освободить все ресурсы, которые он блокирует, и прекратить процесс после.

  1. Теперь mysql должен запускаться без проблем: mysql.server start

Ответ 8

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

Это произошло потому, что я сначала начал mysql.server как root вместо себя.

Исправлено удаление файла журнала ошибок (который принадлежал _mysql). Запустив его, он снова прошел.

Ответ 9

Если ни один ответ не помог вам, просто удалите папку /usr/local/var/mysql а затем установите mysql, снова brew reinstall mysql.

Ответ 10

Попробуйте удалить ib_logfile0 и ib_logfile1 а затем снова запустите mysql

rm /usr/local/var/mysql/ib_logfile0
rm /usr/local/var/mysql/ib_logfile1

Меня устраивает.

Ответ 11

Решение, которое сработало для меня, было здесь: https://serverfault.com/questions/334284/cant-create-pid-file-on-mysql-server-permission-denied

Изменение некоторых моих разрешений, похоже, сделало трюк. Я запускаю Midbook 2012 Macbook Air с OS X 10.8.2, а mysql был установлен с доморощенным.

chmod 0755 /var
chown root:wheel /var/tmp
sudo chmod 0771 /usr/local/var/mysql/*

Ответ 12

У меня была эта проблема при попытке обновления brew на MacOS X 10.7.5.

К сожалению, mysql также был обновлен до 5.6.10 из 5.5.14. Пробовал новый, не работал.

Я решил вернуться к своей старой установке и сделал

brew switch mysql 5.5.14

Это не решило проблему. В другом месте я читал и делал это, вуаля! Все вернулось:)

cd /usr/local/var/mysql
mv ib_logfile0 ib_logfile0.bak
mv ib_logfile1 ib_logfile1.bak

Ответ 13

Для меня исправление было простым:

top

показал, что mysqld уже работает

sudo killall mysqld 

затем разрешил запуск процесса

Ответ 14

Я использую

Я установил MySQL с помощью homebrew ('brew install mysql'). Он установил несколько зависимостей, а затем mysql.

Когда я попытался запустить его,

west$ mysql.server start
Starting MySQL
.. ERROR! The server quit without updating PID file (/usr/local/var/mysql/west.local.pid).

Я выполнил эту команду,

west$ /usr/local/Cellar/mysql/5.5.25/scripts/mysql_install_db 

и MySQL работает.

Обратите внимание, что вам нужно запустить mysql_install_db с верхнего уровня в каталоге mysql (IE, usr/local/Cellar/mysql/5.5.25). Запуск его непосредственно в каталоге /scripts не дает ему достаточного контекста для его запуска.

Ответ 15

Для меня решение заключалось в том, чтобы переопределить/исправить каталог данных в файле /etc/my/cnf.

Я построил MySQL 5.5.27 из источника с указаниями, представленными в файле readme:


# Preconfiguration setup
shell> groupadd mysql
shell> useradd -r -g mysql mysql
# Beginning of source-build specific instructions
shell> tar zxvf mysql-VERSION.tar.gz
shell> cd mysql-VERSION
shell> cmake .
shell> make
shell> make install
# End of source-build specific instructions

# Postinstallation setup
shell> cd /usr/local/mysql
shell> chown -R mysql .
shell> chgrp -R mysql .
shell> scripts/mysql_install_db --user=mysql
shell> chown -R root .
shell> chown -R mysql data

# Next command is optional
shell> cp support-files/my-medium.cnf /etc/my.cnf
shell> bin/mysqld_safe --user=mysql &

# Next command is optional
shell> cp support-files/mysql.server /etc/init.d/mysql.server

mysqld_safe оканчивается без объяснения причин. запуск /etc/init.d/mysql.server start привел к ошибке:

"Сервер завершает работу без обновления файла PID"

Я заметил что-то странное в инструкции по установке. Он имеет право собственности на mysql для каталога "данные", но не на "var"; это необычно, потому что годами я должен был гарантировать, что каталог var был доступен для mysql. Поэтому я вручную запустил chown -R mysql /usr/local/mysql/var, а затем попытался запустить его снова. Еще не повезло. Но хуже, нет .err файл в var dir - он был в директории "data"! поэтому scripts/mysql_install_db настраивает лагерь в /usr/local/mysql/var, но остальная часть приложения, похоже, хочет выполнить свою работу в /usr/local/mysql/data!

Итак, я только что отредактировал /etc/my.cnf, а в разделе [mysqld] я добавил директиву для явного указания каталога данных mysql на var (как обычно я ожидаю, что это будет каким-то образом), и после этого mysqld начинается просто отлично. Директива для добавления выглядит так:

datadir =/usr/local/mysql/var

Работал для меня. Надеюсь, это поможет вам.

Ответ 16

Для меня мне пришлось переустановить MySQL

brew reinstall mysql

а затем ниже Чтобы запустить, запустите MySQL сейчас и перезапустите при входе в систему:

brew services start mysql

Ответ 17

Кажется, что процесс MySQL работает, поэтому вы не можете использовать порт. Вы можете проверить текущий процесс MySQL, используя следующую команду:

ps auxf | grep mysql

Если вы получаете какой-либо процесс MySQL, уничтожьте этот идентификатор процесса, используя kill -9 PID, а затем попытайтесь запустить MySQL.

Ответ 18

Запустите Mysql в безопасном режиме

/usr/local/mysql/bin/mysqld_safe start

ИЛИ

в MAC Завершите любую задачу mysql или mysqld (или другую) в приложении Activity Monitor.

или проверьте ошибку

tail -f /usr/local/mysql/data/XXXXX-XXXXX-Pro.local.err

Ответ 19

В моем случае ошибка возникает из-за проблемы доступа к файлу журнала ошибок.

Следующие две команды помогают мне решить проблему.

sudo chown <user> /usr/local/var/mysql/<my-host-name>.err
sudo chmod 666 /usr/local/var/mysql/<my-host-name>.err

Ответ 20

С помощью нескольких ответов, размещенных здесь, я смог найти проблему

Сначала я запускаю

sudo -i

Таким образом, я мог бы получить доступ root.

Чем я удалил файл xxxx.err

rm -rf /usr/local/mysql/data/xxxx.err

после запуска MySQL в SafeMode

/usr/local/mysql/bin/mysqld_safe start

Он попытается запустить и выйдет из-за ошибки... будет создан новый файл xxx.err, и вам нужно будет прочитать его, чтобы увидеть причину ошибки

tail -f /usr/local/mysql/data/mysqld.local.err

В моем случае по какой-то причине в папке /var/log/ отсутствовала какая-то папка и файл... Поэтому я создал оба

cd /var/log

mkdir mysql

touch mysql-bin.index

После создания нового файла, чем вам нужно изменить разрешение

chown -R _mysql /var/log/mysql

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

Надеюсь, что это может помочь другим здесь... Ключ должен прочитать ошибку и журнал и найти, что не так...

Ответ 21

Что говорит журнал ошибок? Я получил эту ошибку, и она оказалась старой недопустимой настройкой в ​​my.cnf, указанной в журнале ошибок mysql. Если не плохая настройка конфигурации, журнал ошибок должен по крайней мере указывать на вас в правильном направлении.

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

Ответ 22

Я надеюсь, что эта работа для вас.

После проверки журнала ошибок я нашел следующее:

120309 17:42:49 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data
120309 17:42:50 [Warning] Setting lower_case_table_names=2 because file system for /usr/local/mysql/data/ is case insensitive
120309 17:42:50 [Warning] You need to use --log-bin to make --binlog-format work.
120309 17:42:50 [Note] Plugin 'FEDERATED' is disabled.
120309 17:42:50 InnoDB: The InnoDB memory heap is disabled
120309 17:42:50 InnoDB: Mutexes and rw_locks use GCC atomic builtins
120309 17:42:50 InnoDB: Compressed tables use zlib 1.2.3
120309 17:42:50 InnoDB: Initializing buffer pool, size = 16.0M
120309 17:42:50 InnoDB: Completed initialization of buffer pool
120309 17:42:50  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 /usr/local/mysql/data/ib_logfile0
InnoDB: File operation call: 'open'.
InnoDB: Cannot continue operation.
120309 17:42:50 mysqld_safe mysqld from pid file /usr/local/mysql/data/lu1s.local.pid ended

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

cd /usr/local
sudo chown mysql mysql
sudo chown mysql mysql-5.5.21-osx10.6-x86_64
sudo chown _mysql mysql
sudo chown _mysql mysql-5.5.21-osx10.6-x86_64

Затем (вы также можете сделать это с командной строкой), я применил разрешения (один раз, когда я дал это право владения _mysql и mysql) всем закрытым папкам из в меню "получить информацию" в папке /usr/local/mysql-5.5.21-osx10.6-x86_64. Вам не нужно это делать для псевдонима, поскольку это только псевдоним.

Имя папки зависит от установленной вами версии mysql.

Ответ 23

Имел ту же самую проблему, для меня она делала удаление brew при предыдущей установке mysqld. Кажется, что brew не останавливает службу перед деинсталляцией.

После проверки файла .err я увидел зарегистрированную ошибку, с которой может работать другая копия mysql, после завершения старой службы. Затем я смог перезапустить новую установку mysql.

Ответ 24

Попробуйте это.

  • Перейдите в родительский каталог проблем cd YOURPATH/usr/local/mysql
  • rm -rf *.local.err (удаляет файл)
  • touch YOURUSERNAME.local.pid (генерирует новый файл *.local.pid, на который была отправлена ​​ошибка)
  • cd обратно в ваш проект и перезапустить mysql с помощью mysql.server start

Ответ 25

У меня была та же проблема. перемещение моего файла /etc/my.cnf сработало для меня. Я получил информацию здесь

Ответ 26

Проверьте, осталось ли место на вашем диске. Я получил эту проблему, когда в моем диске не осталось места.

Ответ 27

Простой....

Исправить ошибку MySQL Socket 2002

Исправить нависшую ошибку сокета 2002 года, которая связывает место, где MySQL помещает сокет и где OSX думает, что он должен быть, MySQL ставит его в /tmp, а OSX ищет его в /var/mysql, сокет - это тип файла, который позволяет общаться с клиентом и сервером mysql.

sudo mkdir/var/mysql

sudo ln -s/tmp/mysql.sock/var/mysql/mysql.sock

Хорошо сделано:)

Это поможет мне МНОГО! я взял это руководство от ребят на http://coolestguidesontheplanet.com/

Ответ 28

Проблема заключается в разрешении, она не может быть запущена, потому что она не может писать в mac.err, потому что она принадлежит кому-то другому.

Убедитесь, что папка /usr/local/var/mysql принадлежит пользователю, который запустит mysql. Если я запускаю mysql как jack, все это хорошо. Однако, если вы запустите его как root, он создаст файл mac.err(принадлежащий root), к которому не сможет выполнить запись, поэтому при попытке перезагрузить его как гнездо он не будет работать.

  • Убедитесь, что папка и файлы принадлежат пользователю с запуском mysql.server
  • Убедитесь, что еще нет mac.err или mac.pid, принадлежащих кому-то другому.
  • Начало - это правильный пользователь.

Ответ 29

В моем случае я получил эту проблему на vps, cPanel.

Я попробовал большинство вышеупомянутых ответов, но не успел.

  • проверьте, где находится ваш журнал ошибок. Это будет указано в конце строки ошибки.

ОШИБКА! Сервер завершает работу без обновления PID файла (/var/lib/mysql/111318.vps-11.com.pid).

  1. Откройте этот файл (/var/lib/mysql/111318.vps-11.com.err) и запишите нижние строки. В моем случае есть

[ERROR] Неустранимая ошибка: не удается открыть и заблокировать таблицы привилегий: Таблица "./mysql/db" отмечена как разбитая и должна быть исправлена ​​

  1. Как решить эту проблему: Восстановление и исправление индексов таблицы по команде:

[~] # myisamchk -r/var/lib/mysql/mysql/db.MYI

https://forums.cpanel.net/threads/mysql-is-not-running.407142/

  1. (Re) Запустите свой mysql

Ответ 30

Я столкнулся с этой проблемой после перезагрузки и удаления всех файлов * err.

Мне показалось, что в моем каталоге /usr/local/etc отсутствует каталог my.cnf.d.

Он создал это

mkdir /usr/local/etc/my.cnf.d

И просто скопируйте в этот каталог my.cnf et my.cnf.default, расположенный в /usr/local/etc.

Затем Mysql смог перезапустить:

cd /usr/local/var/mysql 
mysql.server start

И MYSQL работает.