MySQL не запускается при обновлении OSX до Yosemite или El Capitan

Я знаю, что подобные вопросы существуют, например MySQL с MAMP не работает с OSX Yosemite 10.10. Тем не менее, у меня есть MAMP, а XAMPP установлен на моем компьютере.

Когда я пытаюсь запустить mySQL из PrefPane, ничего не происходит.

Когда я пытаюсь запустить mqSQL из командной строки через sudo /usr/local/mysql/support-files/mysql.server start, я получаю:

Starting MySQL . ERROR! The server quit without updating PID file (/usr/local/mysql/data/adamg.local.pid).

Любая помощь будет оценена по достоинству. Я могу предоставить любой необходимый файл.

Ответ 1

Решена, установив последнюю версию mySQL, следуя инструкциям здесь http://coolestguidesontheplanet.com/get-apache-mysql-php-phpmyadmin-working-osx-10-10-yosemite/

ИЗМЕНИТЬ
По мере того, как Йосемити становится более популярным, на этот вопрос натыкается больше людей. Ответ выше связан с обновлением MySQL, так что он работает. Ответ, связанный с @doc в комментариях, связан с тем, что MySQL запускается автоматически. Это две отдельные проблемы.

Ответ 2

Откройте терминал:

  • Проверьте панель предустановок системы MySQL, если она что-то говорит по строке "Предупреждение,/usr/local/mysql/data не принадлежит" mysql "или" _mysql "

  • Если да, перейдите в папку mysql cd/usr/local/mysql

  • выполните sudo chown -R_mysql данные /

  • Это изменит право собственности на /usr/local/mysql/data и весь его контент, чтобы он владел пользователем _mysql

  • Проверьте панель Pref для панели управления MySQL, она должна сказать, что она работает сейчас, автоматически-магически. Если не начать снова.

  • Еще один способ подтвердить - сделать

    netstat -na | grep 3306

Он должен сказать:

tcp46      0      0  *.3306                 *.*                    LISTEN

Чтобы просмотреть владельца процесса и идентификатор процесса mysqld:

ps aux | grep mysql

Ответ 3

Короче говоря вам нужно создать файл запуска. Итак, из терминала:

sudo vi /Library/LaunchDaemons/com.mysql.mysql.plist

(Если вы не знакомы с vi, затем нажмите i, чтобы начать вставлять текст)

Это должно быть содержимое вашего файла:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>KeepAlive</key>
    <true />
    <key>Label</key>
    <string>com.mysql.mysqld</string>
    <key>ProgramArguments</key>
    <array>
      <string>/usr/local/mysql/bin/mysqld_safe</string>
      <string>--user=mysql</string>
    </array>
  </dict>
</plist>

нажмите esc, затем : w q ! enter

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

sudo chown root:wheel /Library/LaunchDaemons/com.mysql.mysql.plist 
sudo chmod 644 /Library/LaunchDaemons/com.mysql.mysql.plist 
sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist

И это все.

Ответ 4

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

sudo chown -R _mysql:_mysql /usr/local/var/mysql
sudo mysql.server start

Я надеюсь, что это поможет кому-то еще...

Примечание: В соответствии с мнением Мерта:

Для el capitan это sudo chown -R_mysql: _mysql/usr/local/var/mysql

Ответ 5

Выполните следующие команды из командной строки...

sudo launchctl load -F /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist

sudo launchctl unload -F /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist

а затем запустите сервер mysql, используя

sudo /usr/local/mysql/support-files/mysql.server start

Ответ 6

.pdf - это processid исполняемого экземпляра сервера mysql. Он появляется в папке с данными при запуске mysql и удаляется, когда mysql завершает работу.

Если операционная система OSX обновлена, а mysql не будет нормально завершена до, то mysql завершает работу, когда она запускается, она просто завершает работу из-за файла .pid.

Есть несколько трюков, которые вы можете попробовать, http://coolestguidesontheplanet.com/mysql-error-server-quit-without-updating-pid-file/, в противном случае требуется переустановка.

Ответ 7

Вам просто нужно создать пользователя mysql (mysql installation script создает _mysql)

sudo vipw

повторяющаяся строка, содержащая _mysql

Изменить для дублированной строки _mysql на mysql

