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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

如果你是第一次设置 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中国”

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
8天前
|
关系型数据库 MySQL Linux
Linux CentOs7 安装Mysql(5.7和8.0版本)密码修改 超详细教程
Linux CentOs7 安装Mysql(5.7和8.0版本)密码修改 超详细教程
|
14天前
|
Linux Shell 数据安全/隐私保护
|
15天前
|
存储 关系型数据库 MySQL
linux安装MySQL8.0,密码修改权限配置等常规操作详解
linux安装MySQL8.0,密码修改权限配置等常规操作详解
|
15天前
|
弹性计算 运维 Shell
|
16天前
|
存储 安全 算法
|
16天前
|
安全 Linux 数据安全/隐私保护
【专栏】了解并有效利用 `Chage` 可提升系统安全性和稳定性。
【4月更文挑战第28天】`Chage` 命令在 Linux 中用于管理用户密码策略,包括有效期、过期警告和锁定。本文将介绍如何使用 `chage` 修改这些设置。通过 `chage -l` 查看用户策略,`-M` 设置最大有效期,`-W` 设置过期警告,`-I` 设置过期后锁定天数。文章还将探讨企业环境和特殊用户的应用案例,以及使用时的注意事项,如谨慎修改、通知用户和验证效果。了解并有效利用 `Chage` 可提升系统安全性和稳定性。
|
5月前
|
存储 关系型数据库 MySQL
LINUX中的mysql(一)安装
MySQL是一种常用的开源关系型数据库管理系统,广泛应用于Linux系统中。它提供了一个灵活、高效和可扩展的数据库解决方案,被许多应用程序和网站用于存储和管理数据。
131 0
|
6月前
|
关系型数据库 MySQL Linux
【Linux】jdk & Tomcat & MySql的安装及Linux后端接口部署
【Linux】jdk & Tomcat & MySql的安装及Linux后端接口部署
111 0
|
4月前
|
关系型数据库 MySQL Linux
Linux C/C++ 开发(学习笔记六):MySQL安装与远程连接
Linux C/C++ 开发(学习笔记六):MySQL安装与远程连接
53 0
|
5月前
|
固态存储 关系型数据库 MySQL
Linux下MySQL安装过程中的疑难杂症
Linux下MySQL安装过程中的疑难杂症
44 0