mysql root没有权限的问题解决

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

前两天也偶尔出现这个错误,也没在意,因为我重新修改一下mysql的root密码后又可以用了,但昨天却不行,我把root密码修改以后虽然当时能用, 一旦重新进入就都不能用了,可我的密码明明没有错啊?今天终于找到了原因,是权限问题,大家可以参考着下面两篇文章去看一下: 
http://topic.csdn.net/t/20060117/15/4521496.html# 
http://doc.99net.net/doc/database/1076488199/1076549732.html 
由于以前从来没有遇到过这种情况,故把解决方法记录于此,以便今后自己查阅,具体方法就是你在改root密码的时候再加上一句给权限的语句: 

grant all on mysql.* to 'root'@'localhost' identified by 'password'; 

最后那个password即是你要修改的root用户的密码 

MySql数据库服务和往常一样被正常启动,但是当我打开Navicat for MySql 的时候蛋疼的一幕发生了。废话少说看截图吧。


不知道你的图图是不是这样的。

解决办法如下:


1.

找到[      C:\Program Files\MySQL\MySQL Server 5.5\my.ini     ]这个文件。

编辑该文件在文件最后添加一行代码【skip-grant-tables】,保存文件并关闭。

2.

重启MySql5服务

3.

修改root账号的密码;

打开doc窗口,

接着执行命令【mysql -u root -p】不用密码直接进入。

继续执行命令【use mysql】

继续执行命令【update user set password=password("root") where user="root";】

最后一个命令是将用户root的密码修改成了root

4.

还原[      C:\Program Files\MySQL\MySQL Server 5.5\my.ini     ]配置文件

重启MySql5服务

用户:root

密码:root

OK!成功连接MySql5。Thank you!



Got error: 1449: The user specified as a definer (''@'%') does not exist whe

经以上排查,确认应该是schedule 数据库在使用状态,所以导出数据时报错,在mysqldump时使用 -x 选项解决此问题。

--lock-all-tables,-x

在开始导出之前,提交请求锁定所有数据库中的所有表,以保证数据的一致性。这是一个全局读锁,并且自动关闭 --single-transaction 和 --lock-tables 选项。

[ptmind@tz-manage01 ~]$ mysqldump -uroot  -p2008 -h192.168.18.52 -x 数据库名 >/tmp/schedule.sql


你可能感兴趣的:(mysql)