您的位置:首页 > 数据库 > MySQL

MySQL密码权限过期以及各种问题的处理方法合辑

2020-06-01 05:05 274 查看

MySQL版本:5.7

今天又开始捣鼓我的MySQL了。打开Navicat发现之前的链接都没法用了,新建链接报错:

2003-Can't connect to MySql server on 'localhost'(10061)

我先打开了MySQL 5.7 命令行窗口,显示

Enter password:

1. 输入密码后MySQL命令行窗口直接关闭。尝试重新打开Navicat新建连接报错:

1862:your password has expired

搜索解决方法:
进入MySQL安装目录bin文件夹,找到mysqld.exe文件,双击打开。

2. 发现mysqld.exe闪退。(淦)

再次搜索解决方法
在cmd中输入mysql -uroot -p

3. 出现1045(28000)错误如下:

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

叒搜索解决方法:

进入cmd,cd到MySQL安装目录中的bin文件夹

mysql -uroot -p 回车

不用管password 回车

就能直接进入MySQL登陆成功Welcome的页面

修改密码:(这三条语句都试试,因为版本不一样MySQL语法也不一样,不对的会报错)

set password for 'root'@'localhost'=password('新密码');
UPDATE user SET password=PASSWORD(‘新密码’)WHERE user=’root’;
update user set password=password("新密码") where user="root";

我的MySQL 5.7语法是:mysql> set password for 用户名@localhost = password(‘新密码’);

提示:Query OK, 1 rows affected (0.04 sec)Rows matched: 1 Changed: 1 Warnings: 0
(出现证明操作成功)

你以为这就结束了?too young too sample!
4. 我再次打开Navicat,试图建立链接,然后报错:

1045-Access denied for user 'root'@'localhost

原因是没有权限,然后再次搜索解决方法:
在命令行窗口输入:

grant all privileges on *.* to 'root'@'192.168.0.103' identified by '123456';

如果你是本地登录的,那么:

grant all privileges on *.* to 'root'@'localhost' identified by '123456';

当然你也可以直接改成这样:

grant all privileges on *.* to 'root'@'%' identified by '123456';

就可以给所有ip都设定root登陆了。

如果授权成功,会有Query OK的提示。

然后:

flush privileges;

这个是刷新授权的意思,如果没有这句话,授权可能无法立刻生效。

最终效果如下:

尝试Navicat新建链接测试:操作成功!(撒花)

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