欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

详解如何在Linux中重置MySQL或者MariaDB的root密码

程序员文章站 2022-11-03 17:38:22
如果你是第一次设置 mysql 或 mariadb 数据库,你可以直接运行 mysql_secure_installation 来实现基本的安全设置。 其中一项是设置数据...

如果你是第一次设置 mysql 或 mariadb 数据库,你可以直接运行 mysql_secure_installation 来实现基本的安全设置。

其中一项是设置数据库 root 帐户的密码 - 你必须保持私密,并仅在绝对需要时使用。如果你忘记了密码或需要重置密码(例如,当数据库管理员换人或被裁员!),这篇文章会派上用场。我们将解释如何在 linux 中重置或恢复 mysql 或 mariadb 的 root 密码。

虽然我们将在本文中使用 mariadb,但这些说明同样也适用于 mysql。

恢复 mysql 或者 mariadb 的 root 密码

开始之前,先停止数据库服务并检查服务状态,我们应该可以看到先前设置的环境变量:

------------- systemd ------------- 
# systemctl stop mariadb
------------- sysvinit -------------
# /etc/init.d/mysqld stop

接下来,用 --skip-grant-tables 选项启动服务:

------------- systemd ------------- 
# systemctl set-environment mysqld_opts="--skip-grant-tables"
# systemctl start mariadb
# systemctl status mariadb
------------- sysvinit -------------
# mysqld_safe --skip-grant-tables &

详解如何在Linux中重置MySQL或者MariaDB的root密码

这可以让你不用 root 密码就能连接到数据库(你也许需要切换到另外一个终端上):

# mysql -u root

接下来,按照下面列出的步骤来。

mariadb [(none)]> use mysql;
mariadb [(none)]> update user set password=password('yournewpasswordhere') where user='root' and host = 'localhost';
mariadb [(none)]> flush privileges;

最后,停止服务,取消环境变量设置并再次启动服务:

------------- systemd ------------- 
# systemctl stop mariadb
# systemctl unset-environment mysqld_opts
# systemctl start mariadb
------------- sysvinit -------------
# /etc/init.d/mysql stop
# /etc/init.d/mysql start

这可以让先前的改变生效,允许你使用新的密码连接到数据库。

总结

本文我们讨论了如何重置 mariadb/mysql 的 root 密码。一如往常,如果你有任何问题或反馈请在评论栏中给我们留言。我们期待听到你的声音。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。