【问题标题】:mysql-java-connector connexion deniedmysql-java-connector 连接被拒绝
【发布时间】:2014-10-14 09:33:48
【问题描述】:

我有一个谜要告诉你。

我正在尝试连接到 VM 上的 mysql 服务器(ip:192.168.60.96,在我自己的机器上运行,通过网桥连接到网络)。

完整的系统信息:

主持人:

Fedora 20
Virtualbox 4.3.16
Eclipse 4.3
MySql-connector-java 5.1.33

虚拟机:

Debian 6
MySql 5.1.73

Ping 正常 PhpMyAdmin 运行正常

这是我要开始工作的代码:

/*
 * Cr�� le 24 sept. 2012
 *
 * TODO Pour changer le mod�le de ce fichier g�n�r�, allez � :
 * Fen�tre - Pr�f�rences - Java - Style de code - Mod�les de code
 */
package sec.tests;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class TestSgbd {

    public static void main(String[] args) {
        // TODO Raccord de m�thode auto-g�n�r�
        String url = "jdbc:mysql://192.168.60.96:3306/secolog";
        System.out.println(url);
        try {
            System.out.println("chargement du driver");
            Class.forName("com.mysql.jdbc.Driver");
            System.out.println("r�cup�ration de la connexion");
            Connection con = DriverManager.getConnection(url,"usecolog","password");
            System.out.println("cr�ation d'un statement");
            Statement requete = con.createStatement();
            System.out.println("execution d'une requete");
            ResultSet resultat = requete.executeQuery("select * from CLIENT");
            while (resultat.next()) {
                System.out.println(resultat.getString(1)+"  "+resultat.getString(2));
                };
            System.out.println("fin");
            }
        catch(Exception e) {
            System.out.println("Exception");
            e.printStackTrace();
            }
    }

}

这里是个例外:

jdbc:mysql://192.168.60.96:3306/secolog
chargement du driver
r�cup�ration de la connexion
Exception
java.sql.SQLException: Access denied for user 'usecolog'@'192.168.60.97' (using password: YES)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:996)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3887)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3823)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:870)
    at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:4332)
    at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1258)
    at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2234)
    at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2265)
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2064)
    at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:790)
    at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:44)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:377)
    at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:395)
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:325)
    at java.sql.DriverManager.getConnection(DriverManager.java:571)
    at java.sql.DriverManager.getConnection(DriverManager.java:215)
    at sec.tests.TestSgbd.main(TestSgbd.java:24)

有什么想法吗?

【问题讨论】:

  • 我猜你在你的机器上运行虚拟机?...
  • 您是否仔细检查了您的密码和数据库名称?

标签: java mysql eclipse virtualbox fedora20


【解决方案1】:

不是连接错误的IP,错误信息是在说客户端:

java.sql.SQLException: Access denied for user 'usecolog'@'usecolog' (using password: YES)

这意味着 usercolog 无权从 192.168.60.97 IP 连接到您的数据库。您需要设置 usercolog 的权限才能从您的机器 IP 建立连接。

要设置权限,请使用以下命令:

GRANT ALL PRIVILEGES ON secolog.* TO 'usecolog'@'%192.168.60.97' IDENTIFIED BY 'secologuserpassword';
FLUSH PRIVILEGES;

【讨论】:

  • usecolog有权限从所有ip(来自'%')连接
  • @Dremor 不,它没有权限,您可能在添加后没有刷新权限。
【解决方案2】:

消息说用户usecolog不允许主机192.168.60.97访问数据库。因此,您必须授予数据库中的用户访问数据库表单的权限(或通过主机字段中的% 从任何地方访问。当客户端通过 DHCP 获得动态 IP 地址时,这可能很有用)。

GRANT ALL PRIVILEGES ON secolog.* TO usecolog@'192.168.0.97' IDENTIFIED BY 'yourpassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-14
    • 1970-01-01
    • 2021-03-16
    • 2015-06-21
    • 1970-01-01
    • 2020-01-19
    • 2017-08-08
    相关资源
    最近更新 更多