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

yizhihongxing

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

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

步骤一:停止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日

相关文章

  • mysql 模糊查询 concat()的用法详解

    MySQL 模糊查询 concat()的用法详解 在 MySQL 中,我们经常需要进行模糊查询操作,而 concat() 函数则是一个常见的字符串连接函数,在模糊查询中也可以发挥重要的作用。本文将带你详细了解 concat() 函数的用法,并提供两条实际的示例,以帮助大家更好地理解 concat() 函数。 concat() 函数的语法 concat() 函…

    database 2023年5月22日
    00
  • 在Oracle数据库中同时更新两张表的简单方法

    对于在Oracle数据库中同时更新两张表的简单方法,可以采用以下几种方式实现。 使用触发器 在数据库中创建触发器,当第一张表被修改时,自动更新第二张表的对应数据。下面是一个示例: CREATE OR REPLACE TRIGGER update_second_tableAFTER INSERT OR UPDATE OR DELETE ON first_tab…

    database 2023年5月21日
    00
  • Redhat7.3安装MySQL8.0.22的详细教程(二进制安装)

    Redhat7.3安装MySQL8.0.22的详细教程(二进制安装) 步骤一:下载MySQL二进制安装包 打开MySQL官网 https://dev.mysql.com/downloads/mysql/ 在下载页中选择 “MySQL Community Server” 在 “Select Operating System” 中选择 “Linux-Generi…

    database 2023年5月22日
    00
  • redis部署及各种数据类型使用命令详解

    Redis部署 Redis是一个基于内存的高性能键值型数据库,其特点是高并发、高性能、低延迟。以下是Redis的部署过程: 安装Redis 在官网 https://redis.io/download 下载Redis的稳定版,然后通过一下命令进行安装: $ tar xvzf redis-5.0.5.tar.gz $ cd redis-5.0.5 $ make …

    database 2023年5月22日
    00
  • Redis分布式锁如何实现续期

    在 Redis 分布式锁中,为了避免锁超时导致其他进程获取到锁,需要对锁进行续期操作。实现 Redis 分布式锁的续期可通过以下几个步骤来完成: 在获取锁时,设置锁的过期时间,例如 60 秒。 在获取锁成功之后,启动一个协程或者开启一个定时任务,每隔一段时间(例如 30 秒)对锁进行续期操作。可以通过设置一个新的过期时间来实现续期,例如 60 秒。 锁的续期…

    database 2023年5月22日
    00
  • C#使用开源驱动连接操作MySQL数据库

    如何使用开源驱动程序连接MySQL数据库并在C#应用程序中进行操作呢? 步骤如下: 下载MySQL Connector/NET。 MySQL Connector/NET 是一种用于 .NET 软件开发的驱动程序,它可提供高效率的数据访问和操作 MySQL 数据库的接口。您可以从MySQL官方网站下载最新版的MySQL Connector/NET。 安装MyS…

    database 2023年5月22日
    00
  • mysql基础:mysqld_safe 启动执行流程详解

    MySQL基础: mysqld_safe启动执行流程详解 什么是mysqld_safe mysqld_safe 是一个可执行脚本,用于启动 MySQL 服务器进程(mysqld)。它提供了一些额外的安全性特性来保护 MySQL 服务器免受操作系统级别的故障和攻击,通过运行 mysqld 进程,并提供了一些额外的安全性检查和修正功能来确保 mysqld 进程在…

    database 2023年5月22日
    00
  • Django读取Mysql数据并显示在前端的实例

    下面是一个完整攻略,讲解如何使用Django从MySQL数据库中读取数据并在前端显示。 环境准备 在开始之前,需要准备好以下环境: Python 3.x Django 3.x MySQL及mysqlclient库 数据库设置 在使用Django连接MySQL数据库之前,需要先在settings.py文件中进行相应的配置。按以下步骤操作: 打开settings…

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