Подтвердить что ты не робот

MySql Ошибка 1045 после того, как я сделал грабли DB: создать

Я создал новый проект Rails, использовал скаффолд, а затем попытался:

rake db:create 

Я не изменил config/database.yml, поэтому пароль был пустым (я всегда ввожу пароль, который я использую для входа в localhost/phpmyadmin, но на этот раз я его забыл).

development:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: test_associations_development
  pool: 5
  username: root
  password: 
  socket: /tmp/mysql.sock

Итак, обратно в терминал я получил следующее сообщение:

$ rake db:create
Access denied for user 'root'@'localhost' (using password: NO). 
Please provide the root password for your mysql installation

>******* (здесь я ввел свой пароль)

$ rake db:create rake aborted!
(<unknown>): couldn't parse YAML at line 31 column 2

Tasks: TOP => db:create => db:load_config
(See full trace by running task with --trace)

После этого я не могу войти в phpmyadmin, и когда я запускаю свои приложения локально, я получаю эту ошибку:

Mysql2::Error

Access denied for user 'root'@'localhost' (using password: YES)

Я использую OS X 10.7.2, Rails 3.2, Ruby 1.9.3.

Есть идеи?

4b9b3361

Ответ 1

Вы можете попробовать и получить доступ к MySQL с помощью Terminal.app. В командной строке выполните:

mysql -u root

если вы ожидаете, что пароль root будет пустым, но посмотрите следующее:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

Вы знаете, что пароль был изменен.

Похоже, что пароль root был изменен. Если вы не знаете, что это такое, следуйте этим инструкциям на reset пароль: Сброс пароля MySQL.

Ответ 2

Этот ответ связан с инфраструктурой Ruby on Rails, где это поведение произошло

  • имеют mysql с правами пользователя root и паролем
  • Новый проект рельсов использование с mysql "rails new projectname
      -d mysql"
  • не изменять config/database.yml - учетные данные по умолчанию для сервера - это имя: root, пароль пуст.
  • rake db: создать подсказку - просить пароль root, а затем, когда вы предоставляете пароль root

ответ находится в команде GRANT в строке 68 в здесь

в основном он выполнил команду GRANT с учетными данными, совпадающими с вашей текущей базой данных .yml

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