Я установил 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
Я получил:
ERROR 2003 (HY000): невозможно подключиться к серверу MySQL на «127.0.0.1» (61)
У меня такая же настройка на Mavericks, которая отлично работает. Я обновил Yosemite на другом компьютере и испытываю эти проблемы. Я попытался перекрестно проверить все настройки между машинами. Все это похоже на матч. Почему localhost, 127.0.0.1, не будет подключаться, даже если сервер работает?
Per @Marc B и neverpanic, я изменил my.cnf (/opt/local/etc/mysql55/my.cnf). Я удалил include, чтобы вытащить данные из исходного файла конфигурации наверху и прокомментировал skip-networking:
[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, и он сработал.
Версия MacPorts MySQL отключает сетевое взаимодействие, используя настройки skip-networking
по умолчанию, чтобы разрешить бок о бок установку нескольких версий MySQL (что возможно при использовании сокетов, но невозможных с TCP-портами).
Откорректируйте файл конфигурации MySQL, чтобы включить сетевое взаимодействие. См. Также вывод port notes mysql55
.