コトの顛末
パスワードが間違っている地獄に陥り、探っている中でOSの罠のような事案が発生。
パスワード設定の仕方のプロセスに罠があり、ハマってました。
こんな注意文言が出ました。
まずはじめに、mysqlのパスワードを設定した時に
$ sudo /usr/libexec/mysql56/mysqladmin -u root password 'xxxx'
Warning: Using a password on the command line interface can be insecure.
Google翻訳するとこんな感じの返答がきました。
警告:コマンドラインインターフェイスでパスワードを使用することは安全ではありません。
私はこれを「直打ちするとミスるからやめようね」って意味だと思って、
メモ帳でパスワードをシングルクォーテーション内に入れたコマンドをあらかじめ作ってペーストするコトで安全なんだって思ってました。
本来の意味は「直に書いていることがセキュアじゃない!!というWarningで、パスワードの部分をconfファイルに書き出すといいよ」とのメタファーらしいです。
参考記事:スクリプトでmysqlコマンドを実行すると「Warning: Using a password on the command line interface can be insecure」
後ほどパスワード変更しようと思った
いろんなサービスログインによく使う私パスワードみたいなものがあると思うのですが、
それをパスワードに設定してしまい、
「これってチーム学習の時とか使い回しされるのかな?怖いな。」と思い、途中で変更を行いました。
そう、メモ帳にまずパスワード入りのコマンドをこさえて、それをペーストしたのです。
そして、その後急にpasswordが通らなくなりました。
こんなエラーが出たんです。
[ec2-user@ip-XXX-XX-XX-XXX ~]$ mysql -u root -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
おかしいな?aとe間違ったかな?-(ハイフン)入れたかな?など候補を打ち込んでみても、
突っ返されるだけ。どうして?
こんなことに何時間も時間を割いてしまいました。
インスタンス作成から3回やり直しました。
原因はアレ
お気付きのかたもいるかと思いますが、原因はmacのメモ帳(風評被害)。
パスワードを設定するコマンドですが下記のコマンドですよね。
$ sudo /usr/libexec/mysql56/mysqladmin -u root password 'xxxx'
password 'xxxx'ここの部分なんですが、メモ帳でこさえると、
sudo /usr/libexec/mysql56/mysqladmin -u root password ‘xxxx’
password ‘xxxx’こんな感じで、シングルクォーテーションがアポストロフィーに変換されてしまっているんです。
ログを見返していて、
password ‘xxxx’
ん?これはなんですのん?
って思い、ログインパスワード入力を「‘xxxx’」で入力したら無事にログイン
遠くを見つめたくなるバグがよく起こるので、意外と視力は落ちてないんですよ。
遠くを見るって大切なことなんだと思います。(遠い目)
結局こうなった。
パスワード変更のコマンドを打ってアポストロフィで括られた「‘xxxx’」を入力しようとするとエラー。
なんだかペーストがうまく行ってないよう。
入力されている状態も表示されないので困りました。
なので4度目のインスタンス生成をしましたとさ。
第4(死)ラウンド...成嶋...うっ頭が!
終わりに
タイトルにもあるように「mysqlにログインできない時最後に見る記事」として、
エラーの理由ヒエラルキーの中でも底辺だと思ってます。
こんなのばっかりなのでもう恥ずかしさは痙攣麻痺です。
めげずにお互い頑張りましょう!!!
参考記事
EC2でMYSQLに問題があるようでサーバーが起動しない
https://qiita.com/tanakayo/items/785b93e5c3c075aec7b6