🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Q&A

解決済

1回答

584閲覧

VALIDATE PASSWORDプラグインの設定(New passwordの設定)を中止しコマンドが打てる状態に戻したい

asm_t

総合スコア14

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

0グッド

0クリップ

投稿2021/03/19 06:35

プログラミング初心者です。
どなたかご存知でしたら教えていただきたいです。
データベースを作るためにrails db:createを実行すると、以下のようなエラーメッセージが返ってきました。

Access denied for user 'root'@'localhost' (using password: NO) Couldn't create 'my_portfolio_development' database. Please check your configuration. rails aborted! ActiveRecord::ConnectionNotEstablished: Access denied for user 'root'@'localhost' (using password: NO) /Users/●●●●/project/my-portfolio/bin/rails:5:in `<top (required)>' /Users/●●●●/project/my-portfolio/bin/spring:10:in `block in <top (required)>' /Users/●●●●/project/my-portfolio/bin/spring:7:in `tap' /Users/●●●●/project/my-portfolio/bin/spring:7:in `<top (required)>' Caused by: Mysql2::Error::ConnectionError: Access denied for user 'root'@'localhost' (using password: NO) /Users/●●●●/project/my-portfolio/bin/rails:5:in `<top (required)>' /Users/●●●●/project/my-portfolio/bin/spring:10:in `block in <top (required)>' /Users/●●●●/project/my-portfolio/bin/spring:7:in `tap' /Users/●●●●/project/my-portfolio/bin/spring:7:in `<top (required)>' Tasks: TOP => db:create (See full trace by running task with —trace)

調べたところ上記エラーは、
「MySQLに設定しているパスワードと自分のアプリケーションのdatabase.ymlで設定したパスワードが不一致の場合に起きる」ということがわかりました。

解決するには以下が必要という記事を見つけたため、まずは①から試そうと思いました。

① MySQLにパスワードを設定しているかを確認する。
② database.ymlでパスワードを設定しているか確認する。
③ MySQLのパスワードとdatabase.ymlのパスワードが一致するように、どっちか、あるいは両方を修正する。

そこで、下記コマンドを実行しました。

$ mysql_secure_installation

すると、以下のようなメッセージが返ってきました。

Securing the MySQL server deployment. Enter password for user root:●●●(←ここで、現在のパスワードを入力しました) VALIDATE PASSWORD PLUGIN can be used to test passwords and improve security. It checks the strength of password and allows the users to set only those passwords which are secure enough. Would you like to setup VALIDATE PASSWORD plugin? Press y|Y for Yes, any other key for No: y(←ここで、yを入力しました) There are three levels of password validation policy: LOW Length >= 8 MEDIUM Length >= 8, numeric, mixed case, and special characters STRONG Length >= 8, numeric, mixed case, special characters and dictionary file Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG

上記のとおり、LOWとMEDIUMとSTRONGから選べるということで、パスワードは強力なほうがいいと思い、「2(STRONG)」を選択しました。
しかし、このあと新しいパスワードに変更しようとしても上手くいきませんでした。以下の通り、「パスワードの文字列をもっと複雑にしてください」的な内容が返ってくるばかりでした。

Estimated strength of the password: 50 Change the password for root ? ((Press y|Y for Yes, any other key for No) : y New password:●●●● Re-enter new password:●●●● Estimated strength of the password: 50 Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y ... Failed! Error: Your password does not satisfy the current policy requirements

そこで、いっそのことパスワードのチェックを無効化してしまおうと考えました。
あるコマンドを実行するだけで完了するようだったので、実行したいのですが、
そもそもDo you wish to continue with the password provided?(Press y|Y for Yes, any other key for No)に対して「y」以外を入力しているにもかかわらず、ループにハマってしまって抜け出せません。

※y以外を入力しても、New passwordを求められてしまう↓

New password: Re-enter new password: Estimated strength of the password: 0 Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : n New password: Re-enter new password: Estimated strength of the password: 0 Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : n New password:

どうすればこのループから抜け出し、コマンドが打てる状態に戻せるのでしょうか。
どなたか、ご教示いただけますと幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

どうすればこのループから抜け出し、コマンドが打てる状態に戻せるのでしょうか。

いったんChange the password for root ?にYESと答えてしまうと、十分に強いパスワードが入力されるまで許してくれないみたいですね。

強制終了したいときは、YES/NOを聞かれたタイミングでCtrl+Cを押してみてください。タイミングが大事です。パスワードを聞かれたタイミングでは、Ctrl+Cも効かないかもしれません(私の環境では効かなかったです)。

あと、mysql_secure_installationの一番最初に現在のパスワードを入力したとき、エラーにならなかったということは、rootのパスワードは設定済みということなので、①はパスしてると思いますよ。

db:createしたときにusing password: NOと出てるので、railsは、「パスワード無しモード」で接続しようとしてるようです。なので、②が怪しいです。database.yml以外にも.envとか環境変数をケアする必要があると思うのですが、私も勉強不足で詳しくは分かりません。

投稿2021/03/20 09:40

gpsoft

総合スコア1323

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

asm_t

2021/03/22 15:19

gpsoftさん ご丁寧に回答をしてくださり、ありがとうございます。 返信が遅くなり申し訳ございません。 その後、私のほうでも試行錯誤しまして、どうしても駄目だったので 別タブでターミナルを開き直し、そこで一度mysqlをアンインストール&再インストールしたところ、解決いたしました。 その際、(セキュリティ上は良くないとは思いますが...)rootパスワードを設定しないでインストールしました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問