Запуск ошибки MySQL на Snow Leopard

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

Я только что удалил и снова установил Snow Leopard. Я установил 64-битную версию MySQL 5.1.48. У меня проблемы с сервером 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)

Так что я не уверен, что делать. Когда я впервые установил, сервер работал, но я пошел в панель предпочтений, чтобы попытаться остановить его... и то же самое произошло... Я нажал кнопку "Stop 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

Ответ 1

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

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

[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

Ответ 2

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

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

brew install mysql

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

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

brew info mysql

Ответ 3

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

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 start должен сделать трюк.

Ответ 4

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

В linux команда будет следующей:

sudo touch /tmp/mysqld.sock

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

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

Ответ 5

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

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

Ответ 6

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

Ответ 7

Появляется сообщение об ошибке:

line 418: pidof: command not found

Установлен ли pidof? В его manpage говорится:

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

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

Ответ 8

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 нет разрешения на обновление/удаление своего pidfile, и, вероятно, есть лишний pidfile, который нужно удалить вручную. Но "отличная отладочная справедливость" звучит слишком хорошо, чтобы пропустить.:)

Ответ 9

Попробуйте установить его как часть MAMP. Это установит сервер mysql в другом месте (Приложения/MAMP/mysql вместе с apache и т.д. Затем вы можете просто использовать виджет для его запуска. Также вы можете контролировать активность с помощью монитора активности (Приложения/утилиты). Кроме того:

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

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

НТН

Ответ 10

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

unset TMPDIR
mysql_install_db