MYSQL常见链接错误1130,1045

首先说一下这两种错误的原因,放在一起是因为这两种错误有时候同时出现

用Navicat工具连接

1045 Access denied for user ‘root’@’localhost’ (using password:YES)

这种提示一般情况下是因为数据库密码错误导致

遇到此问题我们需要修改mysql配置文件

注意windows下文件的名字是my.ini,而linux下是my.cnf

都在[mysqld]下面添加

1
skip-grant-tables

skip-grant-tables作为启动参数的作用:MYSQL服务器不加载权限判断,任何用户都能访问数据库。

这样我们就可以不用密码直接设置mysql数据库权限了

1
mysql -u root -p

直接回车

1
use mysql; //使用这个数据库
1
update user set password=password("123456") where user="root"; //修改数据库权限密码为123456
1
flush privileges; //刷新数据库

这样我们的数据库密码已经修改完成了

1
select user,host,password from user;

输入以上代码查看目前数据库权限,password部分应该是加密后的状态

这时我们就可以删除my.ini文件中的skip-grant-tables

重启数据库服务

1
service mysqld restart //CentOS7 重启命令

windows 可以在任务管理器-服务中重启服务


1130 错误 一般是无法远程访问数据库,只允许本地localhost访问

运行以下语句我们来修改权限

1
2
3
4
5
6
mysql -u root -p
mysql>use mysql;
mysql>select 'host' from user where user='root';
mysql>update user set host = '%' where user ='root';
mysql>flush privileges;
mysql>select 'host' from user where user='root';

运行完毕后再次连接测试,若还不行重启mysql服务,或是直接重启电脑

以上就是1045和1130的解决办法,亲测可用