かまたま日記3

プログラミングメイン、たまに日常

MySQLでユーザーにDBのアクセス権を付与する

MySQLアプリケーションサーバからMySQLのDBサーバにアクセスするために、以下のコマンドでユーザーを作成しました。

CREATE USER 'test_user'@'1.2.3.4' IDENTIFIED BY 'test_pass';

でもアプリケーションサーバからアクセスしたらアクセスしたら以下のエラーになりました
(言語はJavaアプリケーションサーバTomcatという前提)

org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Access denied for user 'test_uesr'@'1.2.3.4' to database 'test_db')

ユーザーは作ったのに何でかなーと悩んでいたら、単にtest_dbへのアクセス権が無いだけでした。。。orz
アクセス権付きでユーザー作成するためにはGrant文を使う必要があります。
(以下の文はtest_dbのすべてのテーブルにすべての権限を付与する)

GRANT ALL PRIVILEGES ON test_db.* to 'test_user'@'1.2.3.4' IDENTIFIED BY 'test_pass';