java - JDBC 连接错误 mysql 访问被拒绝,用户 <user>@<host>

标签 java mysql jdbc

我已经检查了其他 Stack Overflow 和网络链接:

MySQL 位于 Linux 服务器上

Linux uslx600 2.6.32-358.14.1.el6.x86_64 #1 SMP Mon

说它的IP是1.2.3.4

我可以使用 MySQL Workbench 从笔记本电脑连接到它。由于堆栈溢出政策,我无法附加图像,但对话框如下:

Connection Method: tcp/ip  
Hostname: <host of the server, so e.g. 1.2.3.4>  
Port: 3306 <This is same port as mentioned below for JDBC connection>  
username: bugs  
Default Schema: bugs  

在那个 mysql 中我运行了 [select user(), current_user()] ,我明白

  • 用户() = bugs@<my laptop IP>
  • 当前用户() = bugs@%

现在我尝试从 MySQL 数据库所在的 Linux 服务器进行连接。

以下作品,用户本身就是用户,即没有“@%”或其他内容:

conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/bugs", user, pasword);

以下也有效:

conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/bugs", user, pasword);

但如果我给出盒子的 IP 地址或主机名,它就不起作用。我真正努力的方向是从另一台 Linux 服务器访问它,这可能由于同样的问题而无法工作。

失败时的错误信息是:

Access Denied for user 'bugs'@'<hostname of the server>' (using password=YES)

如果服务器上存在一些访问问题,MySQL Workbench 不应该也有同样的问题吗?
current_user()bug@%那么这是否意味着用户设置正确?

我也尝试将用户更改为“user”@'%'等,但在所有这些情况下错误消息始终是:

'bugs'@'%'@'<hostname>'

最佳答案

确保您已向所有主机授予所有权限。

检查您的 my.cnf 文件,并注释掉 bind-address(如果它仅指向 127.0.0.1)。

MySQL root access from all hosts

关于java - JDBC 连接错误 mysql 访问被拒绝,用户 <user>@<host>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26262017/

相关文章:

java - 循环静态 Set-java

java - 我可以在不重新启动 JVM 的情况下在 JavaFX 8 中重新加载样式表吗?

php - 为 MySql 行提供几个唯一的 ID,并使用 php 显示具有一个特殊 ID 的所有行

java - 复制Postgres jdbc的正确使用方法

java为oracle VARCHAR2返回空字符串值

java - MySQL数据库和JDBC

java - 格式化数字打印输出异常

java - 如何在 Spring 中将 AutopopulatedList<ChildClass> 引用到 List<AbstractBaseClass> ?

php - 如果 Col=1,提前 1 周获取单一日期?

php - 消息: Undefined variable and Invalid argument supplied for foreach() in Codeigniter