MySQL 5.7.6でroot用パスワードが変わらなくて困った話

  • 21
    いいね
  • 4
    コメント

困るまでの経緯

せっかくのゴールデンウィークだし、自分のノートPCの環境をすっきりさせたかったので、Windows10をクリーンインストールした。

割としょっちゅうクリーンインストールとか環境構築はやっていたので、最初のうちはサクサク元の環境に戻っていった。

しかし、MySQLをインストールしているときに事件は起こった。

あれっ。mysql -u rootでログインできない?

ログインを試みると、 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) が出る。要するに パスワードが違います のエラーだ…

パスワードなんて設定したはずないのに…

なぜパスワードが設定されているのかはわからないが、とにかくrootユーザでログインしたい。

調べてみると セーフモードで起動し、ログインしてからrootのパスワードを書き換える ことができるらしい。

下記の マコトのおもちゃ箱 様に載っている通り行うことでセーフモードでの起動・パスワードなしでのログインはできた。

しかし、ここからが問題だった

本題

マコトのおもちゃ箱 様では update user set password =password("パスワード") where user='root'; と実行することになっているが、これでは ERROR 1054 (42S22): Unknown column 'password' in 'field list' という、 passwordカラムが存在しません というエラーが吐かれる。

調べてみたところ、 下記の 日々の覚書 様にヒントが書かれていた。
これは、MySQLのアップデート(おそらく5.7.6以降?)で password カラムの内容が authentication_string 移動したためで、そっちを変更しなければいけなかったようだ。

ということで
update user set authentication_string=password("パスワード") where user='root';
に置き換えて実行したことで、無事にMySQLに対してrootユーザーでログインすることができた。

一件落着。

参考サイト