简述
Navicat Premium 是一套数据库开发工具,让你从单一应用程序中同时连接 MySQL、MariaDB、MongoDB、SQL Server、Oracle、PostgreSQL 和 SQLite 数据库。它与 Amazon RDS、Amazon Aurora、Amazon Redshift、Microsoft Azure、Oracle Cloud、MongoDB Atlas、阿里云、腾讯云和华为云等云数据库兼容。你可以快速轻松地创建、管理和维护数据库。
在使用 Navicat 远程连接 MySQL 数据库时,经常会出现一些错误,今天我们来分享一下经验。
本例中采用的是navicat premium 12.1,mysql为安装在centos7 上5.7.3。
新建连接
打开 Navicat,选择:连接 -> MySQL,这时会出现一个新窗口,让你输入一些基本信息:
新建连接
输入完成之后,点击“测试连接”按钮,便可以测试是否能正常连接!
常见错误
在连接数据库的过程中,经常会出现一些错误。下面我们列出了具体的错误信息,以及相应的解决方案!
错误一
当第一次连接时,很有可能会出现:
这说明所连接的帐号没有远程连接的权限,只能在本机(localhost)登录。
第一种方法(不推荐)
这时可以更改 MySQL 数据库里的 user 表里的 host 项,将 localhost 改称 % 即可:
mysql> use mysql
mysql> update user set host = '%' where user = 'root';
mysql> flush privileges;
//这种方法是直接给予root的远程登录权限,并不安全。推荐新建账户对特定数据库进行操作。
第二种方法(推荐)
mysql> grant all privileges on *.* to 'username'@'%' identified by'MyPass1234!';
//第一个表示数据库,第二个表示数据库的表。username是新创建的用户名,MyPass1234!是用户登录密码。
mysql>flush privileges;
再次连接,还有可能遇到防火墙的问题,现在配置防火墙。
登录centos7的root账户。
1、关闭系统默认防火墙firewalld,并禁止开机运行
systemctl stop firewalld
systemctl disable firewalld.service
2、检查防火墙状态
service iptables status
3、安装防火墙
yum install -y iptables
4、安装iptables服务
yum install iptables-services
5、编辑防火墙规则,允许80和3306端口
vim /etc/sysconfig/iptables
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
#添加上面两条规则
6、重启防火墙使配置生效
systemctl restart iptables.service
7、设置防火墙为开机启动
systemctl enable iptables.service
连接成功。