![用户使用 JDBC 连接时 MySQL 访问被拒绝](https://linux22.com/image/1594373/%E7%94%A8%E6%88%B7%E4%BD%BF%E7%94%A8%20JDBC%20%E8%BF%9E%E6%8E%A5%E6%97%B6%20MySQL%20%E8%AE%BF%E9%97%AE%E8%A2%AB%E6%8B%92%E7%BB%9D.png)
我刚刚在 Ubuntu 16.04 和 MySQL 5.7 上进行了全新安装。我能够通过在 Tomcat 中运行的应用程序在命令行上进行连接,但同一用户的访问权限被拒绝。以下是我创建用户的方式:
create user 'myuser'@'localhost' identified by 'mypassword';
grant all on myschema.* to 'invenio'@'myuser';
我可以从命令行登录并访问所有内容:
mysql -u myuser -p
但是,我的应用程序因相同的用户/密码而被拒绝访问
show grants;
| GRANT USAGE ON *.* TO 'myuser'@'localhost' |
| GRANT ALL PRIVILEGES ON `myschema`.* TO 'myuser'@'localhost' |
用户权限看起来很奇怪:
SELECT * FROM information_schema.USER_PRIVILEGES;
`myuser'@'localhost' | def | USAGE | NO
这是来自 Tomcat 的错误:
Access denied for user 'myuser'@'localhost' (using password: YES)
java.sql.SQLException: Access denied for user 'myuser'@'localhost'
(using password: YES)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1078)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4237)
如果有任何线索能帮助我找到我遗漏的内容,我将不胜感激。
答案1
好的..是我的错(好吧,是某人的错)属性文件中的密码不是它应该的那样..
答案2
看起来问题可能出在 DB 连接上,而不是 mysql 用户上,我会确保您的应用程序能够与 MySQL 正确通信。我还会尝试安装 phpmyadmin 并尝试使用您创建的用户登录,看看会发生什么。