sudo /usr/local/mysql/support-files/mysql.server start
Starting MySQL
.. SUCCESS!

Ответ 8

Повторная установка исправлена, потому что установщик создал новый экземпляр MySQL, а символическая ссылка на /usr/local/mysql теперь указывает на каталог данных, у которого нет существующего pid.

Стоит отметить, что mysql prefpane и mysql.server script используют имя хоста для pid, поэтому изменение имени хоста может вызвать проблемы с этим.

Пока prefpane устарел, это хороший графический интерфейс для того, чтобы кто-то запускал/останавливал MySQL, даже если функция автозапуска не работает.

Я применил гибридный подход, в котором я адаптировал свою MySQL install script для использования Launchd для автоматического запуска MySQL, но plist на самом деле вызывает mysql.server script. Таким образом, prefpane все еще может использоваться для запуска/остановки MySQL по требованию, и попытка выполнить простой перезапуск MySQL не будет слишком запутанной.

Вот script, который просто позволяет это поведение Launchd в Yosemite с уже установленным MySQL: https://raw.githubusercontent.com/MacMiniVault/Mac-Scripts/master/mmvMySQL/YosemiteLaunchd.sh

Вот script, который обрабатывает всю автоматическую установку MySQL: https://raw.githubusercontent.com/MacMiniVault/Mac-Scripts/master/mmvMySQL/mmvmysql.sh

Ответ 9

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

sudo /Applications/XAMPP/xamppfiles/bin/mysql.server start

Помните, что он запросит пароль вашего компьютера, а не пароль mysql.

Ответ 10

У меня возникла аналогичная проблема с MySQL на Mac (Mac Os X Не удалось запустить сервер MySQL. Причина: 255, а также "ОШИБКА! Сервер завершает работу без обновления PID файла" ). После длительного процесса проб и ошибок, наконец, чтобы восстановить права доступа к файлам, Ive просто делает это:

* запустите Disk Utilities.app

* выберите мой диск на левой панели

* нажмите кнопку "Восстановить права на диск"

Это помогло мне.

Надеясь, что это может помочь кому-то другому.

Ответ 11

Попробуйте следующее:

sudo mysqld_safe &

Ответ 12

Путь простейший: скопируйте и вставьте это в терминал (но обязательно прочтите сначала):

bash <(curl -Ls http://git.io/eUx7rg)

Это автоматически установит и настроит все. script предоставляется MacMiniVault и доступен на Github. Дополнительная информация о установке mySQL script на http://www.macminivault.com/mysql-yosemite/.

Ответ 13

вы хотите исправить, он может редактировать файл "/Applications/XAMPP/xamppfiles/xampp" с помощью TextEdit.

Найдите текст "$ XAMPP_ROOT/bin/mysql.server start > /dev/null &"
И добавьте "unset DYLD_LIBRARY_PATH" поверх него. Он должен выглядеть так:

отключить DYLD_LIBRARY_PATH
$ XAMPP_ROOT/bin/mysql.server start > /dev/null &

Надежда может помочь вам

Ответ 14

Ничего из этого не было сделано. Но установка новой версии MySQL сделала трюк.

Ответ 15

2 этапа решили мою проблему:

1) Удалить "/Library/LaunchDaemons/com.mysql.mysql.plist"

2) Перезапустите Yosemite

Ответ 16

Обычно я запускаю сервер mysql, набрав

$ mysql.server start

без sudo. Но по ошибке я набираю sudo перед командой. Теперь я должен удалить файл ошибки, чтобы запустить сервер.

$ sudo rm /usr/local/var/mysql/`hostname`.err

Ответ 17

Мой Mac решил перезапустить себя случайным образом; вызывая целый ряд ошибок. Один из них был mysql, который отказывался запускать правильно. Я прошел много вопросов и ответов, а также других сайтов.

В конечном итоге то, что в конечном итоге разрешило мою проблему, было следующим:

1) Создание файла (/usr/local/mysql/data/.local.pid

2) chmod 777 в этом файле

3) выполнение запуска mysql.server(мой был расположенный в /usr/local/bin/mysql.server)

Ответ 18

То же самое случилось со мной! Поэтому я попытался запустить снова после того, как я прекратил работу с приложением mysql, и это сработало!