mysql root 访问被拒绝_sql - MySQL错误::'访问被拒绝用户'root'@'localhost'

我尝试了很多步骤来纠正这个问题。 对于这个问题有很多可能解决方案的来源很难从废话中过滤出来。 我终于找到了一个很好的解决方案:

第1步:确定数据库版本

$ mysql --version

你会看到MySQL的一些输出:

$ mysql Ver 14.14 Distrib 5.7.16, for Linux (x86_64) using EditLine wrapper

或者为MariaDB输出如下:

mysql Ver 15.1 Distrib 5.5.52-MariaDB, for Linux (x86_64) using readline 5.1

记下您正在运行的数据库和版本,稍后您将使用它们。 接下来,您需要停止数据库,以便手动访问它。

第2步:停止数据库服务器

要更改root密码,必须事先关闭数据库服务器。

你可以用MySQL做到这一点:

$ sudo systemctl stop mysql

对于MariaDB:

$ sudo systemctl stop mariadb

步骤3:在没有权限检查的情况下重新启动数据库服务器

如果在不加载有关用户权限的信息的情况下运行MySQL和MariaDB,则可以使用root权限访问数据库命令行而无需提供密码。 这将允许您在不知情的情况下访问数据库。

为此,您需要停止数据库加载存储用户权限信息的授权表。 因为这有一点安全风险,所以您也应该跳过网络以防止其他客户端连接。

在不加载授权表或启用网络的情况下启动数据库:

$ sudo mysqld_safe --skip-grant-tables --skip-networking &

此命令末尾的&符号将使此进程在后台运行,以便您可以继续使用终端。

现在,您可以以root用户身份连接到数据库,root用户不应该要求输入密码。

$ mysql -u root

您将立即看到数据库shell提示符。

MySQL提示

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

MariaDB提示

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

现在您具有root访问权限,您可以更改root密码。

第4步:更改Root密码

mysql> FLUSH PRIVILEGES;

现在我们可以实际更改root密码。

对于MySQL 5.7.6及更高版本以及MariaDB 10.1.20及更高版本,请使用以下命令:

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

对于MySQL 5.7.5及更早版本以及MariaDB 10.1.20及更早版本,请使用:

mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_password');

请务必使用您选择的新密码替换ALTER USER。

注意:如果ALTER USER命令不起作用,则通常表示更大的问题。 但是,您可以尝试UPDATE ... SET重置root密码。

[重要]这是修复我的特定问题的具体行:

mysql> UPDATE mysql.user SET authentication_string = PASSWORD('new_password') WHERE User = 'root' AND Host = 'localhost';

请记住在此之后重新加载授权表。

在任何一种情况下,您都应该看到命令已成功执行的确认。

Query OK, 0 rows affected (0.00 sec)

密码已更改,因此您现在可以停止数据库服务器的手动实例并按原样重新启动它。

步骤5:正常重启数据库服务器

本教程进入了一些重新启动数据库的步骤,但我使用的唯一部分是:

对于MySQL,使用:     $ sudo systemctl启动mysql

对于MariaDB,请使用:

$ sudo systemctl start mariadb

现在,您可以通过运行以下命令确认已正确应用新密码:

$ mysql -u root -p

该命令现在应该提示新分配的密码。 输入它,您应该按预期访问数据库提示。

结论

您现在可以恢复对MySQL或MariaDB服务器的管理访问权限。 确保您选择的新root密码强大且安全,并将其保存在安全的地方。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值