Mysql密码忘记修改办法,解决登陆mysql1045问题

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

今天一个朋友的服务器在登陆phpmyadmin的时候提示1045错误,然后进入ssh后登陆数据库仍是1045错误。网上找了各种办法都不成功。

提示如下:

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

首先我想到的是进入安全模式进行密码重置,虽没有成功, 但我还是附上方法:

1、停用mysql服务:

/etc/rc.d/init.d/mysqld stop
或者是
service mysqld stop

2、输入命令:

mysqld_safe --user=mysql --skip-grant-tables --skip-networking &

根据环境不同可能会不成功,提示你要进入mysql安装目录进行

那就找到安装目录,我这示例目录是  /alidata/server/mysql  这个常见于阿里服务器的一键安装包。

命令格式如下:

/alidata/server/mysql/bin/mysqld_safe --user=mysql --skip-grant-tables --skip-networking &

3、登入数据库: 

这个地方特别注意一下,一定要新建一个ssh窗口,登陆这台服务器

mysql -u root mysql

没有密码直接进入mysql

4、进入mysql

 use mysql;

结果如下:
Database changed 

5、更改root密码:

UPDATE user SET Password = password ( '新密码' ) WHERE User = 'root';

结果如下:

Query OK, 3 rows affected (0.00 sec) Rows matched: 3 Changed: 3 Warnings: 0
刷新数据库

FLUSH PRIVILEGES;

结果如下:
Query OK, 0 rows affected (0.00 sec)
千万不要忘记在mysql中操作的每条命令后面都要有“;”的。

最后退出

mysql> quit

重启mysql

/etc/rc.d/init.d/mysqld restart
或者是
service mysqld restart

用root登陆mysql

mysql -uroot –p
Enter password:新密码

登陆成功!

下面我要说的方法是上面这种方法不成功的时候的解决办法,这个才是本文的重点!

也不是什么新方法,很多人其实也都会的。

1.首先确认服务器出于安全的状态,也就是没有人能够任意地连接MySQL数据库。因为在修改的过程中任何人都可以登陆mysql修改用户密码的。

我的办法是停止了apache或是nginx服务。

2.编辑 my.cnf文件

vi /etc/my.cnf

如下图所示:

QQ截图20151023025148.png

我们在[mysqld]的启动选项里面加入 skip-grant-tables 其实就是跳过授权表。

原代码如下:

[client]
port            = 3306
socket          = /tmp/mysql.sock
[mysqld]
port            = 3306
socket          = /tmp/mysql.sock
skip-external-locking
log-error=/alidata/log/mysql/error.log
key_buffer_size = 16M
max_allowed_packet = 1M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M

修改后如下:

[client]
port            = 3306
socket          = /tmp/mysql.sock
[mysqld]
port            = 3306
socket          = /tmp/mysql.sock
skip-grant-tables
#skip-external-locking
log-error=/alidata/log/mysql/error.log
key_buffer_size = 16M
max_allowed_packet = 1M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M

原文件里面有个 skip-external-locking 我在前面加了# 将它注释掉了!

好了,退出并保存 


:wq!

3.重新启动mysqld 

service mysqld restart

结果如下: 
Stopping MySQL: [ OK ] 
Starting MySQL: [ OK ]
4.登录并修改MySQL的root密码 

mysql 

结果如下:


Welcome to the MySQL monitor. Commands end with ; or \g. 
Your MySQL connection id is 3 to server version: 3.23.56 
Type 'help;' or '\h' for help. Type '\c' to clear the buffer. 


 use mysql;

结果如下:
Database changed 

更改root密码:

UPDATE user SET Password = password ( '新密码' ) WHERE User = 'root';

结果如下:

Query OK, 3 rows affected (0.00 sec) Rows matched: 3 Changed: 3 Warnings: 0
刷新数据库

FLUSH PRIVILEGES;

结果如下:
Query OK, 0 rows affected (0.00 sec)

5.将MySQL的登录设置修改回来 

vi /etc/my.cnf 

将刚才在[mysqld]的段中加上的skip-grant-tables删除,并把注释的部分改回来。
保存并且退出vi

6.重新启动mysqld 

service mysqld restart 

Stopping MySQL: [ OK ] 
Starting MySQL: [ OK ]


最后启动刚才停止的服务


service httpd restart
service nginx restart

好了,进入phpmyadmin不再有1045提示了!


相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
关系型数据库 MySQL 数据库
MySQL忘记root密码、远程无法连接的解决方法
MySQL忘记root密码、远程无法连接的解决方法
|
3月前
|
Ubuntu 关系型数据库 MySQL
百度搜索:蓝易云【ubuntu下Mysql安装与root密码重置教程】
请注意,以上步骤是针对Ubuntu系统的。如果你使用的是其他Linux发行版,请相应地调整命令。
110 1
|
5月前
|
存储 关系型数据库 MySQL
Centos Mysql忘记密码,修改密码
Centos Mysql忘记密码,修改密码
312 0
|
26天前
|
SQL 关系型数据库 MySQL
阿里云MySQL数据库价格、购买、创建账号密码和连接数据库教程
阿里云数据库使用指南:购买MySQL、SQL Server等RDS实例,选择配置和地区,完成支付。创建数据库和账号,设置权限。通过DMS登录数据库,使用账号密码访问。同地域VPC内的ECS需将IP加入白名单以实现内网连接。参考链接提供详细步骤。
366 3
|
1月前
|
关系型数据库 MySQL 数据库
【MySQL】——忘记密码后如何修改密码
【MySQL】——忘记密码后如何修改密码
40 0
|
8月前
|
关系型数据库 MySQL Linux
Linux登录mysql忘记密码Access denied for user ‘root‘@‘localhost‘ (using password: YES)错误
Linux登录mysql忘记密码Access denied for user ‘root‘@‘localhost‘ (using password: YES)错误
77 0
|
4月前
|
关系型数据库 MySQL Linux
CentOS7下忘记MySQL数据库root密码与密码过期
CentOS7下忘记MySQL数据库root密码与密码过期
120 0
|
6月前
|
SQL 网络协议 关系型数据库
【MySQL用法】在MySQL登录时出现Access denied for user ‘root‘@‘localhost‘ (using password: YES) 拒绝访问,并可修改MySQL密码
【MySQL用法】在MySQL登录时出现Access denied for user ‘root‘@‘localhost‘ (using password: YES) 拒绝访问,并可修改MySQL密码
118 1
|
8月前
|
关系型数据库 MySQL 数据库
MySQL忘记root密码的解决方法
MySQL数据库多次输入密码错误再登陆或者不输入密码会提示如下错误信息,如下图:
134 0
|
9月前
|
数据可视化 关系型数据库 MySQL
5.6版本MySQL安装教程以及完全卸载干净MySQL的办法(二)
5.6版本MySQL安装教程以及完全卸载干净MySQL的办法
72 0