我正在尝试连接到MySQL数据库并在我的Java代码中使用sql语句获取一些数据。但是我无法使用以下SQL异常连接到数据库。
错误:java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
我的Java代码如下:
Mysql_connecter.java
package mysql_connecter;
import java.sql.*;
/**
*
* @author kass
*/
public class Mysql_connecter
{
/**
* @param args the command line arguments
*/
public static void main(String[] args)
{
try
{
Class.forName("com.mysql.jdbc.Driver");
System.out.println("connecting.....");
try (Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb","user","password"))
{
System.out.println("connected to mysql DB");
Statement stmt=con.createStatement();
ResultSet rs=stmt.executeQuery("select * from my_table");
while(rs.next())
{
System.out.println(rs.getInt(1)+" "+rs.getString(2)+" "+rs.getString(3));
}
}
catch(SQLException e)
{
System.out.println("ERROR: ["+e+"]");
}
}
catch(ClassNotFoundException e)
{
System.out.println(e);
}
}
}
我已将mysql jdbc驱动程序添加到我的库路径中。有人可以指出我的代码中缺少什么吗?
答案 0 :(得分:0)
似乎您没有为用户设置密码。
转到mysql
数据库并检查user
表以确认用户的用户名和密码。
答案 1 :(得分:0)
使用“用户名+密码”组合但未在数据库端启用本机身份验证可能是一个问题。
您是否可以使用以下命令更改用户密码:
ALTER USER 'jeffrey'@'localhost'
IDENTIFIED WITH mysql_native_password
BY 'password';
https://dev.mysql.com/doc/refman/8.0/en/alter-user.html
有关本地身份验证如何工作的更多信息,请参见
MySQL 8.0 Reference for Native Pluggable Authentication
或者如果您使用的是MySQL 5.7,请参见MySQL 5.7 Reference for Native Pluggable Authentication