私はRailsにやや不慣れであり、私の経験の多くは問題を解決する方法を感じることを伴うので、明らかな解決策を見逃した場合は事前に謝罪します。 Windowsマシンを実行しています。
Mysql2を使用してログインと登録を作成しています。 MySQLインストーラーは、サーバー、ワークベンチなどのインストールに既に使用されています(rootパスワードをパスワードとして構成しました)。また、mysql2 gemを既にインストールしています。
Railsは正常にバンドルされましたが、_rake db:create
_と入力すると、エラーAccess denied for user 'root'@'localhost' (using password: NO)
が発生しました。
次にRailsからパスワードの入力を求められ、パスワードを入力しましたが、エラーが再び発生しました。パスワードを2回入力した後、_Rails db:migrate
_を実行しようとするまでは正常に機能しているように見えましたが、エラーが再び表示され、移行できなくなりました。
これは、MySQLクエリで、入力したパスワードと同じパスワードを設定しているため、混乱します。 「root」ユーザーにすべてのスキーマ特権を与えようとしましたが、違いはありませんでした。この問題を解決する方法を教えてください、ありがとう。
私の質問について質問がある場合は、お問い合わせください。
助けてくれた
$ mysql -u root -p
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('mypassword')
およびdatabase.ymlで
development:
adapter: mysql2
database: mydb
Host: localhost
username: root
password: "mypassword" #I had an empty string here before
@ spongezh22に感謝
ユーザーがmysql DBに接続できないようです。コンソールでこのコマンドを試してください
mysql -u root -p
プロンプトが表示されたら、パスワードを「admin」として入力します
これが可能であれば、あなたは行ってもいいはずです
そして、データベースのymlファイルは次のようにする必要があります
development:
adapter: mysql2
database: mydb
Host: localhost
username: root
password: mypass
上記(下記)をコピーして、Rails ymlファイルに貼り付けました。
development:
adapter: mysql2
database: mydb
Host: localhost
username: root
password: mypass
私の問題は、「!」で始まるパスワードが原因でした。 mysqlとdatabase.ymlでパスワードを変更すると解決しました。
Rakeは実際にtest
データベースも作成しようとします。そのため、(database.yml)のようなtest
データベース資格情報を正しく設定しないとエラーメッセージが表示されます。
default: &default
adapter: mysql2
encoding: utf8
database: atheneum
pool: 5
username: ******
password: "******"
Host: localhost
development:
<<: *default
database: atheneum
test:
<<: *default
database: atheneum_test
エラーは、ユーザーrootのアクセスが拒否されたと言っていました。 (パスワードがありませんでした)。私の問題は、デフォルトの3306ポートを8111に変更したためです。database.ymliveでport: 8111
を追加しました。
Railsの答えではなく、ここに表示される他の人のために:
何らかの方法で、おそらくENVファイルをスタンドアロンスクリプトに渡す場合は、パスワードの末尾に「\ n」などの非表示文字がないことを確認してください。それは本当にあなたを台無しにします。
上記のBharatのアドバイスに基づいて、mysqlのユーザーとしてLinuxユーザーを作成しました。ユーザーがデータベースymlのrootから変更された$ userからユーザーrake db:create workingに接続できることを確認します
ランニング ./bin/spring stop
私のために修正。 Githubで見つけましたが、どこにあるか思い出せません。
これは、database.ymlファイルに変更を加えた後にRailsサーバーを再起動する必要があった数少ない機会の1つでした。ファイルにパスワードを設定した後、= Rails server。その後、エラーはなくなりました。