用户权限不足访问MySQL:解决“java.sql.SQLException: Access Denied”
遇到异常“java.sql.SQLException: Access Denied”
通过 Java 连接到 MySQL 数据库时出现“SQLException:访问被拒绝”可能会令人沮丧。此错误通常表明尝试连接的用户缺乏访问数据库的适当权限。<code class="java">Connection m_connection = DriverManager.getConnection("jdbc:mysql://localhost", "root", "root");</code>
在您的情况下,异常是由以下代码片段引起的:
代码尝试使用“root”用户和“root”密码建立与本地主机上运行的 MySQL 数据库的连接。但是,该错误表明这些凭据没有访问数据库所需的权限。<code class="sql">GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '%password%' WITH GRANT OPTION;</code>
要解决此问题,您必须向尝试连接的用户授予适当的权限。在 MySQL 中,可以通过执行以下查询来实现:
记住将“%password%”替换为您的实际 MySQL 密码。执行此查询后,您应该能够使用“root”用户和指定的密码成功连接到 MySQL 数据库。<code class="java">Connection conn = (Connection) DriverManager.getConnection("jdbc:mysql://localhost/?user=root&password=rootpassword"); </code>
或者,在您的第二个代码片段中:
您正在使用不同的方法将用户和密码包含在连接 URL 本身中。虽然这种方法很方便,但通常不太安全,因为它以纯文本形式公开密码。始终建议使用配置文件或其他安全机制来存储数据库凭据,而不是将它们直接嵌入到您的代码或连接 URL。以上是为什么我在连接 MySQL 时收到'java.sql.SQLException: Access Denied”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!