MySQL忘记root密码错误号码1045的解决办法

当我们忘记 MySQL 的 root 密码时,使用 root 账户登陆 MySQL 数据库失败,可能会遇到错误号码为 1045 的错误提示。错误提示信息如下所示:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

这种错误提示意味着在没有提供正确的密码的情况下, root 用户不能登录 MySQL,因此我们需要尝试重置 root 用户的密码。以下是在 Linux 操作系统中解决此问题的步骤:

1. 停止 MySQL 服务

在使用以下命令之前,确保你已经停止了 MySQL 服务,在命令行中输入以下命令:

sudo systemctl stop mysql

2. 创建并编辑 MySQL 配置文件

现在我们要为 MySQL 创建一个新的配置文件。在命令行中输入以下命令:

sudo vim /etc/mysql/reset-passwd.cnf

创建了一个新的文件之后,使用以下内容配置它:

[mysqld]
skip-grant-tables

然后保存并退出文件。

3. 启动 MySQL 服务

使用以下命令启动 MySQL 服务:

sudo systemctl start mysql

4. 重置 MySQL root 密码

重置 root 密码,输入以下命令:

mysql -u root

进入 mysql 命令行后输入以下命令:

FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY '<新密码>';

这里把新密码替换为你想要的密码,然后保存并退出文件。退出 mysql 命令行。

5. 重启 MySQL 服务

我们已经完成了密码的重置,现在需要删除之前创建的配置文件。在命令行中输入以下命令:

sudo rm /etc/mysql/reset-passwd.cnf

然后重启 MySQL 服务:

sudo systemctl restart mysql

现在你可以使用新密码重新连接 MySQL 服务器。以下是使用命令行的示例说明:

示例1 重置密码为“password”

在示例1中,我们将 root 密码重置为“password”。具体过程如下:

  1. 停止 MySQL 服务
sudo systemctl stop mysql
  1. 创建并编辑 MySQL 配置文件
sudo vim /etc/mysql/reset-passwd.cnf

创建一个新文件并添加以下内容:

[mysqld]
skip-grant-tables
  1. 启动 MySQL 服务
sudo systemctl start mysql
  1. 重置 MySQL root 密码
mysql -u root
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password';
  1. 重启 MySQL 服务
sudo rm /etc/mysql/reset-passwd.cnf
sudo systemctl restart mysql

示例2 重置密码为“123456”

在示例2中,我们将 root 密码重置为“123456”。具体过程如下:

  1. 停止 MySQL 服务
sudo systemctl stop mysql
  1. 创建并编辑 MySQL 配置文件
sudo vim /etc/mysql/reset-passwd.cnf

创建一个新文件并添加以下内容:

[mysqld]
skip-grant-tables
  1. 启动 MySQL 服务
sudo systemctl start mysql
  1. 重置 MySQL root 密码
mysql -u root
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
  1. 重启 MySQL 服务
sudo rm /etc/mysql/reset-passwd.cnf
sudo systemctl restart mysql

通过上面的步骤,你可以重置并成功登录到 MySQL 数据库使用新的 root 密码。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MySQL忘记root密码错误号码1045的解决办法 - Python技术站

(0)
上一篇 2023年5月18日
下一篇 2023年5月18日

相关文章

  • PouchDB 和 Couchbase 的区别

    PouchDB和Couchbase都是流行的NoSQL数据库解决方案,虽然它们两个都是基于CouchDB底层语法的,但它们的定位和使用场景有所不同。 PouchDB 什么是PouchDB? PouchDB是一个基于JavaScript的端到端数据库,支持在各种客户端存储数据。PouchDB旨在实现无缝地在浏览器,Node.js和CouchDB之间的数据同步和…

    database 2023年3月27日
    00
  • SQL CHAR与VARCHAR

    SQL CHAR和VARCHAR的区别 在SQL中,CHAR和VARCHAR都是用来存储字符串类型数据的,但它们之间有一些明显的区别。 CHAR是固定长度的字符串类型,可以存储0到255个字符。VARCHAR是可变长度的字符串类型,可以存储0到65535个字符。 CHAR需要的存储空间是固定的,无论其中的实际数据内容是多少,都会占用指定的长度;VARCHAR…

    database 2023年3月27日
    00
  • 本地Windows远程桌面连接阿里云Ubuntu 16.04服务器的操作方法

    以下是详细的操作方法,让您可以在本地Windows系统中远程连接到阿里云Ubuntu 16.04服务器: 1. 确保防火墙已开放22端口 在您的阿里云服务器中,打开一个终端窗口并输入以下命令: sudo ufw allow 22/tcp 此命令将允许远程桌面协议连接到您的服务器。 2. 安装桌面环境和远程桌面软件 在终端中,输入以下命令: sudo apt …

    database 2023年5月22日
    00
  • Cassandra 和 MongoDB 的区别

    Cassandra和MongoDB是两种常见的NoSQL数据库。虽然它们都属于NoSQL范畴,但是它们之间还是有一些明显的区别的。 Cassandra Cassandra是一个高度可扩展的分布式数据库,它被设计用来处理大规模的数据。它是由Facebook开发的,目的是解决需要在分布式的服务器上存储和分析海量数据的问题。与传统的关系型数据库不同,Cassand…

    database 2023年3月27日
    00
  • 如何对 MongoDB 进行性能优化(五个简单步骤)

    下面我将为您详细介绍“如何对 MongoDB 进行性能优化”这个话题。本文将为您提供五个简单的步骤,帮助您对 MongoDB 进行性能优化。 步骤一:优化查询 MongoDB 的查询操作是其中一个需要优化的地方,以下是一些可供参考的查询优化技巧: 创建合适的索引 避免全局扫描,尽可能使用索引 对于大数据集查询,考虑分片 避免 $where 子句,因为它会导致…

    database 2023年5月21日
    00
  • SQL Server中使用表变量和临时表

    SQL Server中使用表变量和临时表是非常常见的操作,在某些场景下会对查询性能产生影响,因此我们需要根据实际情况来选择使用何种方式的临时表。 表变量和临时表的区别 SQL Server中表变量和临时表在使用上都类似于一张临时表,但是其内部实现机制却有所不同: 表变量:表变量是一种特殊的变量,定义和使用类似于数据表,其存储数据的方式类似于内存表,适用于存储…

    database 2023年5月21日
    00
  • MySQL中CURRENT_TIMESTAMP的使用方式

    下面是关于MySQL中CURRENT_TIMESTAMP的使用方式的详细攻略。 CURRENT_TIMESTAMP的作用 在MySQL中,CURRENT_TIMESTAMP是用来获取当前系统的时间戳的函数。 CURRENT_TIMESTAMP的使用方法 在MySQL中,可以使用两种方法获取当前系统的时间戳,即使用函数CURRENT_TIMESTAMP和关键字…

    database 2023年5月22日
    00
  • MySQL5.6 GTID模式下同步复制报错不能跳过的解决方法

    这里我来为大家详细讲解MySQL5.6 GTID模式下同步复制报错不能跳过的解决方法的完整攻略。 1. 背景介绍 在MySQL数据库中,GTID是用于跟踪复制事务的全局唯一标识符。在MySQL5.6及其以上版本中,使用GTID复制模式可以避免数据不一致等问题。 然而,有时候在使用GTID模式下进行同步复制时,可能会出现以下报错: Error ‘Could n…

    database 2023年5月18日
    00
合作推广
合作推广
分享本页
返回顶部