Я установил mysql55-сервер, используя macports.
Я могу успешно запустить сервер через:
$ sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql55-server.plist
И подтвердите, что я правильно запускаю mysql:
$ which mysql
/opt/local/lib/mysql55/bin/mysql
Если я бегу $mysql
Я могу подключиться успешно. Если я тогда бегу:
mysql> show databases;
Он показывает две базы данных.
Используя Sequel Pro, я могу подключиться через сокет:
u: root
p: root
Socket: /opt/local/var/run/mysql55/mysqld.sock
Соединяет и загружает базы данных просто отлично.
Проблема заключается в подключении через 127.0.0.1 или localhost.
Если я пытаюсь подключиться через Sequel Pro, используя стандартное соединение, я получаю:
Unable to connect to host 127.0.0.1, or the request timed out.
Be sure that the address is correct and that you have the necessary privileges, or try increasing the connection timeout (currently 10 seconds).
MySQL said: Can't connect to MySQL server on '127.0.0.1' (61)
Таким образом, кажется, что сервер MySQL не идентифицирован как 127.0.0.1. В моем файле hosts у меня есть локальный хост, указанный как 127.0.0.1
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
fe80::1%lo0 localhost
Также, если я пытаюсь запустить:
$ mysql -h 127.0.0.1 -u root
Я получил:
ОШИБКА 2003 (HY000): не удается подключиться к серверу MySQL на 127.0.0.1 (61)
У меня такая же настройка на Маверикс, которая отлично работает. Я обновился до Yosemite на другом компьютере и испытываю эти проблемы. Я попытался проверить все настройки между машинами. Кажется, все совпадает. Почему localhost, 127.0.0.1, не будет подключаться, даже если сервер работает?
В соответствии с @Marc B и Neverpanic я изменил my.cnf (/opt/local/etc/mysql55/my.cnf). Я удалил команду include для извлечения данных из исходного конфигурационного файла вверху и закомментировал пропуск сети:
[client]
port = 3306
socket = /opt/local/var/run/mysql55/mysqld.sock
default-character-set = utf8
[mysqld_safe]
socket = /opt/local/var/run/mysql55/mysqld.sock
nice = 0
default-character-set = utf8
[mysqld]
socket = /opt/local/var/run/mysql55/mysqld.sock
port = 3306
bind-address = 127.0.0.1
skip-external-locking
#skip-networking
character-set-server = utf8
[mysqldump]
default-character-set = utf8
Перезапустил mysql и все заработало.
Версии MySQL для MacPorts отключают работу сети с помощью skip-networking
установка по умолчанию, чтобы позволить параллельную установку нескольких версий MySQL (что возможно при использовании сокетов, но невозможно с портами TCP).
Настройте свой файл конфигурации MySQL, чтобы включить сеть. Смотрите также вывод port notes mysql55
,
Других решений пока нет …