x86_64 Linuxサーバーにmysql-5.1.59をコンパイルしてインストールしました。
まず、cli で root パスワードを設定してログインします。
$ bin/mysqladmin -uroot password 'somepass'
$ bin/mysql -uroot -p 'somepass'
mysql>
ログイン成功!
次に、SQL ステートメントを使用してユーザーを作成しました。
mysql> grant all privileges on mydb.* to 'myuser'@'localhost' identified by 'somepass';
mysql> flush privileges;
パスワードは root とまったく同じです。
しかし、私が尋ねた後:
mysql> select host,user,password from mysql.user;
2 つのアカウントのパスワード値が同じではないことに気付きました。そして、myuserでmysqlにログインしようとしましたが失敗しました。
ちなみに、ルートパスワードを次のように変更すると:
mysql> update mysql.user set password=PASSWORD('somepass') where user='root';
mysql> flush privileges;
その後、root で mysql にログインできなくなりました。
$ bin/mysql -uroot -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
これは私の他のサーバーでは決して起こりません。問題はOSに関係しているようです。ハッシュ値はどのように互いに異なるのでしょうか? ありがとう!