错误 ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)

错误 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 意味着您尝试使用MySQL的root用户登录,但是提供的密码不正确,或者root用户没有从localhost登录的权限。

要解决这个问题,您可以尝试以下几个步骤:

步骤 1:确保您使用的是正确的密码

确认您记得的root密码是正确的。如果您不确定密码是否正确,您可能需要重置它。

步骤 2:尝试无密码登录(如果root账户没有设置密码)

如果root账户没有设置密码,或者您不确定是否设置了密码,可以尝试无密码登录:


bash复制代码

/www/server/mysql/bin/mysql -u root

如果成功登录,那么您需要设置或更改root密码。

步骤 3:重置root密码

如果您无法以root身份登录,或者密码不正确,您可能需要重置密码。这通常涉及到停止MySQL服务,以无密码模式启动它,然后设置新的root密码。

对于MySQL 5.7及之前版本:

  1. 停止MySQL服务:

     

    bash复制代码

    sudo systemctl stop mysqld
  2. 以无密码模式启动MySQL(跳过权限表):

     

    bash复制代码

    sudo /www/server/mysql/bin/mysqld_safe --skip-grant-tables &
  3. 登录MySQL:

     

    bash复制代码

    /www/server/mysql/bin/mysql -u root
  4. 选择mysql数据库:

     

    sql复制代码

    USE mysql;
  5. 更新root用户的密码:

     

    sql复制代码

    UPDATE user SET authentication_string=PASSWORD('NEW_PASSWORD') WHERE User='root';
    FLUSH PRIVILEGES;

    对于MySQL 5.6及更早版本,使用 Password 替代 authentication_string

  6. 退出MySQL:

     

    sql复制代码

    EXIT;
  7. 停止mysqld_safe进程,并正常启动MySQL服务:

     

    bash复制代码

    sudo systemctl start mysqld

对于MySQL 8.0及更高版本:

由于MySQL 8.0使用了caching_sha2_password作为默认的认证插件,您可能需要使用不同的方法来重置密码。以下是一个简化的例子:

  1. 停止MySQL服务。

  2. 启动MySQL时跳过权限表:

     

    bash复制代码

    sudo /www/server/mysql/bin/mysqld_safe --skip-grant-tables --skip-networking &
  3. 登录MySQL。

  4. 选择mysql数据库。

  5. 更改root用户的认证方法并设置新密码:

     

    sql复制代码

    ALTER USER 'root'@'localhost' IDENTIFIED WITH 'mysql_native_password' BY 'NEW_PASSWORD';
    FLUSH PRIVILEGES;
  6. 退出MySQL,停止mysqld_safe进程,并正常启动MySQL服务。

步骤 4:再次尝试登录

使用新设置的密码尝试登录MySQL:


bash复制代码

/www/server/mysql/bin/mysql -u root -p

输入新密码后,您应该能够成功登录。

注意:在执行上述操作时,请确保您有足够的权限来停止和启动MySQL服务。此外,如果您使用的是非标准的MySQL安装(例如,通过特定的包管理器或自定义脚本安装),那么您可能需要查阅相关文档或寻求来自该安装源的支持。

你可能感兴趣的:(mysql,adb)