Ошибка запуска сервера 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)
- Завершить работу с запуском mysql:
kill -15 4249
Kill -15 отправляет siganl в процесс, чтобы освободить все ресурсы, которые он блокирует, и прекратить процесс после.
- Теперь 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).
- Откройте этот файл (/var/lib/mysql/111318.vps-11.com.err) и запишите нижние строки. В моем случае есть
[ERROR] Неустранимая ошибка: не удается открыть и заблокировать таблицы привилегий: Таблица "./mysql/db" отмечена как разбитая и должна быть исправлена
- Как решить эту проблему: Восстановление и исправление индексов таблицы по команде:
[~] # myisamchk -r/var/lib/mysql/mysql/db.MYI
https://forums.cpanel.net/threads/mysql-is-not-running.407142/
- (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 работает.