几个月前,我有 在 Ubuntu 18.04 中设置 LAMP 堆栈 服务器。 今天,我尝试在我的数据库服务器中以 root 用户身份登录,但我完全忘记了密码。 经过几次网络搜索并浏览了 MySQL 论坛,我成功地重置了 MySQL root 用户密码。 对于那些想知道如何做到这一点的人,这个简短的教程解释了在 Linux 和类 Unix 操作系统中重置 MySQL 或 MariaDB 根密码的步骤。
重置 MySQL 或 MariaDB 根密码
首先,停止数据库服务器。
如果您使用 MySQL,请键入以下命令并按 ENTER 键。
$ sudo systemctl stop mysql
对于 MariaDB:
$ sudo systemctl stop mariadb
接下来,使用以下命令重新启动数据库服务器而不进行权限检查:
$ sudo mysqld_safe --skip-grant-tables &
在这里, --skip-grant-tables
选项允许您在没有密码和所有权限的情况下进行连接。
如果您使用此选项启动服务器,它还会启用 --skip-networking
用于阻止其他客户端连接到数据库服务器的选项。
而且,与号 (&) 符号用于在后台运行命令,因此您可以在以下步骤中键入其他命令。
请注意,上述命令很危险,您的数据库服务器会变得不安全。 您应该只在短时间内运行此命令来重置密码。
接下来,登录到您的 MySQL/MariaDB 服务器 root
用户:
$ mysql
在 mysql>
或者 MariaDB [(none)]>
提示,运行以下命令重置数据库 root
用户密码:
UPDATE mysql.user SET Password=PASSWORD('ostechnix') WHERE User="root";
代替 ostechnix 在上面的命令中使用您自己的密码。
然后,键入以下命令以退出 mysql 控制台。
FLUSH PRIVILEGES;
exit
最后,关闭您之前启动的正在运行的数据库服务器 --skip-grant-tables
选项。 为此,请运行:
$ sudo mysqladmin -u root -p shutdown
您将被要求输入您的 mysql/mariadb root
您在上一步中设置的用户密码。
Enter password: [2]- Done sudo mysqld_safe --skip-grant-tables
现在,使用命令正常启动 mysql/mariadb 服务:
$ sudo systemctl start mysql
对于 MariaDB:
$ sudo systemctl start mariadb
使用以下命令验证密码是否确实已更改:
$ sudo mysql -u root -p
而且,这就是现在的全部。 希望您觉得这个有帮助。
数据库LinuxMariaDBMySQL重设mariadb密码重设mysql root密码root密码