关于2个mysql报错

1  报错: Host ‘127.0.0.1’ is not allowed to connect to this MySQL server

vi /etc/my.cnf

注释掉: #skip-name-resolve

 

 

 

2 报错:Access denied for user 'root'@'localhost' (using password: YES)

在使用MySQL数据库时,root用户是最高权限的管理员账户。如果您忘记了root用户的密码,那么您将无法登录到MySQL数据库并进行任何管理操作。但是,不要担心,MySQL提供了几种方法来重置root密码,本文将向您介绍其中的几种方法。

 

方法一:使用mysqladmin重置密码

这种方法适用于您在MySQL服务器上拥有root账户的管理员权限。下面是重置root密码的步骤:

  1. 停止MySQL服务
$ sudo systemctl stop mysql
  1. 使用mysqld_safe命令启动MySQL服务,并跳过权限检查
$ sudo mysqld_safe --skip-grant-tables &
  1. 连接到MySQL服务器,并使用mysqladmin命令重置密码
$ mysql -u root

mysql> FLUSH PRIVILEGES;

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

这里,'new_password' 是您要设置的新密码,您可以根据需要进行修改。此命令将修改root用户在本地MySQL服务器上的密码。

  1. 退出MySQL服务器,并停止MySQL服务
mysql> exit

$ sudo systemctl stop mysql
  1. 启动MySQL服务
$ sudo systemctl start mysql

现在,您可以使用新密码重新登录root用户。

方法二:使用mysqld重新设置root密码

这种方法适用于您在MySQL服务器上没有root管理员权限,但您具有物理访问权限。下面是重置root密码的步骤:

  1. 停止MySQL服务
$ sudo systemctl stop mysql
  1. 使用mysqld_safe命令启动MySQL服务,并跳过权限检查
$ sudo mysqld_safe --skip-grant-tables &
  1. 连接到MySQL服务器,并创建一个新的临时用户,该用户拥有root权限
$ mysql -u root

mysql> FLUSH PRIVILEGES;

mysql> CREATE USER 'temp_root'@'localhost' IDENTIFIED BY 'temp_password';

mysql> GRANT ALL PRIVILEGES ON *.* TO 'temp_root'@'localhost' WITH GRANT OPTION;

mysql> exit
  1. 重新启动MySQL服务,并使用新的临时root用户登录MySQL服务器
$ sudo systemctl start mysql

$ mysql -u temp_root -p
  1. 使用ALTER命令修改root用户密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

这里,'new_password' 是您要设置的新密码,您可以根据需要进行修改。此命令将修改root用户在本地MySQL服务器上的密码。

  1. 退出MySQL服务器,并停止MySQL服务
mysql> exit

$ sudo systemctl stop mysql
  1. 删除临时用户
$ sudo mysqld_safe --skip-grant-tables &

$ mysql -u root

mysql> FLUSH PRIVILEGES;

mysql> REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'temp_root'@'localhost';

mysql> DROP USER 'temp_root'@'localhost';

mysql> exit
  1. 重新启动MySQL服务
$ sudo systemctl start mysql

现在,您可以使用新密码重新登录root用户。

方法三:使用MySQL安全性模式重置密码

如果您无法使用上述两种方法,您可以尝试使用MySQL安全性模式重置密码。这种方法通常用于无法正常启动MySQL服务器的情况。下面是重置root密码的步骤:

  1. 停止MySQL服务
$ sudo systemctl stop mysql
  1. 启动MySQL安全性模式
$ sudo mysqld_safe --skip-grant-tables --skip-networking &
  1. 使用新的命令行终端连接到MySQL服务器
$ mysql -u root
  1. 修改root用户密码
mysql> FLUSH PRIVILEGES;

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

这里,'new_password' 是您要设置的新密码,您可以根据需要进行修改。此命令将修改root用户在本地MySQL服务器上的密码。

  1. 退出MySQL服务器
mysql> exit
  1. 停止MySQL安全性模式
$ sudo killall mysqld_safe
  1. 启动MySQL服务
$ sudo systemctl start mysql

现在,您可以使用新密码重新登录root用户。

以上是三种重置MySQL root密码的方法。每种方法都有其适用的情况,您可以根据您的具体情况选择合适的方法。无论您选择哪种方法,请务必在重置密码后及时删除临时用户并启动MySQL服务。

posted @ 2023-10-18 17:57  Sinsen柳  阅读(3)  评论(0编辑  收藏  举报