如何在 Linux 中重置 MySQL 或者 MariaDB 的 root 密码-阿里云开发者社区

开发者社区> 数据库> 正文

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

简介:

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

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

建议阅读: 更改 MySQL 或 MariaDB 的 root 密码

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

恢复 MySQL 或者 MariaDB 的 root 密码

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


  1. ------------- SystemD -------------
  2. # systemctl stop mariadb
  3. ------------- SysVinit -------------
  4. # /etc/init.d/mysqld stop

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


  1. ------------- SystemD -------------
  2. # systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"
  3. # systemctl start mariadb
  4. # systemctl status mariadb
  5. ------------- SysVinit -------------
  6. # mysqld_safe --skip-grant-tables &

使用 skip tables 启动 MySQL/MariaDB

使用 skip tables 启动 MySQL/MariaDB

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


  1. # mysql -u root

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


  1. MariaDB [(none)]> USE mysql;
  2. MariaDB [(none)]> UPDATE user SET password=PASSWORD('YourNewPasswordHere') WHERE User='root' AND Host = 'localhost';
  3. MariaDB [(none)]> FLUSH PRIVILEGES;

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


  1. ------------- SystemD -------------
  2. # systemctl stop mariadb
  3. # systemctl unset-environment MYSQLD_OPTS
  4. # systemctl start mariadb
  5. ------------- SysVinit -------------
  6. # /etc/init.d/mysql stop
  7. # /etc/init.d/mysql start

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

原文发布时间为:2017-03-17

本文来自云栖社区合作伙伴“Linux中国”

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

其他文章