困るまでの経緯
せっかくのゴールデンウィークだし、自分のノート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ユーザーでログインすることができた。
一件落着。
参考サイト
-
マコトのおもちゃ箱 ~ぼへぼへ自営業者の技術メモ~
http://piyopiyocs.blog115.fc2.com/blog-entry-649.html -
日々の覚書
http://yoku0825.blogspot.jp/2015/03/mysql-576mysqluser.html