首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java.sql.SQLException:拒绝用户‘root’@‘远程主机’的访问(使用密码:是)

java.sql.SQLException:拒绝用户‘root’@‘远程主机’的访问(使用密码:是)
EN

Stack Overflow用户
提问于 2016-04-27 15:00:31
回答 3查看 2.3K关注 0票数 1

我正在尝试编写一个示例jdbc程序,以连接到远程机器中的mysql db

代码语言:javascript
复制
    // JDBC driver name and database URL
    String JDBC_DRIVER = "com.mysql.jdbc.Driver";
    String DB_URL = "jdbc:mysql://<remote machine>/<database>"

    //  Database credentials
    String USER = "root";
    String PASS = "mnlinux";
    Class.forName(JDBC_DRIVER);
    Connection con = DriverManager.getConnection(DB_URL, USER, PASS);
    Statement stmt = con.createStatement();
    String sql = "SELECT x FROM t";
    ResultSet resultSet = stmt.executeQuery(sql);
    while(resultSet.next()){
        //Retrieve by column name
        int id  = resultSet.getInt("x");
        //Display values
        System.out.print("ID: " + id);
    }
    resultSet.close();
    stmt.close();
    con.close();


*Its returning Exception in thread "main" java.sql.SQLException: Access denied for user 'root'@'CurrentMachine' (using password: YES)*

执行DriverManager.getConnection(DB_URL, USER, PASS);

请帮我连接到数据库。我的MySQL启动了&正在运行。dbserver和currentmachine都在同一个网络中(我可以ping)。

提前谢谢。

EN

回答 3

Stack Overflow用户

发布于 2016-04-27 15:04:08

允许从任何ip或以您的IP替换%完全访问数据库,您希望从哪里访问数据库并尝试。

代码语言:javascript
复制
GRANT ALL PRIVILEGES ON *.* TO '<mysql user>'@'%'  WITH GRANT OPTION;
FLUSH PRIVILEGES ;
票数 1
EN

Stack Overflow用户

发布于 2016-04-27 15:05:51

你需要给那个用户许可

代码语言:javascript
复制
GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'%' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;

MySql需要权限用户以及连接远程地址。

票数 1
EN

Stack Overflow用户

发布于 2016-04-27 15:10:35

通常,根MySQL用户无法从远程计算机连接,除非您编辑它。

如果您在当前机器上运行MySQL工作台,请尝试通过网络连接您在java中使用的凭据。如果它在Workbench中不起作用,那么它显然不会在java中工作。

可以使用以下SQL创建新用户:

代码语言:javascript
复制
CREATE USER 'someuser'@'%' IDENTIFIED BY 'somepassword';
GRANT ALL PRIVILEGES ON yourdatabase.* TO 'someuser'@'%' WITH GRANT OPTION;

或者使用Workbench来完成它(在MySQL机器上)。通常不建议以root形式进行连接,但是可以启动和运行。最终,您应该切换到专用用户,并根据您的应用程序实现适当的安全性。

请注意:上面的一些答案建议增加特权.但是,根用户已经拥有这些权限,与root连接失败不是特权问题。这是因为根不能从远程机器连接。所以..。添加一个新用户并授予该用户权限。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36893626

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档