Ошибка запуска сервера 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
- MySQL: невозможно создать таблицу (errno: 150)
- MySQL ENUM type vs join tables
- Как предоставить разрешения удаленного доступа для сервера mysql для пользователя?
- Ошибка выполнения: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
- INSERT INTO ... SELECT для всех столбцов MySQL
- Сравнение полнотекстовой поисковой системы - Lucene, Sphinx, Postgresql, MySQL?
- MySql Last Insert ID, Коннектор .net
- Удаление строк с помощью MySQL LEFT JOIN
- com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Ошибка связи связи. Программное обеспечение вызвало прерывание соединения: recv failed
- Объединение таблиц с двух разных серверов
- Использование MySql с Entity Framework 4 и Code-First Development CTP
- Как сохранить символ Emoji в моей базе данных SQL
- MySQL> Таблица не существует. Но он (или должен)
попробуйте найти файл журнала с суффиксом «.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 /
Вы следовали инструкциям из brew install mysql
?
Настройте базы данных для запуска AS YOUR USER ACCOUNT с помощью:
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:
- http://dev.mysql.com/doc/refman/5.5/en/mysql-install-db.html
- http://dev.mysql.com/doc/refman/5.5/en/default-privileges.html
Для запуска, например, для пользователя «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
вместо моего собственного имени пользователя. Возможно, исправление файла ошибки также может быть исправлено.
После перезагрузки у меня была такая же проблема. Вот как я его исправил:
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]
отдельным ПИД из списка выше, например 5970
.
Сделайте это для всех строк, которые вы видите с помощью первой команды.
Затем вы можете снова запустить свой сервер MySQL:
mysql.server start
Мой файл ошибок также сообщил мне, что порт может использоваться другим процессом, но просто запуск sudo mysql.server start
исправлять проблему для меня.
Эта ошибка может возникнуть при попытке запустить 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
без проблем:mysql.server start
Недавно я столкнулся с этим вопросом, однако он работал раньше, а затем остановился.
Это произошло потому, что я сначала начал mysql.server
как root вместо себя.
Исправлено удаление файла журнала _mysql
(который принадлежал _mysql
). Снова это заставило его пройти.
Решение, которое сработало для меня, было здесь: 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/*
Я использую,
- новый MacBook Pro OSX 10.7.3.x
- gcc через установщик OSX GCC
Я установил 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 не дает ему достаточного контекста для его запуска.
Для меня решение заключалось в том, чтобы переопределить / исправить каталог данных в файле / 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
Работал для меня. Надеюсь, это поможет вам.
Для меня исправление было простым:
top
показало, что mysqld уже запущен
sudo killall mysqld
затем разрешено начать процесс
У меня возникла эта проблема, пытаясь сделать обновление на 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
Если ни один ответ не помог вам, просто удалите папку /usr/local/var/mysql
а затем установите mysql снова, brew reinstall mysql
.
Запустить Mysql в безопасном режиме
/usr/local/mysql/bin/mysqld_safe start
ИЛИ
на MAC Завершите любую задачу mysql
или mysqld
(или другую) в приложении Activity Monitor.
или проверить ошибку
tail -f /usr/local/mysql/data/XXXXX-XXXXX-Pro.local.err
Кажется, что процесс MySQL работает, поэтому вы не можете использовать порт. Вы можете проверить запущенный процесс MySQL, используя следующую команду:
ps auxf | grep mysql
Если вы получите какой-либо процесс MySQL, уничтожьте этот идентификатор процесса, используя kill -9 PID, а затем попытайтесь запустить MySQL.
В моем случае ошибка возникает из-за проблемы доступа к файлу журнала ошибок.
Следующие две команды помогают мне решить проблему.
sudo chown /usr/local/var/mysql/.err sudo chmod 666 /usr/local/var/mysql/ .err
Надеюсь, эта работа для вас.
После проверки журнала ошибок я нашел следующее:
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.
Если бы у меня была такая же проблема, для меня это делало удаление пива при предыдущей установке mysqld. Кажется, что пиво не останавливает обслуживание перед деинсталляцией.
После проверки файла .err я увидел зарегистрированную ошибку, с которой может работать другая копия mysql, после завершения старой службы. Затем я смог перезапустить новую установку mysql.
Попробуй это..
- Перейдите в родительский каталог проблемы
cd YOURPATH/usr/local/mysql
-
rm -rf *.local.err
(удаляет файл) -
touch YOURUSERNAME.local.pid
(генерирует новый файл * .local.pid, на который была отправлена ошибка) - cd обратно в ваш проект и перезапустить mysql, используя
mysql.server start
С помощью нескольких ответов, размещенных здесь, я смог найти проблему
Сначала я запускаю
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/
folder … Поэтому я создал оба
cd /var/log
mkdir mysql
touch mysql-bin.index
После создания нового файла, чем вам нужно изменить разрешение
chown -R _mysql /var/log/mysql
Когда все эти шаги были предприняты, моя firebase database немедленно начала работать …
Надеюсь, это может помочь другим здесь … Ключ должен прочитать ошибку и войти и найти что-то не так …
Попробуйте удалить ib_logfile0
и ib_logfile1
а затем снова запустите mysql
rm /usr/local/var/mysql/ib_logfile0 rm /usr/local/var/mysql/ib_logfile1
Меня устраивает.
У меня такая же проблема. перемещение моего файла /etc/my.cnf сработало для меня. Я получил информацию здесь
Просто….
Исправить ошибку 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/
Проблема заключается в разрешении, она не может быть запущена, потому что она не может писать в mac.err, потому что она принадлежит кому-то другому.
Убедитесь, что папка / usr / local / var / mysql принадлежит пользователю, который запустит mysql. Если я запускаю mysql как jack, все это хорошо. Однако, если вы запустите его как root, он создаст файл mac.err (принадлежащий root), к которому не удается выполнить запись, поэтому при попытке перезапустить его как гнездо он не удастся.
- Убедитесь, что папка и файлы принадлежат пользователю с запуском mysql.server
- Убедитесь, что еще нет mac.err или mac.pid, принадлежащих кому-то другому.
- Начало – это правильный пользователь.
Что говорит журнал ошибок? Я получил эту ошибку, и она оказалась старой недопустимой настройкой в my.cnf, указанной в журнале ошибок mysql. Если не плохая настройка конфигурации, журнал ошибок должен по крайней мере указывать на вас в правильном направлении.
Ну, я полагаю, что ОП зафиксировал это в этот момент … но, надеюсь, это указывает на то, что другие видят эту ошибку в правильном направлении.
Проверьте, осталось ли место на вашем диске. У меня эта проблема, когда в моем диске не осталось места.
В моем случае, когда я пытался запустить MySQL, я получил ту же ошибку: The server quit without updating PID file
. Это то, что я сделал, чтобы исправить это (используя Terminal):
goto /usr/local/var/mysql sudo rm -rf hostname.err # Delete .err file cd /usr/local/mysql/support-files sudo mysql.server start # Success!
Удалите файлы * .err, которые вы найдете в каталоге, отображаемом в ошибке, и создайте файл mysql, который жалуется, перезапустите mysql.
Переместите файл журнала с именем «ib_logfile» в «/ var / lib / mysql» и перезапустите mysql. Иногда mysql терпит неудачу, потому что ему трудно выполнить обновление файла журнала
mv /var/lib/mysql/ib_logfile* /some/tmp/folder/
Вы также можете удалить ib_logfile, поскольку он будет создан автоматически после перезапуска mysql
перезагрузите сервер mysql