Разработка Rails - Не удается подключиться к серверу MySQL на "localhost" (10061)
Я новичок-разработчик Rails, использующий MySQL в качестве базы данных. Я могу успешно подключиться к MySQL с помощью команды:
MySQL -u macDaddy -p
в командной строке, поэтому я знаю, что пользователь действителен и MySQL работает. Но когда я пытаюсь запустить
rake db:schema:dump
в командной строке я получаю эту ошибку:
грабли прерваны!
Не удается подключиться к серверу MySQL на "localhost" (10061)
Что-то не так с моей database.yml? Вот он:
development:
adapter: mysql2
encoding: utf8
reconnect: false
database: bookmobile
pool: 5
username: macDaddy
password: booklover
host: localhost
socket: mysql
port: 3306
Я также попытался удалить строки портов и сокетов, но я все равно получаю ту же ошибку. Пожалуйста помоги. Вот мои версии:
разработка на Windows 7
MySQL Ver 14.14 распространение 5.5.21 для win64
Версия сервера 5.5.21
Rails 3.2.1
Спасибо!
Ответы
Ответ 1
Моя лучшая догадка заключается в том, что машина, которую вы указали как Windows, имеет IPv6-сеть. Таким образом, когда вы пытаетесь перейти на localhost, он разрешает ":: 1". Это на самом деле локальная машина, однако, по умолчанию MySQL устанавливается, как правило, имеет адрес привязки, установленный в 127.0.0.1, что приведет к сбою localhost в этой настройке.
Возможно, вы сможете проверить это, запустив ping localhost
из командной строки и посмотрев, получите ли вы ответ вроде:
Reply from ::1: time<1ms
Чтобы исправить это, вы можете изменить свой конфиг, чтобы указать:
host: 127.0.0.1
В качестве альтернативы вы можете изменить конфигурацию MySQL, чтобы разрешить другой адрес привязки, например. localhost вместо 127.0.0.1.
Ответ 2
просто измените хост на хост: 127.0.0.1
Ответ 3
Измените значение хоста в database.yml, чтобы быть "127.0.0.1" . Или вы можете изменить свой файл хостов pc, добавить элемент как "localhost 127.0.0.1".
Ответ 4
У меня была аналогичная ошибка, но это произошло потому, что в файле database.yml отсутствовал порт: 3306. Как только я добавил порт: проблема 3306 была решена.
Ответ 5
Это потому, что у вас нет пароля, установленного на сервере базы данных (mysql), попробуйте следующее:
development:
adapter: mysql2
encoding: utf8
reconnect: false
database: bookmobile
pool: 5
username: macDaddy
password:
host: localhost
socket: mysql
port: 3306
Ответ 6
убедитесь, что номер порта, который вы установили при создании MySQL (например.: 7777), добавьте номер порта с соответствующими "именем пользователя" и "паролем".
default: &default
adapter: mysql2
encoding: utf8
pool: 5
username: root
password: admin
host: localhost
port: 7777
в каталоге database.yml в каталоге конфигурации вашего каталога приложений.
Ответ 7
Убедитесь, что сервер mysql запущен.