likes
comments
collection
share

使用 Navicat 连接远程 MySQL 数据库

作者站长头像
站长
· 阅读数 10

登陆数据库

mysql -h {端口号} -u root -p {密码}

创建用户用来远程连接

-- 第一个 mysql_lbh 表示用户名,% 表示所有的电脑都可以连接,也可以设置某个 ip 地址运行连接,第二个 mysql_lbh 表示密码
GRANT ALL PRIVILEGES ON *.* TO 'mysql_lbh'@'%' IDENTIFIED BY 'mysql_lbh' WITH GRANT OPTION;
-- 命令立即生效
flush privileges;

查询数据库的用户

SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;
-- 退出 MySQL
exit;
使用 Navicat 连接远程 MySQL 数据库

设置 Navicat 连接

使用 Navicat 连接远程 MySQL 数据库

点击测试连接看到如下内容表示成功:

使用 Navicat 连接远程 MySQL 数据库

注意问题

1)在输入 mysql -u root -p 时,显示 cannot connect to mysql server... 这种错误,后来发现是没有打开 MySQL。所以在以上操作之前记得看看 MySQL 有没有打开:

service mysql status # 查看有没有打开服务
service mysql start # 打开服务
service mysql stop # 停止服务
service mysql restart # 重启服务 

2)在进行上述连接后,用 Navicat 远程连接 MySQL,发现还是不可以,是因为防火墙把 3306 端口屏蔽了。所以要设置防火墙:

# 设置防火墙允许 3306 端口
vi /etc/sysconfig/iptables
# 添加
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
# 注意添加在 -A RH-Firewall-1-INPUT -j REJECT –reject-with icmp-host-prohibited 之前,否则可能导致规则不生效
# 重启防火墙
service iptables restart

解决 Mysql 无法远程连接的问题

  1. MySQL 的端口是否正确 通过 netstat -ntlp 查看端口占用情况,一般情况下端口是 3306。

  2. 检查用户权限是否正确 MySQL 库的 user 表里有两条记录:host 分别为 localhost 和 % (为了安全,% 可以换成你需要外部连接的 IP)。

  3. 检查服务器厂商控制台是否开放防火墙 3306 端口