MySQL 连接问题:用户 'root'@'localhost' 访问被拒绝
您提供的代码无法连接到数据库并抛出 SQLException 并显示消息“用户‘root’@‘localhost’访问被拒绝(使用密码:YES)”。此问题表明指定的用户没有访问数据库所需的权限。
原因:
出现此异常的原因如下:
解决方案:
要解决此问题,请尝试以下步骤:
授予必要的权限: 执行以下 SQL 语句将所有权限授予 'localhost' 上的 'root' 用户:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '%password%' WITH GRANT OPTION;
将 %password% 替换为“root”用户的实际密码。
示例:
您已修改您的代码稍微尝试在处理异常时创建数据库:
<code class="java">public static void main(String[] args) throws ClassNotFoundException, ServletException, SQLException { try { Connection conn = (Connection) DriverManager.getConnection("jdbc:mysql://localhost/?user=root&password=rootpassword"); Statement s = (Statement) conn.createStatement(); int result = s.executeUpdate("CREATE DATABASE databasename"); } catch (Exception e) { e.printStackTrace(); } }</code>
但是,会发生相同的异常。在这种情况下,请确保“root”用户具有创建数据库所需的权限。您可以使用以下 SQL 语句授予此权限:
GRANT CREATE DATABASE ON *.* TO 'root'@'localhost' WITH GRANT OPTION;
通过执行以下步骤,您应该能够成功建立与数据库的连接并避免“访问被拒绝”异常。
以上是为什么我在尝试连接到 MySQL 数据库时收到'用户\'root\'@\'localhost\'\ 的访问被拒绝”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!