Ошибка запуска MySQL на Snow Leopard - PullRequest
11 голосов
/ 27 июня 2010

ОРИГИНАЛЬНАЯ ПОЧТА

Я только что стёр и переустановил Snow Leopard. Я установил MySQL 5.1.48 64-битной чистой. У меня проблемы с сервером MySQL ... при загрузке компьютера и входе в систему сервер не работает. Я попытался запустить его, используя панель настроек, нажав «Запустить MySQL Server», но все, что он сделал, это выделил синюю кнопку и подумал около минуты, а затем кнопка вернулась в нормальное состояние, и ничего не произошло.

Затем я попытался запустить его из терминала:

Hristo$ sudo /usr/local/mysql/support-files/mysql.server start
Starting MySQL
.....................................................................
ERROR! Manager of pid-file quit without updating file.

поэтому я проверил статус:

Hristo$ sudo /usr/local/mysql/support-files/mysql.server status
Password:
/usr/local/mysql/support-files/mysql.server: line 418: pidof: command not found
 ERROR! MySQL is not running

Я пробовал это:

Hristo$ /usr/local/mysql/bin/mysql -u root -p
Enter password: 
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

Так что я не уверен, что делать. Когда я впервые установил, сервер работал, но я перешел на панель настроек, чтобы попытаться остановить его ... и случилось то же самое ... Я нажал кнопку "Остановить MysQL Server", он подумал, потом ничего. Итак, я перезагрузил компьютер, и теперь у меня возникают вышеуказанные проблемы, и, очевидно, файл mysql.sock больше не находится в / tmp /. Это было там, когда я установил, и это не там после того, как я перезагрузил компьютер.

Есть идеи?

UPDATE

Это мой /etc/my.cnf файл.

[client]
socket = /var/mysql/mysql.sock

[mysqld]
socket = /var/mysql/mysql.sock

ОБНОВЛЕНИЕ 2

При настройке Apache, PHP и MySQL я следовал этим инструкциям: http://superfancy.net/coding/php-mysql-apache-in-mac-osx-leopard/ Прямо сейчас, если я удаляю файл конфигурации MySQL, кажется, что все работает нормально. Но когда my.cnf существует в /etc/, вещи не работают. Версия MySQL:

Hristo$ mysql --version
/usr/local/mysql/bin/mysql  Ver 14.14 Distrib 5.1.46, for apple-darwin9.8.0 (i386) using readline 5.1

ОБНОВЛЕНИЕ 3

mysql.err:

100706 11:38:36 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data
100706 11:38:36 [Warning] '--log' is deprecated and will be removed in a future release. Please use ''--general_log'/'--general_log_file'' instead.
100706 11:38:36 [Warning] '--log_slow_queries' is deprecated and will be removed in a future release. Please use ''--slow_query_log'/'--slow_query_log_file'' instead.
100706 11:38:36 [Warning] Setting lower_case_table_names=2 because file system for /usr/local/mysql/data/ is case insensitive
100706 11:38:36 [Note] Plugin 'FEDERATED' is disabled.
100706 11:38:36  InnoDB: Started; log sequence number 0 69987
100706 11:38:36 [ERROR] Can't start server : Bind on unix socket: Permission denied
100706 11:38:36 [ERROR] Do you already have another mysqld server running on socket: /var/mysql/mysql.sock ?
100706 11:38:36 [ERROR] Aborting

100706 11:38:36  InnoDB: Starting shutdown...
100706 11:38:41  InnoDB: Shutdown completed; log sequence number 0 69987
100706 11:38:41 [Note] /usr/local/mysql/bin/mysqld: Shutdown complete

mysql.log:

/usr/local/mysql/bin/mysqld, Version: 5.1.46-log (MySQL Community Server (GPL)). started with:
Tcp port: 0  Unix socket: /var/mysql/mysql.sock
Time                 Id Command    Argument

Ответы [ 10 ]

16 голосов
/ 08 июля 2010

Установите менеджер пакетов homebrew методом быстрой установки http://github.com/mxcl/homebrew

Затем с терминала

brew install mysql

и следуйте краткому списку инструкций, которые следуют за установкой

чтобы снова увидеть инструкции

