首先使用shell登录到linux服务器,使用以下命令连接上linux服务器
[root@localhost ~]# mysql -u服务器账号 -p服务器密码 (注意这里-u和-p后面没有空格)
mysql> grant all PRIVILEGES on 数据库.* to root@'192.168.1.20' identified by '123456' WITH GRANT OPTION;
mysql> flush privileges;
mysql> exit;
这样就授权成功,远程mysql账号、密码、远程客户端IP分别是【root】、【123456】和【192.168.1.20】,理论上在192.168.1.20电脑上就可以使用navicat连接上mysql服务器
如果连接不上,可能出现的问题就是linux服务器的防火墙
打开防火墙配置文件
[root@localhost ~]# vi /etc/sysconfig/iptables
在-A FORWARD -j REJECT --reject-with icmp-host-prohibited这行前面加上
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
然后保存,重启防火墙
[root@localhost ~]#service iptables restart
如果没有出现问题,这样就可以了,再使用navicat连接一下试试
如果有问题:可以试试关闭防火墙:
[root@localhost ~]#service iptables stop
然后再使用navicat连接一下,看看能不能连接上。
如果出现下面的问题
Can't get hostname for your addressConnection closed by foreign host
需要修改数据库配置文件
vim /etc/my.cnf
在[mysqld]节点下新增或修改如下两行
skip-name-resolve #忽略主机名的方式访问
lower_case_table_names=1 #忽略数据库表名大小写
重启MySQL服务就好了
[root@localhost ~]# service mysql restart;