linux mysql忘记密码的多种解决或Access denied for user ‘root’@’localhost’

针对这个问题我可以给出以下的攻略,包括两种解决方法:

方法一:忘记密码的多种解决

步骤一:停止MySQL服务

在Linux系统中,运行以下命令停止MySQL服务:

sudo systemctl stop mysql

步骤二:编辑MySQL配置文件

使用文本编辑器打开MySQL配置文件,例如:

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

在配置文件中添加以下内容:

[mysqld]
skip-grant-tables

保存并退出编辑器。

步骤三:重新启动MySQL服务

运行以下命令重新启动MySQL服务:

sudo systemctl start mysql

步骤四:运行MySQL

使用以下命令运行MySQL服务器:

mysql -u root

此时,您将获得MySQL的 root shell 提示符以及无需密码的权限。

步骤五:更改密码

运行以下命令更改密码:

mysql> UPDATE mysql.user SET authentication_string=PASSWORD('new_password') WHERE User='root';
mysql> FLUSH PRIVILEGES;
mysql> quit

“new_password”是您想要设置的新密码,请将其替换为实际的新密码。

步骤六:重启MySQL服务

运行以下命令重新启动MySQL服务以应用更改:

sudo systemctl restart mysql

示例一

假设您忘记了在Ubuntu系统上安装的MySQL root用户的密码,并且遇到“Access denied for user 'root'@'localhost'”错误。

按照上述方法执行步骤,更新MySQL用户的密码(例如,“new_password”),以便您可以重新使用MySQL root用户。

方法二:通过Debian系统的sudo方式虚拟服务器恢复Mysql root密码

步骤一:以root身份登录到Linux服务器

使用SSH客户端连接到Linux服务器,并使用root用户登录。

步骤二:停止MySQL服务

在Linux系统中,运行以下命令停止MySQL服务:

sudo systemctl stop mysql

步骤三:创建一个密码重置脚本

使用您最喜欢的文字编辑器,创建一个名为 “reset_mysql_root_password.sh” 的 shell 脚本,内容如下:

#!/bin/bash

echo "Stopping the MySQL server"
sudo /etc/init.d/mysql stop

echo "Creating a backup of the existing MySQL data directory"
sudo mv /var/lib/mysql /var/lib/mysql.bak

echo "Creating a new MySQL data directory"
sudo mkdir /var/lib/mysql
sudo chown mysql:mysql /var/lib/mysql

echo "Initializing the new MySQL data directory"
sudo mysql_install_db --user=mysql --datadir=/var/lib/mysql

echo "Starting the MySQL server with root privileges"
sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking &

echo "Waiting for the MySQL server to start ..."
sleep 5

echo "Setting the new root password in MySQL"
mysql --user=root mysql << EOF
UPDATE user SET Password=PASSWORD('new_password') WHERE User='root';
FLUSH PRIVILEGES;
EOF

echo "Stopping the MySQL server"
sudo killall mysqld

echo "Starting the MySQL server normally"
sudo /etc/init.d/mysql start

echo "Done"

请注意,在上面的脚本中,您需要将“new_password”替换为您想要设置的新密码。

步骤四:保存并退出编辑器

在编辑器中,保存并退出脚本文件。

步骤五:使脚本可执行

使用以下命令将脚本标记为可执行文件:

sudo chmod +x reset_mysql_root_password.sh

步骤六:运行脚本

运行以下命令以运行脚本:

sudo ./reset_mysql_root_password.sh

该脚本将停止MySQL服务,备份现有MySQL数据目录,创建新的MySQL数据目录,将新密码设置为“New_password”,启动MySQL服务,停止MySQL服务(此次在安全模式下)并最终以正常模式启动MySQL服务。

示例二

假设您在Debian虚拟服务器上忘记了MySQL的root用户密码,而没有使用sudo用户。按照上述步骤操作,可以创建并运行脚本以重置MySQL root用户密码。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:linux mysql忘记密码的多种解决或Access denied for user ‘root’@’localhost’ - Python技术站

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

