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

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

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

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

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

    ps -ef | grep mysql

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

    kill -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 ?

Настройте базы данных для запуска 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:

Для запуска, например, для пользователя «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 после ненадлежащего отключения.

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

  1. Теперь 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.

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

  1. Перейдите в родительский каталог проблемы cd YOURPATH/usr/local/mysql
  2. rm -rf *.local.err (удаляет файл)
  3. touch YOURUSERNAME.local.pid (генерирует новый файл * .local.pid, на который была отправлена ​​ошибка)
  4. 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), к которому не удается выполнить запись, поэтому при попытке перезапустить его как гнездо он не удастся.

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

Что говорит журнал ошибок? Я получил эту ошибку, и она оказалась старой недопустимой настройкой в ​​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

  • brew установить mysql на mac os
  • Как получить первый день каждого месяца в mysql?
  • Как подсчитать все строки при использовании SELECT с LIMIT в запросе MySQL?
  • Как получить текущую версию базы данных MySQL?
  • Какие шаги я должен предпринять, чтобы полностью удалить MySQL?
  • Длины MySQL VARCHAR и UTF-8
  • Как преобразовать временную метку в datetime в MySQL?
  • Реализация иерархической структуры данных в базе данных
  • Хранимые процедуры MySQL используют их или не используют
  • MySQL - запрос UPDATE на основе запроса SELECT
  • рекурсивный сам запрос
  • Давайте будем гением компьютера.