如何让本局域网的用户通过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、点虚拟机中的"编辑"--->"虚拟网络编辑器"出来如下界面:
假设我数据库的端口号是3306,我想把这个数据库开放给局域网上其它的用户访问,那么就应该这样填:
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上的配置为:
注意:可能有时候还是用navcat连不上的情况,这时你要检查你虚拟机上的mysql数据库是否让远程访问了。具体如如让mysql能被远程访问,请百度相关网址。
还有一种情况就是你配对了,但是局域网上的其它机子总是连不上你的机子,那么你把你win10上上网的这个网卡的防火墙给关掉,让别人可以ping得通你。
具体报错:
1130-host . is not allowed to connect to this MySql server,MySQL
报错原因:
是mysql未开启mysql远程访问权限导致。
1.打开mysql自带的user表,找到你想开放的用户把host字段的localhost改为%,如图:
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号端口上,
你就可以用XShell ,
思考:
假设你的centOS上要把80映射出来,如何做呢?