您的位置:首页 > 运维架构 > Linux

Linux下mysql密码忘记修改办法,解决mysql登陆1045错误

2016-07-18 19:03 966 查看

Linux下mysql密码忘记修改办法,解决mysql登陆1045错误

服务器在登陆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安装目录进行,那就找到安装目录.

命令格式如下:

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


3、登入数据库:

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;


本帖最后由 苇子 于 2015-10-23 16:48 编辑

今天一个朋友的服务器在登陆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安装目录进行

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

命令格式如下:

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


3、登入数据库:

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.

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

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

2.编辑 my.cnf文件

vi /etc/my.cnf




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

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

好了,退出并保存

3.重新启动mysqld

4.登录并修改MySQL的root密码

mysql


进入mysql
use mysql;


更改root密码:

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


刷新数据库

5.将MySQL的登录设置修改回来
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql 数据库 linux