关于使用Navicat for MySQL创建连接的2003错误解决方案

关于使用Navicat for MySQL创建连接的2003错误解决方案

环境提要:

系统环境:		Linux(CentOS 7)
MySQL版本:		5.7
Navicat版本:	11
额外使用工具:	XShell

前注:

    服务器提供商为百度云,CentOS 7在此之前安装了LAMP,只安装了Apache和MySQL5.7。在正式解决这个问题之前Navicat使用SSH连接数据库。
    按照本人理解,SSH连接方式即为先连接服务器,后使用localhost访问数据库。因为XShell走的是SSH,以此推测。
    随后因本人懒得在本地安装MySQL,所以想直接连接云服务器的数据库,JDBC连接得解决直连数据库2003错误。

解决方案:

    1、检查服务器防火墙,甚至可以通过service iptables stop关闭防火墙,对于基础练习可以采取这个方案。
        建议修改服务提供商的安全组策略,百度云控制台中的安全组默认将所有端口开放,如果需要修改,可以直接编辑或新建。注意:新建安全组策略需要在实例中绑定。
    2、在my.cnf文件中添加bind-address = 0.0.0.0;绑定0.0.0.0后即面向所有IP连接,寻找解决方案时有遇到因为localhost而不能访问的案例。
    3、因为能通过SSH连接数据库,因此直接通过Navicat连接数据库 MySql下的User表,修改host字段下,任意默认字段为%。注意:本人默认host字段下有localhost和127.0.0.1两条记录。修改任意即可。或通过Linux登陆MySql后操作数据库,如下:

mysql> use mysql;
mysql> grant all privileges on portal.* to root@实例名称 identified by ‘root’;
mysql> update user set host = ‘%’ where user = ‘root’;
mysql> select host, user from user;
mysql> flush privileges;

注意:如果出现数据库密码错误也可以通过修改User表中

update user set authentication_string = password(‘root’)

以上为解决2003错误的方案,如有错误,欢迎指正。

你可能感兴趣的:(Mysql)