用户使用 JDBC 连接时 MySQL 访问被拒绝

用户使用 JDBC 连接时 MySQL 访问被拒绝

我刚刚在 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 并尝试使用您创建的用户登录,看看会发生什么。

相关内容