【问题标题】:error connecting to mysql using java使用java连接mysql时出错
【发布时间】:2011-10-21 14:51:20
【问题描述】:

我在使用 java 连接 mysql 时遇到了一个奇怪的问题。

我正在用 tomcat 运行 xampp

我尝试从 java 连接到 mysql。在我的机器上它工作正常,但在朋友的机器上我得到一个错误:用户'tomcat'@'localhost'的访问被拒绝

事情是 - 我设法使用 php 连接到完全相同的信息。

连接的java代码是:

    String url = "jdbc:mysql://localhost:3306/";
    String dbName = "mta_db";
    String driver = "com.mysql.jdbc.Driver";
    String userName = "tomcat";
    String password = "tomcat";
    try {
        Class.forName(driver).newInstance();
        _conn = DriverManager.getConnection(url + dbName, userName, password);
    } catch (Exception e) {
        e.printStackTrace();
    }

端口很好

知道可能是什么原因吗?

【问题讨论】:

  • 在 mysql 中 SHOW GRANTS 是什么意思?
  • 权限很好。我可以毫无问题地通过php连接。 SHOW GRANTS 返回 2 行,GRANT ALL PRIVILEGES ON . TO 'root'@'localhost' WITH GRANT OPTION,GRANT PROXY ON "@" TO 'root'@'localhost' WITH GRANT OPTION。我也试过root用户

标签: java mysql tomcat


【解决方案1】:

错误可能出在 MySQL 端,即tomcat 用户没有权限从非localhost 连接。

为简单起见,您可以首先通过 MySQL GRANT 语句创建一个能够从任何地方连接的帐户,如下所示:

GRANT ALL ON mta_db.* to tomcat@'%' identified by 'yourpassword';

在这种情况下,% 是任何主机的通配符。

如果您知道连接客户端的实际 IP,您可以稍后将其破解,以提高安全意识。

【讨论】:

  • 不起作用。顺便说一句,它从 PHP 连接良好,我检查了权限
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-03
  • 1970-01-01
  • 2013-12-28
  • 1970-01-01
  • 1970-01-01
  • 2016-10-21
相关资源
最近更新 更多