java.sql.SQLException: Access denied for user 错误解决指南

如果你遇到了 'java.sql.SQLException: Access denied for user 'name'@'localhost' (using password: YES)' 这样的报错信息,说明你的Java程序无法连接到MySQL数据库,原因是访问被拒绝。这通常是由于数据库用户名、密码、权限设置不正确导致的。

以下是解决此问题的步骤:

1. 检查数据库用户名、密码和数据库名

  • 确保你在JDBC连接URL中使用的数据库名、用户名和密码正确无误。* **JDBC代码示例:**javapackage exam;

import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;

public class DatabaseConnector { private static final String URL = 'jdbc:mysql://localhost:3306/exam?serverTimezone=Asia/Shanghai'; private static final String USERNAME = 'new_user'; // 确保用户名正确 private static final String PASSWORD = 'password'; // 确保密码正确

public static Connection getConnection() throws SQLException {        return DriverManager.getConnection(URL, USERNAME, PASSWORD);    }}* 以上代码中,你需要将 `'new_user'` 和 `'password'` 替换为你的实际数据库用户名和密码, `exam`替换为你的数据库名。

2. 检查数据库用户权限

  • 确保你使用的数据库用户拥有访问目标数据库和数据表的权限。* 你可以使用以下SQL语句创建用户并授予权限:sqlCREATE DATABASE exam;USE exam;

CREATE TABLE students ( student_id INT PRIMARY KEY, name VARCHAR(50), password VARCHAR(50));

CREATE TABLE courses ( course_id INT PRIMARY KEY, course_name VARCHAR(100));

CREATE TABLE questions ( question_id INT PRIMARY KEY, course_id INT, question_text VARCHAR(500), option_a VARCHAR(100), option_b VARCHAR(100), option_c VARCHAR(100), option_d VARCHAR(100), correct_answer VARCHAR(1), FOREIGN KEY (course_id) REFERENCES courses(course_id));

CREATE TABLE exam_results ( student_id INT, course_id INT, score INT, PRIMARY KEY (student_id, course_id), FOREIGN KEY (student_id) REFERENCES students(student_id), FOREIGN KEY (course_id) REFERENCES courses(course_id));

CREATE USER 'new_user'@'localhost' IDENTIFIED BY 'password';GRANT ALL PRIVILEGES ON exam.* TO 'new_user'@'localhost';

  • 以上代码将创建一个名为 'new_user' 的用户,密码为 'password',并授予该用户对 exam 数据库的所有权限。

3. 检查防火墙设置

  • 确保你的服务器防火墙允许从你的Java程序所在机器访问MySQL数据库端口(默认为3306)。

4. 检查数据库连接字符串

  • 确保你的数据库连接字符串中包含正确的数据库地址、端口号等信息。 * 尤其注意 serverTimezone 参数,确保其设置正确以避免时区问题。

5. 其他建议

  • 检查数据库是否正在运行。* 重启你的Java程序和MySQL数据库服务器。* 搜索网络获取更多帮助:如果你尝试了以上步骤仍然无法解决问题,可以在网络上搜索相关错误信息,或者在技术论坛上寻求帮助。

总结

通过仔细检查数据库配置、用户权限和网络设置,你应该能够解决 'java.sql.SQLException: Access denied for user...' 错误并成功连接到你的MySQL数据库。

java.sql.SQLException: Access denied for user 错误解决指南

原文地址: https://www.cveoy.top/t/topic/fZ35 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录