Ошибка запуска сервера 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

55 ответов

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

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

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

  1. проверьте, работает ли какой-либо экземпляр mysql

    ps -ef | grep mysql

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

    убить -9 PID

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

  2. проверить право собственности на /usr/local/var/mysql/

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

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

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

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

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

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" может потребоваться sudo:

sudo mysql_install_db ...options...

Запустите mysqld вручную:

mysql.server start

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

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

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

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

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

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

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

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

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

$ ps aux | grep mysql

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

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

$ sudo kill -9 [PID]

замещать [PID] с индивидуальным PID из списка выше, например 5970,

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

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

mysql.server start

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

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

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

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

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

  2. Посмотрите, на каком процессе запущен 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 отправляет сиганла процессу, чтобы высвободить все ресурсы, которые он блокирует, и завершает процесс после.

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

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

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

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

top

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

sudo killall mysqld 

затем позволил процессу начать

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

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

Исправление состояло в том, чтобы удалить файл журнала ошибок (который принадлежал _mysql). Начиная это снова получил это прошло.

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

brew reinstall mysql

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

brew services start mysql

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

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

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

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

На Mac с Homebrew:

Перечислите все существующие экземпляры mysql, запустив

$ brew services

Удалите каждый экземпляр, запустив

$ brew uninstall <instance_name>

Удалите каталог Mysql в /usr/local/var/mysql:

$ rm -rf /usr/local/var/mysql

Переустановите mysql с помощью homebrew:

$ brew install mysql
$ brew install mysql@<version> #Optional

Повторно запустить mysql.server start

$ mysql.server start

Я использую,

Я установил 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 не дает ему достаточно контекста для запуска.

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

Сначала я бегу

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

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

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

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

Для меня решение было переопределить / исправить каталог данных в / 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 для каталога "data", но не на "var"; это необычно, потому что в течение многих лет мне приходилось следить за тем, чтобы директория var была доступна для записи в mysql. Так я вручную побежал chown -R mysql /usr/local/mysql/var а затем попытался запустить его снова. Все еще не повезло. Но что еще хуже, нет файла.err в директории var - он был в директории 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

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

Если в вашей системе несколько версий Mysql, вы, вероятно, столкнетесь с этой ошибкой PID

мы можем начать с уничтожения всего процесса MySQL
sudo killall mysqld

Перейдите в / usr / local, выберите, какую версию MySQL вы хотите установить, а затем предоставьте для нее разрешение MySQL. В моем случае мне нужна была версия 8.
sudo chown -R mysql mysql-8.0.21-macos10.15-x86_64

Перейдите в папку /usr/local/mysql-8.0.21-macos10.15-x86_64 и запустите SQL-сервер
sudo ./mysql.server start(Введите пароль вашего портативного компьютера) Если он дает результат ниже... проблема PID решена

@xxxx-M-R0SU support-files $ sudo ./mysql.server start Starting MySQL .. SUCCESS!

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

пс auxf | grep mysql

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

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

/usr/local/mysql/bin/mysqld_safe start

ИЛИ ЖЕ

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

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

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

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

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

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

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

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

Каким-то образом я испортил свои разрешения на El Capitan и решил переустановить MySQL с нуля.

Я использую brew на el capitan, и решил переустановить:

brew uninstall mysql
sudo rm -rf /usr/local/var/mysql
brew install mysql
mysql.server start # ... SUCCESS

Права доступа к файлу при новой установке изменились с _mysql включить мое имя пользователя

› ls -alh /usr/local/var/mysql
drwxr-xr-x   22 lfender  admin   748B Mar 22 09:58 .
# ... etc

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

У меня была та же самая проблема, для меня это было удаление варева, когда выполнялась предыдущая установка mysqld. Кажется, brew не останавливает службу перед удалением.

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

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

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

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

Просто....

Исправьте ошибку 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/

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

После проверки журнала ошибок я нашел это:

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) ко всем вложенным папкам в меню "get info" папки в /usr/local/mysql-5.5.21-osx10,6-x86_64. Вам не нужно указывать это для псевдонима, поскольку это только псевдоним.

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

Другие вопросы по тегам