我设置了一个servlet来与MySql建立连接。我有两个数据库(testDb和jumpGate)和两个相应的用户(testUser @ localhost和jumpGate @ localhost)。当我使用testUser和testDb运行我的测试时,它运行正常,但是当我使用实时用户和数据库运行时,我得到了#34;用户访问被拒绝' jumpGate' @' localhost& #39; (使用密码:是)"。我发现测试版和实时版之间没有任何有意义的区别。我已经测试过密码是否正确并给出了相应的授权。
这些是Servlet用于建立连接的属性文件:
#Test database properties
dbName=testDb
dbUser=testUser
dbPassword=password
#Live database properties
dbName=jumpGate
dbUser=jumpGate
dbPassword=**********
我可以有效地排除Java代码的任何问题,因为仅仅为另一个文件交换一个文件是成功和失败之间的区别。
以下是我的验证,即数据库存在且用户拥有对各自数据库的正确授权。
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| admin |
| cdcol |
| jumpgate |
| mysql |
| performance_schema |
| phpmyadmin |
| testdb |
| webauth |
+--------------------+
9 rows in set (0.00 sec)
mysql> show grants for 'testUser'@'localhost';
+-----------------------------------------------------------------------------------------------+
| Grants for testUser@localhost |
+-----------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'testUser'@'localhost' IDENTIFIED BY PASSWORD '*****************************************' |
| GRANT ALL PRIVILEGES ON `testdb`.* TO 'testUser'@'localhost' |
| GRANT INSERT ON `admin`.`connections` TO 'testUser'@'localhost' |
+-----------------------------------------------------------------------------------------------------------------+
3 rows in set (0.00 sec)
mysql> show grants for 'jumpGate'@'localhost';
+-----------------------------------------------------------------------------------------------------------------+
| Grants for jumpGate@localhost |
+-----------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'jumpGate'@'localhost' IDENTIFIED BY PASSWORD '*****************************************' |
| GRANT ALL PRIVILEGES ON `jumpgate`.* TO 'jumpGate'@'localhost' |
| GRANT INSERT ON `admin`.`connections` TO 'jumpGate'@'localhost' |
+-----------------------------------------------------------------------------------------------------------------+
3 rows in set (0.00 sec)
如果有人能够深入了解实时版本的行为方式有何不同,我们将不胜感激。
注意:此问题最初发布于here,但截至目前,我还没有收到回复。