Navicat 连接远程主机的MySQL数据库时,一些常见错误及解决办法

通过Navicat,远程登录MySQL数据库时(以CentOS 7系统为例),经常会碰到以下几种错误:

01. “Error: 1045 - Access denied for user’root’@'localhost '(using password: yes)”.

在这里插入图片描述
错误原因: 当登录MySQL数据库出现 Error 1045 错误时,就表明你输入的用户名或密码错误被拒绝访问了; MySQL服务搭建后,默认root用户是不能进行远程访问连接的。
解决办法如下:

(1)改表法
可能是你的账号不允许从远程登录,只能在localhost本地登录数据库。建议在数据库搭建时,创建一远程连接的用户或者在localhost的主机上将mysql数据库下的"user"表里的"root"用户开启远程登录(把localhost这个值替换为%)。
(2)授权法
授权格式:GRANT 权限 ON 数据库.* TO ‘用户名’ @ ‘登录主机’ IDENTIFIED BY ‘密码’;

进入mysql环境
>mysql –uroot –p
设置mysql数据库密码
mysql> set password for 'root'@'%' =password('英文密码');
修改授权
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mysql数据库密码' WITH GRANT OPTION;  //赋予任何主机访问数据库的权限
mysql> FLUSH PRIVILEGES;  //授权修改生效
mysql> exit;       //退出MySQL服务器

02. “Error: 2003 - Can’t connect to MySQL server on x.x.x.x(10060 “Unknown error”)”.

在这里插入图片描述
错误原因: 当登录MySQL数据库出现 Error 2003- Can’t connect to MySQL server on x.x.x.x(10060 “Unknown error”) 错误时,我们首先做一个分析,导致这种状况出现的几种原因:
a) bind-address 对于连接的ip做了一个限定;
b) 数据库用户只能在指定的ip上连接;
c) 网络,防火墙可能导致的问题。
解决办法如下:

(1)增加远程访问授权
授权格式:GRANT 权限 ON 数据库.* TO ‘用户名’ @ ‘登录主机’ IDENTIFIED BY ‘密码’;

进入mysql环境
>mysql –uroot –p
设置mysql数据库密码
mysql> set password for 'root'@'%' =password('英文密码');
修改授权
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mysql数据库密码' WITH GRANT OPTION;  //赋予任何主机访问数据库的权限
mysql> FLUSH PRIVILEGES;  //授权修改生效
mysql> exit;       //退出MySQL服务器

(2)关闭并禁止firewall防火墙开机启动

systemctl stop firewalld.service //关闭防火墙
systemctl disable firewalld.service //禁止防火墙开机启动
展开阅读全文

没有更多推荐了,返回首页