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は 別のユーザとして認識されます。
コマンドプロンプトのコマンド・エイリアス
普段ping打つとかipconfig見るとかくらいにしか使ってないコマンドプロンプトを多用しなければいけないとき、「ls」や「pwd」でつっかかるのが結構ストレスになります。
doskey ls = dir
こんな感じでUNIXでいうaliasを指定できますが、そのプロンプトが終了すると設定が無効になってしまうので、以下の解説ページを参考にレジストリ設定を行いました。
http://www.ne.jp/asahi/hishidama/home/tech/windows/cmd/cmd.html
ちょっとだけ自分用にカスタマイズ。このbatファイルだと「pwd」でディレクトリ移動とかできてしまうんですが、個人的につい無意識に「pwd」を打つ癖があるので、無理やりな感じで入れてます。
- cmd_init.batの中身
@echo off doskey cat=type $* doskey history=doskey /history doskey ls=dir $* doskey pwd=cd $* doskey rm=del $*
- コマンドプロンプトで実行
reg add "HKEY_CURRENT_USER\Software\Microsoft\Command Processor" /v AutoRun /d c:\bin\cmd_init.bat