首页 > Java > java教程 > 正文

为什么我在尝试连接到 MySQL 数据库时收到'用户\'root\'@\'localhost\'\ ​​的访问被拒绝”错误?

Linda Hamilton
发布: 2024-10-26 00:27:28
原创
1030 人浏览过

Why am I getting

MySQL 连接问题:用户 'root'@'localhost' 访问被拒绝

您提供的代码无法连接到数据库并抛出 SQLException 并显示消息“用户‘root’@‘localhost’访问被拒绝(使用密码:YES)”。此问题表明指定的用户没有访问数据库所需的权限。

原因:

出现此异常的原因如下:

  • 用户名或密码错误
  • 用户权限不足
  • 防火墙阻止访问数据库服务器

解决方案:

要解决此问题,请尝试以下步骤:

  1. 检查您的用户名和密码:确保提供给 DriverManager.getConnection 的用户名和密码() 正确。
  2. 授予必要的权限: 执行以下 SQL 语句将所有权限授予 'localhost' 上的 'root' 用户:

    GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '%password%' WITH GRANT OPTION;
    登录后复制

    将 %password% 替换为“root”用户的实际密码。

  3. 防火墙设置:检查系统上的防火墙是否阻止访问数据库服务器。如果是这样,请将防火墙配置为允许数据库服务器正在使用的端口(通常是端口 3306)上的连接。

示例:

您已修改您的代码稍微尝试在处理异常时创建数据库:

<code class="java">public static void main(String[] args) throws ClassNotFoundException, ServletException, SQLException {
    try {
        Connection conn = (Connection) DriverManager.getConnection("jdbc:mysql://localhost/?user=root&amp;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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板