如何让本局域网的用户通过navicat连接win10虚拟机中的centOS7中的mysql

如何让本局域网的用户通过Navicat连接win10虚拟机中的centOS7中的mysql .

环境:

       主机(Win7)外网ip:192.168.1.101

       虚拟机(CentOS7)ip:192.168.184.128

思路:

        把虚拟机中的端口号映射给win10主机的某一个端口号,以后就可以用主机+端口号访问CentOS7中的相关服务了。

比如:将虚拟机的3306端口号映射到win10IP的999端口,那么在局域网上就可以用Navicat这样的数据库工具连接  192.168.184.128:999   访问CentOS中的mysql服务了;   

        同样的,如果把虚拟机中的22号端口映射到win10 ip的1000端口号,那么在局域网上也可以使用ssh,Xshell这样的工具访问 连接 192.168.184.128:1000对CentOS7操作了。

具体的操作步骤如下:

        1、启动虚拟机;启动虚拟机中的CentOS7;

        2、点虚拟机中的"编辑"--->"虚拟网络编辑器"出来如下界面:

如何让本局域网的用户通过navicat连接win10虚拟机中的centOS7中的mysql

如何让本局域网的用户通过navicat连接win10虚拟机中的centOS7中的mysql

假设我数据库的端口号是3306,我想把这个数据库开放给局域网上其它的用户访问,那么就应该这样填:

如何让本局域网的用户通过navicat连接win10虚拟机中的centOS7中的mysql

999   TCP   192.168.184.128:3306  的意思你可以这样理解为:

192.168.1.101:999  就是 192.168.184.128:3306  ,   所以你在局域网上要访问我虚拟机中的数据库,只能通过192.168.1.101:999来访问,   不能通过192.168.184.128:3306来访问。

Navcat上的配置为:

如何让本局域网的用户通过navicat连接win10虚拟机中的centOS7中的mysql

注意:可能有时候还是用navcat连不上的情况,这时你要检查你虚拟机上的mysql数据库是否让远程访问了。具体如如让mysql能被远程访问,请百度相关网址。

还有一种情况就是你配对了,但是局域网上的其它机子总是连不上你的机子,那么你把你win10上上网的这个网卡的防火墙给关掉,让别人可以ping得通你。

具体报错:

  1130-host . is not allowed to connect to this MySql server,MySQL

报错原因:

  是mysql未开启mysql远程访问权限导致。

1.打开mysql自带的user表,找到你想开放的用户把host字段的localhost改为%,如图:

如何让本局域网的用户通过navicat连接win10虚拟机中的centOS7中的mysql

2.例如,你想root使用mypassword从任何主机连接到mysql服务器的话。 

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

  如果你想允许用户myuser从ip为192.168.1.3的主机连接到mysql服务器,并使用mypassword作为密码 
  GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.3' IDENTIFIED BY 
  'mypassword' WITH GRANT OPTION; 

  3、输入命令FLUSH PRIVILEGES; 

  再次远程连接数据库成功。

 

       同样的,你想使用xshell 这样的工具想远程操作虚拟机中的centOS7,那么也应该将虚拟机中的22号端口映射到win10主机上来,比如我是将虚拟机的22号端口映射到win10主机的1000号端口上,

如何让本局域网的用户通过navicat连接win10虚拟机中的centOS7中的mysql

你就可以用XShell ,

如何让本局域网的用户通过navicat连接win10虚拟机中的centOS7中的mysql

思考:

假设你的centOS上要把80映射出来,如何做呢?