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

mysqlにパスワードがない新しい環境をセットアップし、このエラーが発生する方法を説明します。どこを変更しますか

'root'@'localhost' (using password: YES)

私のdatabase.ymlは下に表示されます私のデータベースはsample_appです

# SQLite version 3.x
#   gem install sqlite3
#
#   Ensure the SQLite 3 gem is defined in your Gemfile
#   gem 'sqlite3'
development:
  adapter: mysql2
  database: db/development.mysql2
  pool: 5
  timeout: 5000
  database: sample_app
  username: root
  socket: /tmp/mysql.sock

# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:
  adapter: mysql2
  database: db/test.mysql2
  pool: 5
  timeout: 5000
  database: sample_app
  username: root
  socket: /tmp/mysql.sock

 production:
  adapter: mysql2
  database: db/production.mysql2
  pool: 5
  timeout: 5000
  database: sample_app
  username: root
  socket: /var/run/mysqld/mysqld.sock
4

2 に答える 2

1

ルートを使用してアプリでデータベースに接続しないでください。特定のapp\taskに使用されていることを認識する名前で新しいユーザー/パスワードを作成し、rootの代わりにそれを使用します。

空のパスワードの場合はこれを追加しますpassword:

production:
  adapter: mysql2
  database: db/production.mysql2
  pool: 5
  timeout: 5000
  database: sample_app
  username: root
  password:
  socket: /var/run/mysqld/mysqld.sock

それでもアクセスが拒否される場合は、dbはuser\passwordが無効であると言っています

于 2012-05-14T18:10:26.813 に答える
1

これなら、

 $ mysql -u root 

mysqlに移動すると、これが機能します。

production:
  adapter: mysql2
  database: db/production.mysql2
  pool: 5
  timeout: 5000
  database: sample_app
  username: root
  password:
  socket: /var/run/mysqld/mysqld.sock

root ユーザーにパスワードを設定している場合は、試してください。

$ mysql -u root -p
<<It will prompt for a password, key it in>>

それがmysqlに移動する場合、これは機能します。

production:
  adapter: mysql2
  database: db/production.mysql2
  pool: 5
  timeout: 5000
  database: sample_app
  username: root
  password: <<password>>
  socket: /var/run/mysqld/mysqld.sock

この話の教訓:

まず、コマンド ラインから mysql コマンドを使用して mysql にログインし、動作するかどうかを確認します。次に、database.yml でそれらの資格情報を使用し、rails アプリケーションから mysql にログインします。

于 2012-05-14T19:02:25.133 に答える