当前位置: 首页 > news >正文

如何重置你的 MySQL 或 MariaDB 的 root 密码

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。

简介

最好的人也会忘记密码。如果您忘记或丢失了 MySQL 或 MariaDB 数据库的 root 密码,只要您可以访问服务器并拥有一个 sudo-enabled 用户账户,您仍然可以获得访问权限并重置密码。

本教程将介绍如何重置较旧和较新版本的 MySQL 和 MariaDB 的 root 密码。

先决条件

要恢复 root MySQL/MariaDB 密码,您需要:

  • 访问运行 MySQL 或 MariaDB 的 Linux 服务器,并拥有一个 sudo 用户。

步骤 1 —— 确定数据库版本

大多数现代 Linux 发行版都附带了 MySQL 或 MariaDB,后者是一个流行的兼容 MySQL 的替代品。根据使用的数据库及其版本,您需要使用不同的命令来恢复 root 密码。

您可以使用以下命令检查您的版本:

mysql --version

对于 MySQL,您将看到如下输出:

[secondary_label MySQL output]
mysql  Ver 14.14 Distrib 5.7.16, for Linux (x86_64) using  EditLine wrapper

对于 MariaDB,您将看到如下输出:

[secondary_label MariaDB output]
mysql  Ver 15.1 Distrib 5.5.52-MariaDB, for Linux (x86_64) using readline 5.1

记下您正在运行的数据库和版本,因为您稍后会用到它们。接下来,您需要停止数据库,以便手动访问它。

步骤 2 —— 停止数据库服务器

要更改 root 密码,您必须先关闭数据库服务器。

对于 MySQL,您可以使用以下命令:

sudo systemctl stop mysql

对于 MariaDB,您可以使用以下命令:

sudo systemctl stop mariadb

数据库服务器停止后,您将手动访问它以重置 root 密码。

步骤 3 —— 无需权限检查地重新启动数据库服务器

如果您在不加载有关用户权限的信息的情况下运行 MySQL 和 MariaDB,它将允许您以 root 权限访问数据库命令行,而无需提供密码。这将允许您在不知道密码的情况下访问数据库。

为此,您需要阻止数据库加载存储用户权限信息的 grant tables,同时还应该跳过网络,以防止其他客户端连接。

启动数据库时不加载 grant tables 或启用网络:

sudo mysqld_safe --skip-grant-tables --skip-networking &

该命令末尾的“&”将使此进程在后台运行,以便您可以继续使用终端。

现在,您可以以 root 用户身份连接到数据库,这不应该要求输入密码。

mysql -u root

您将立即看到一个数据库 shell 提示符。

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql>
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.MariaDB [(none)]>

现在您已经获得了 root 访问权限,可以更改 root 密码。

步骤 4 —— 更改 root 密码

对于较新版本的 MySQL,一种简单的更改 root 密码的方法是使用 ALTER USER 命令。但是,由于 grant tables 没有加载,此命令现在不起作用。

让我们告诉数据库服务器通过发出 FLUSH PRIVILEGES 命令重新加载 grant tables。

FLUSH PRIVILEGES;

现在我们实际上可以更改 root 密码。

对于 MySQL 5.7.6 及更新版本 以及 MariaDB 10.1.20 及更新版本,使用以下命令。

ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

对于 MySQL 5.7.5 及更旧版本 以及 MariaDB 10.1.20 及更旧版本,使用:

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_password');

请确保将 new_password 替换为您选择的新密码。

无论哪种情况,您都应该看到命令已成功执行的确认。

Query OK, 0 rows affected (0.00 sec)

密码已更改,现在您可以停止数据库服务器的手动实例,并像之前一样重新启动它。

步骤 5 —— 正常重新启动数据库服务器

首先,停止您在步骤 3 中手动启动的数据库服务器实例。此命令搜索 MySQL 或 MariaDB 进程的 PID(进程 ID),并发送 SIGTERM 以告知其在执行清理操作后平滑退出。您可以在此 Linux 进程管理教程中了解更多信息。

对于 MySQL,使用:

sudo kill `cat /var/run/mysqld/mysqld.pid`

对于 MariaDB,使用:

sudo kill `/var/run/mariadb/mariadb.pid`

然后,使用 systemctl 重新启动服务。

对于 MySQL,使用:

sudo systemctl start mysql

对于 MariaDB,使用:

sudo systemctl start mariadb

现在,您可以通过运行以下命令确认新密码已正确应用:

mysql -u root -p

该命令现在应提示输入新分配的密码。输入后,您应该如预期般获得对数据库提示的访问权限。

结论

您现在已经恢复了对 MySQL 或 MariaDB 服务器的管理访问权限。确保您选择的新 root 密码是强大和安全的,并将其保存在安全的地方。


http://www.mrgr.cn/news/56520.html

相关文章:

  • git 下载慢
  • PLL锁相环带宽定义,以及PI参数自动整定
  • 速盾:cdn能加速游戏吗?
  • PGCM是什么证书?有什么作用?
  • 听劝!跨境电商一定要做离钱近的市场(选品思路+运营建议)
  • React是如何工作的?
  • 开源图像超分ECBSR项目源码分析
  • 【系统规划与管理师】【公式计算题】(共21项)
  • 文件处理新纪元:微信小程序的‘快递员’与‘整理师’
  • 从关键新闻和最新技术看AI行业发展(第三十三期2024.9.23-10.13) |【WeThinkIn老实人报】
  • 序列操作基础与切片
  • AIGC:开启智能创造的璀璨新篇章
  • 神经网络模型内部
  • 一个用Python编写的自动化安装openGauss数据库方法和代码(3)
  • 六、Linux 服务器搭建专业指南
  • 人工智能技术的应用前景与生活工作变革
  • C++类和对象 - 下【匿名对象,友元,static成员】
  • 五、Shell 脚本编程:从基础至实用实例
  • ST7789读取ID错误新思路(以STC32G为例)
  • 架构师之路-学渣到学霸历程-28
  • Python程序设计 内置函数 日志模块
  • 数据类型的通用操作
  • Standard_Matrix
  • libaom-all-intra参数说明
  • 渗透测试实战—教育攻防演练中突破网络隔离
  • 【Vulnhub靶场】Kioptrix Level 5