MySQLログインユーザは「ユーザ名@ホスト名」毎に別管理
JDBC経由で他ノード(というかWinPCのEclipseからLinuxサーバへアクセスで)のMySQLに接続するDAOもどきのサンプルを自作したときに、もろもろの設定は正しく設定されているのにも関わらず、以下のようなエラーになってしまうという事象にあたりました。
java.sql.SQLException: Invalid authorization specification: Access denied for us er: 'testuser@192.168.11.11' (Using password: YES)
よく見ると、アクセス拒否されたユーザ名がtestuser@(WinPCのIPアドレス)になっています。
そこで、以下のようにユーザに権限を与えてみたところ、正常にログインができるようになりました。
grant all on test.* to testuser@192.168.11.11 identified by 'testpass';
MySQLでは「(ユーザ名)@(ホスト名)」でひとつのユーザとして認識されているんですね。もし仕事で使った事があればそんなことはないのでしょうけど、MySQLは自宅環境の自ノードAPからのアクセスしかやったことがなかったので、今まで知りませんでした。
#このページのレスがヒントになりました。
http://mtlab.ecn.fpu.ac.jp/WSM_2002/021023212519.html
ちなみにMySQLでは、jsp10@127.0.0.1と、jsp10@localhostは 別のユーザとして認識されます。