当我们在Linux系统下连接MySQL数据库时,有时会遇到"Access denied for user 'root'@'localhost' (using password:YES)"的报错,这意味着我们无法成功连接到MySQL数据库。接下来,我将分享一些解决此问题的方法。
方法一:重置root密码
有时,我们无法连接数据库是因为我们无法获得正确的密码。我们可以通过重置root密码解决此问题。
- 停止MySQL服务器:
sudo systemctl stop mysql
- 使用以下命令以跳过授权表验证方式启动MySQL服务器:
sudo mysqld_safe --skip-grant-tables &
- 登录到MySQL数据库:
mysql -u root
- 执行以下命令重置root密码:
USE mysql;
UPDATE user SET authentication_string=PASSWORD("new_password") WHERE User='root';
FLUSH PRIVILEGES;
QUIT;
- 退出MySQL并重新启动它:
sudo systemctl start mysql
现在,您应该能够使用新的密码成功连接到MySQL数据库。
方法二:验证权限和授权表
有时授权表中的权限可能会导致我们无法连接到MySQL数据库,因此我们必须检查授权表中的权限并加以更改。
- 使用以下命令登录MySQL:
mysql -u root -p
- 执行以下命令以查看授权表中的权限:
SELECT User, Host FROM mysql.user;
- 如果您看到没有“root”用户的行或其Host字段不包括“localhost”,则可能需要创建或更改数据库用户的权限。执行以下命令向root用户授予权限:
GRANT ALL ON *.* TO 'root'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
FLUSH PRIVILEGES;
现在,您应该看到授权表中的“root”用户并且您应该能够使用密码成功连接到MySQL数据库。
两个方法都可以解决MySQL连接报错问题。但是,我们需要根据具体情况选择最适合我们自己的方法。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Linux连接mysql报错:Access denied for user ‘root’@‘localhost’(using password: YES)的解决方法 - Python技术站