[ERROR 1372 (HY000): Password hash should be a 41-digit hexadecimal number]エラー

grant文でパスワード設定する際に、「IDENTIFIED BY PASSWORD」を指定した場合は、ハッシュ化済みパスワードを指定する必要があります。
これを設定したいパスワード「2mpkmUsr」をそのまま指定すると以下のエラーがでます。
mysql> GRANT RELOAD ON *.* TO 'impusr'@'%' IDENTIFIED BY PASSWORD '2mpkmUsr' ;
ERROR 1372 (HY000): Password hash should be a 41-digit hexadecimal number


上記と同様のパスワード設定(パスワードをハッシュ化せず)したいのであれば、下記のように IDENTIFIED BYの後の PASSWORD を省略して実行してください。
 > GRANT RELOAD ON *.* TO 'impusr'@'%' IDENTIFIED BY '2mpkmUsr' ;


または下記のようにしてもハッシュ化せずにパスワードを設定できます。
mysql> set password for 'impusr'@'%'=PASSWORD('2mpkmUsr')


「IDENTIFIED BY PASSWORD」は、バックアップ等でデータにパスワードをそまま表示させない 場合に使われています。

※その他の関連情報 old_passwords オプションを有効(old_passwords=1)にすると MySQL のバージョンが 4.1 以降であっても PASSWORD() 関数は従来の 16 バイトのパスワードハッシュを生成します。


[サンプルで覚えるMYSQL―データベース接続の基本から応用まで]の書籍横断比較とレビュー

サンプルで覚えるMYSQL―データベース接続の基本から応用まで
著者:五十嵐 貴之
出版日:2011-04
出版社:ソシム

[MySQLトラブルシューティング]の書籍横断比較とレビュー

MySQLトラブルシューティング
著者:Sveta Smirnova
出版日:2012-10-13
出版社:オライリージャパン




Google+