一、概述
windows 中的 cmd 连接 虚拟机 linux(CentOS 7) 系统的 Mysql 的过程中出现连接失败的问题,在处理这个问题时又延伸出若干问题。
具体问题记录及解决问题的步骤记录如下:
1、虚拟机 Mysql 3306 端口未开放
问题描述
连接失败的主要原因是 虚拟机 3306 端口未开放
比如我们能用 xshell 等远程工具连接虚拟机上的 linux,是因为开放了 22 端口
解决方案
通过 linux 防火墙文件开放 3306 端口
引申问题
Unit iptables.service could not be found
2、Unit iptables.service could not be found
问题描述
在 linux 中 查看防火墙状态或 打开防火墙文件时,提示 Unit iptables.service could not be found
原因是在 CentOS 7 中防火墙由 firewalld 来管理,而非iptables
解决方案
可以原传统的管理方式,或者使用新的命令进行管理
3、Host is not allowed to connect to this Mysql Server
问题描述
通过 防火墙文件开放 3306 端口后,提示 Host is not allowed to connect to this Mysql Server
原因是 Mysql 不允许远程登录,所以远程登录失败了
解决方案
修改并更新相关权限
二、步骤
1、在 linux 上安装 iptables-services
yum install iptables-services
2、编辑防火墙文件打开3306端口
vim /etc/sysconfig/iptables
模仿22端口开放命令添加如图所示的一行即表示对外开放3306端口
3、重启防火墙
service iptables restart
4、设置 Mysql 允许远程登陆
① 在装有 Mysql 的机器上登录 Mysql
mysql -u root -p密码
② 使用 mysql 数据库
use mysql;
③ 更新权限
update user set host = '%' where user = 'root';
执行这句时可能会报错,不用管它。
④ 刷新 Mysql 权限相关表
FLUSH PRIVILEGES;
5、通过本机 cmd 连接虚拟机 linux 上的 Mysql