解决MySQL忘记密码的五种方法(mysql忘记了密码)
MySQL忘记密码可能是每个MySQL用户最常遇到的问题之一,之所以这么多人碰到这个问题,是由于MySQL默认没有忘记密码功能,因此当用户忘记密码时,只能采用其他方法来解决。本文将为大家介绍解决MySQL忘记密码的五种方法。
首先,通过跳过MySQL的安全检查,连接到MySQL服务器,并且重置密码,可以采用如下代码:
# 停止MySQL停止服务器
sudo service mysql stop
# 启动MySQL服务器,跳过验证sudo mysqld_safe --skip-grant-tables
# 连接到MySQLmysql -u root
# 重置密码mysql> update mysql.user set authentication_string=PASSWORD("新密码") where user="root";
# 使更改生效mysql> flush privileges;
其次,利用MySQL安装文件my.ini,设置MySQL配置文件,将参数skip-grant-tables 改为yes,并且重启MySQL服务,省略掉密码验证,也可以更改忘记的MySQL密码:
# 找到my.ini的路径
sudo find / -name my.ini
# 找到[mysqld],添加该参数skip-grant-tables=yes
# 重启MySQLsudo /etc/init.d/mysql restart
# 便可以不输入密码登录,重置密码mysql>UPDATE mysql.user SET Password=PASSWORD("新密码") WHERE User="root";
# 使更改生效mysql>FLUSH PRIVILEGES;
第三种方法,利用.cnf 文件,这是每个MySQL用户安装完MySQL后都会生成的一个配置文件,里面可以写入MySQL地址,帐号,密码等信息,因此如果没有忘记密码,只要更改该文件中的密码,就可以登录MySQL服务器:
# 打开配置文件
sudo vi .cnf
# 找到mysql用户名,并且更改密码password =rootpassword
这样就可以直接登录MySQL,而不用输入忘记的密码。
第四种方法,主要是利用一个工具,也就是mysqlhotcopy,可以帮助用户快速的备份数据,从而恢复用户的密码:
# 在shell里,运行mysqlhotcopy命令
mysqlhotcopy -uroot -poldpassword /usr/local/mysql/data /data_bak
# 重新安装MySQL,并且更改MySQL配置文件# 恢复数据
mysqlhotcopy -urestore-user -prestore-password -l /data_bak /usr/local/mysql/data
第五种方法,也可以硬件重装系统,恢复回初始状态,再安装MySQL,MySQL的账号及密码都回复到初始默认的,此时就可以成功地登录MySQL服务器了。
以上五种方法可以帮助MySQL用户解决忘记密码的问题,不同的方法适用于不同的场景,不过大部分情况都可以通过这五种方法来轻松解决MySQL忘记密码的问题。