---
author: Gabriel Cánepa
category: 系统运维
comments_data:
- date: '2019-09-02 21:11:06'
  message: 在Ubuntu中有别的方法进行重置
  postip: 116.19.93.10
  username: phoenix_wangxd [Chrome 76.0|Mac 10.14]
count:
  commentnum: 1
  favtimes: 7
  likes: 0
  sharetimes: 0
  viewnum: 10908
date: '2017-03-17 08:55:00'
editorchoice: false
excerpt: 如果你忘记了密码或需要重置密码（例如，当数据库管理员换人或被裁员！），这篇文章会派上用场。
fromurl: http://www.tecmint.com/reset-mysql-or-mariadb-root-password/
id: 8301
islctt: true
largepic: /images/p/201703/14/000106cczpckd78o6kekqd.jpg
permalink: /article-8301-1.html
pic: /data/attachment/album/201703/14/000106cczpckd78o6kekqd.jpg.thumb.jpg
related:
- displayorder: 0
  raid: 8320
- displayorder: 1
  raid: 8328
reviewer: ''
selector: ''
summary: 如果你忘记了密码或需要重置密码（例如，当数据库管理员换人或被裁员！），这篇文章会派上用场。
tags:
- MySQL
- MariaDB
- 密码
thumb: false
title: 如何在 Linux 中重置 MySQL 或者 MariaDB 的 root 密码
titlepic: true
translator: geekpi
updated: '2017-03-17 08:55:00'
---

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


![](/data/attachment/album/201703/14/000106cczpckd78o6kekqd.jpg)


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


**建议阅读：** [更改 MySQL 或 MariaDB 的 root 密码](/article-8328-1.html)。


虽然我们将在本文中使用 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 &

```

![Start MySQL/MariaDB with Skip Tables](/data/attachment/album/201703/14/000113efeknu7t34ke3b34.png)


*使用 skip tables 启动 MySQL/MariaDB*


这可以让你不用 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 密码。一如往常，如果你有任何问题或反馈请在评论栏中给我们留言。我们期待听到你的声音。




---


作者简介：


Gabriel Cánepa - 一位来自阿根廷圣路易斯梅塞德斯镇 (Villa Mercedes, San Luis, Argentina) 的 GNU/Linux 系统管理员，Web 开发者。就职于一家世界领先级的消费品公司，乐于在每天的工作中能使用 FOSS 工具来提高生产力。




---


via: <http://www.tecmint.com/reset-mysql-or-mariadb-root-password/>


作者：[Gabriel Cánepa](http://www.tecmint.com/author/gacanepa/) 译者：[geekpi](https://github.com/geekpi) 校对：[jasminepeng](https://github.com/jasminepeng)


本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出