brew info mysql

5 голосов
/ 07 июля 2010

Я думаю, что где-то в вашем файле my.cnf есть ошибка.

Попробуйте взять один из стандартных файлов my.cnf или добавить опции для пользователя, pid-файла, порта, basedir, datadir, tmpdir в разделе [mysqld] (вот цитата основных настроек mysqld на машине linux для ОС Х может это поможет)

[mysqld]
#
# * Basic Settings
#

user        = mysql
pid-file    = /var/run/mysqld/mysqld.pid
socket      = /var/run/mysqld/mysqld.sock
port        = 3306
basedir     = /usr
datadir     = /var/lib/mysql
tmpdir      = /tmp
skip-external-locking

#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address        = 127.0.0.1
4 голосов
/ 01 декабря 2011

На всякий случай, если кто-то еще столкнется с этим бешеным вопросом .....

Homebrew установка mysql, снежный барс (последнее обновление)

убедитесь, что ваш /usr/local/var/mysql и все его подкаталоги принадлежат текущему пользователю!

sudo chown -R <user> /usr/local/var/mysql

, если вы хотите запустить mysql, используя /etc/my.cnf, и вы указываете что-то вроде

default-character-set=utf8

ваш сервер никогда не запустится. Я считаю, что MySql 5.5.x имеет этот набор по умолчанию. Прокомментируйте эту строку в файле my.cnf и Запуск mysql.server должен помочь.

3 голосов
/ 11 мая 2011

Я предполагаю, что некоторые из этих других решений будут подходить для некоторых других людей, но у меня были все те же самые симптомы (включая проблему line 418: pidof: command not found), но моя основная причина была немного другой.

У меня был рабочий /etc/my.cnf файл, который внезапно перестал работать, поэтому я был уверен, что проблема не в моем конфиге.Оказалось, что подкаталог под /usr/local/var/mysql/ принадлежал _mysql: staff, когда он должен был принадлежать мне.После запуска chown -R 'whoami' /usr/local/var/mysql/ с миром все было в порядке.

3 голосов
/ 27 июня 2010

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

В Linux команда будет выглядеть так:

sudo touch /tmp/mysqld.sock

Затем установите правильного владельца: sudo chown mysql:mysql /tmp/mysqld.sock

Я предполагаю, что командная строка на Mac будет такой же.

2 голосов
/ 12 сентября 2011

Прежде всего, вам нужно разблокировать этот процесс pid.остановите mysql на srvice mysql stop После этого введите эту команду ps-ef| grep mysql Она покажет два pid sql.убить обоих на kill -9 pid 1 pid2, затем запустить sql на service mysql start.

1 голос
/ 02 июля 2010

Похоже, есть сообщение об ошибке:

line 418: pidof: command not found

У вас установлен pidof? На его странице написано:

pidof - это просто (символическая) ссылка на программу killall5, которая также должна находиться в / sbin

Возможно, символическая ссылка не существует или killall5 не установлен на вашем Mac OS?

0 голосов
/ 20 апреля 2011

Если вы установили просмотр homebrew, попробуйте

unset TMPDIR
mysql_install_db
0 голосов
/ 07 июля 2010

Попробуйте установить его как часть MAMP . Это установит сервер MySQL в другом месте (Applications / MAMP / mysql вместе с Apache и т. Д. Затем вы можете просто использовать виджет для его запуска. Вы также можете отслеживать активность с помощью монитора активности (Applications / utilities).

Удаление: /Applications/MAMP/tmp/mysql/mysql.pid

и перезапуск помогает часто.

НТН

0 голосов
/ 05 июля 2010

http://dev.mysql.com/doc/refman/5.5/en/mysql-server.html

Цитата Дэвида Тонхофера:

And also add
-----------
echo "Manager PID file is $pid_file, Server PID file is $server_pid_file"
-----------
directly before the line 'case "$mode" in'
for some great debugging justice.

Я изначально предполагал, что mysqld не имеет прав на обновление / удаление своего pid-файлаи, вероятно, существует оставшийся pid-файл, который необходимо удалить вручную.Но «великая отладочная справедливость» звучит слишком хорошо, чтобы ее пропустить.:)

...