相关文章

  • HTML5 Web Database 数据库的SQL语句的使用方法

    下面是详细讲解“HTML5 Web Database 数据库的SQL语句的使用方法”的完整攻略: 1. HTML5 Web Database简介 HTML5 Web Database是浏览器本地存储数据的一种方式,它能够在浏览器中创建一个SQL数据库,数据以表格的形式存储,并支持SQL语句进行增、删、改、查等操作。HTML5 Web Database使用方便…

    database 2023年5月21日
    00
  • Redis异常测试盘点分析

    Redis异常测试盘点分析 背景 Redis是一个高性能的键值存储数据库,常用于缓存、消息队列和分布式锁。在实际应用中,我们需要对Redis进行异常情况的测试,以验证其可靠性和稳定性。 目的 本文的目的是总结Redis异常测试的方法和注意事项,以帮助测试人员更有效地测试Redis。 异常测试类型 Redis异常测试包括如下类型: 网络异常,如网络中断、超时等…

    database 2023年5月21日
    00
  • MySQL 数据库 索引和事务

    MySQL 数据库 索引和事务完整攻略 索引 索引的作用和原理 索引可以帮助MySQL快速的定位符合特定条件的数据,常用的索引类型包括B-Tree索引、Hash索引等。其中B-Tree索引是MySQL最常用的索引类型,其原理是对于B-Tree索引的每一层,左边的值小于等于中间值,右边的值大于中间值,每个节点都包含了指向下一级节点的指针,根据B-Tree索引的…

    database 2023年5月19日
    00
  • Python实现Linux命令xxd -i功能

    实现Linux命令xxd -i功能,可以使用Python的binascii模块和os模块,具体实现步骤如下: 1.读取文件内容 使用os模块打开文件,按照二进制方式读取文件内容,并将其保存在一个bytes对象中。代码示例: import os with open(‘hello.txt’, ‘rb’) as f: content = f.read() 其中,h…

    database 2023年5月21日
    00
  • MySQL函数大全及用法示例分享

    MySQL函数大全及用法示例分享 一、前言 MySQL函数是MySQL数据库的一种重要的组成部分,可以在查询和操作数据时使用。 它们是在数据值上进行操作的代码片段,可以用于从数据库中检索和处理数据。MySQL函数可以是内置函数,也可以是用户定义的函数。 借助MySQL函数,您可以将数据进行格式化、转换、聚合或者执行数学计算、日期计算等操作。 本攻略将详细讲解…

    database 2023年5月22日
    00
  • MySQL压测神器HammerDB的部署及使用详解

    MySQL压测神器HammerDB的部署及使用详解 概述 HammerDB是一款可用于MySQL压力测试的免费开源工具。本攻略将详细介绍如何部署和使用HammerDB。 部署 下载并安装HammerDB 下载地址:http://www.hammerdb.com/download.html 安装MySQL服务器 如果您没有MySQL服务器,您需要在测试机上安装…

    database 2023年5月22日
    00
  • mybatis中foreach报错:_frch_item_0 not found的解决方法

    针对mybatis中foreach报错:“_frch_item_0 not found”的解决方法,我将提供以下完整攻略。 问题分析 通过对mybatis中foreach的使用进行分析,可以得出使用foreach时,需要保证以下几点: collection属性必须设置为可遍历的集合类型(比如List、Set等)。 item属性必须设置,不然会报错。 当col…

    database 2023年5月21日
    00
  • Ubuntu下LAMP环境配置教程(linux)

    下面是Ubuntu下LAMP环境配置教程(linux)的详细攻略: 1. 安装Apache 在Ubuntu下安装Apache可以使用以下命令: sudo apt-get update # 更新apt-get包管理器 sudo apt-get install apache2 # 安装Apache 安装好后,可以使用以下命令启动Apache: sudo serv…

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