linux虚拟机连接mysql,【MySQL】Windows下用Navicat远程链接虚拟机Linux下MySQL数据库

关于在Windows系统下使用远程链接去连接虚拟机或者远程的数据库的连接失败问题。

一下操作都需要在虚拟机或者远程服务器可以联网的情况下。

首先可以使用

#netstat -ntpl

//--line-number 使用该蚕食可以查看到规则的行号

在虚拟机或者远程服务器中查看网络端口信息

fa4db03db9ca

image.png

如果3306的端口号没打开,则可以使用以下命令将其打开:

#iptables -A INPUT -ptcp --dport 端口号 -j ACCEPT //打开端口(添加规则)

#service iptables restart //重启iptables

另附关闭端口:

#iptables -A INPUT -ptcp --dport 端口号 -j DROP //关闭端口

之后查看防火墙的状态:

#iptables -vnL

fa4db03db9ca

image.png

从此可以看到,3306端口的数据包都是丢弃状态,在此,可以清除防火墙中的规则

#iptables -F

或者关闭防火墙,另附防火墙打开和关闭方法:

#chkconfig iptables on //开启,重启后生效

#chkconfig iptables off //关闭,重启后生效

#service iptables start //开启,立即生效

#service iptables stop //关闭,立即生效

之后使用Navicat远程连接了一下MySQL,但出现了一下错误:

fa4db03db9ca

image.png

这是因为MySQL没有允许远程登录,所以要在MySQL中授权远程登录

首先登录进入到MySQL:

#mysql -h主机地址 -u用户名-p用户密码

手动增加可以远程访问数据库的用户。

方法一、本地登入mysql,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,将"localhost"改为"%"

#mysql -u root -proot

mysql>use mysql;

mysql>update user set host = '%' where user = 'root';

mysql>select host, user from user;

方法二、直接授权(推荐)

从任何主机上使用root用户,密码:youpassword(你的root密码)连接到mysql服务器:

#mysql -u root -proot

mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION;

操作完后需要刷新权限:

FLUSH PRIVILEGES;

这时候再使用Navicat进行远程连接MySQL,连接测试如下图

fa4db03db9ca

image.png

另外:主机名或IP地址那一栏写的是被连接的服务器地址,如果是虚拟机则是虚拟机的地址

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值