Проблема, когда я запускаю свой сервер на localhost (ruby на рельсах) - PullRequest
1 голос
/ 02 декабря 2010

Когда я набираю rails server в моем CMD, сервер работает, и я могу перейти к localhost: 3000. Но после того, как я получил это сообщение в CMD и то же сообщение в браузере на localhost: 3000 в разделе ошибок.

Started GET "/rails/info/properties" for 127.0.0.1 at 2010-12-02 21:14:55 +0200

Mysql2::Error (Access denied for user 'root'@'localhost' (using password: NO)):

Rendered C:/Ruby192/lib/ruby/gems/1.9.1/gems/actionpack-3.0.3/lib/action_dispatc
h/middleware/templates/rescues/_trace.erb (1.0ms)
Rendered C:/Ruby192/lib/ruby/gems/1.9.1/gems/actionpack-3.0.3/lib/action_dispatc
h/middleware/templates/rescues/_request_and_response.erb (30.0ms)
Rendered C:/Ruby192/lib/ruby/gems/1.9.1/gems/actionpack-3.0.3/lib/action_dispatc
h/middleware/templates/rescues/diagnostics.erb within rescues/layout (97.0ms)

В чем проблема?

вот это файл database.yml:

# MySQL. Версии 4.1 и 5.0 являются рекомендуемые. # # Установите драйвер MySQL: # gem install mysql2 # # И обязательно используйте хеширование пароля в новом стиле: # http://dev.mysql.com/doc/refman/5.0/en/old-client.html развитие: адаптер: mysql2 кодировка: utf8 переподключение: ложь база данных: simple_cms_development бассейн: 5 имя пользователя: root пароль: хост: localhost

# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run

"грабли". # Не устанавливайте эту базу данных так же, как разработка или производство. тестовое задание: адаптер: mysql2 кодировка: utf8 переподключение: ложь база данных: simple_cms_test бассейн: 5 имя пользователя: root пароль: хост: localhost

production:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: simple_cms_production
  pool: 5
  username: root
  password:passwordex
  host: localhost

Ответы [ 2 ]

3 голосов
/ 20 января 2012

Я знаю, что вы уже нашли решение своей проблемы, но я все равно опубликую это как ответ для тех, кто может наткнуться на эту же проблему.

Имея ту же самую проблему Access denied for user 'user'@'localhost' (using password: NO), оказывается, что мой database.yml файл был отформатирован. Причина? YAML не допускает определенных символов: я использовал '!' в моем пароле и по любой причине парсер YAML, читающий этот файл database.yml, игнорировал мою строку пароля, как будто ее там не было, поэтому (using password: NO), хотя я явно объявил это.

Решение? Изменил мой пароль, чтобы не включать какие-либо специальные символы YAML. Я полагаю, что есть способ избежать этого. Раздражает тем не менее.

1 голос
/ 02 декабря 2010

Вы используете root для своего пользователя mysql, но не вводите пароль root в config / database.yml.

Между прочим, хотя это обычно нормально в разработке, использование пользователя root mysql в производстве или для постановки - очень плохая идея ™.

вот типичный раздел конфигурации mysql:

production:
  adapter: mysql
  database: app_production
  username: root
  password: password
  pool: 5
  timeout: 5000
  encoding: utf8
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...