主机连接虚拟机Mysql

转自: https://www.cnblogs.com/shihuibei/p/9251591.html

   检查远程的虚拟机是否可以ping通过

  查看虚拟机IP为192.168.38.128

  

  cmd窗口ping 192.168.38.128,出现如下界面说明是可以的  

  

  • 检查虚拟机mysql的端口号是否对外开通

  比如我们能用xshell等远程工具连接虚拟机上的linux,是因为开放了22端口

  查看mysql的端口,在mysql命令行模式下执行以下命令就可以查看,查到的结果是3306

 show variables like '%port%';

  

  查看虚拟机的3306端口是否开放

  cmd下执行telnet 192.168.38.128 3306

  无法执行,别方,这是因为Windows telnet默认是关闭的

  

  按照红框提示开启telnet

  

  重新打开cmd窗口执行命令,结果是无法连接,这是因为虚拟机上的3306并没有对外开放,可以用22的试下效果就知道了

  

  • 开通虚拟机的3306端口  

  查看虚拟机防火墙的状态

systemctl status iptables

  可以看到目前只有22端口对外开放

  

  编辑防火墙文件打开3306端口

vim /etc/sysconfig/iptables

  模仿22端口开放命令添加如图所示的一行即表示对外开放3306端口  

  

  重启防火墙

systemctl restart iptables

  可以看到3306已经开放

  

  • 远程连接虚拟机数据库访问

   端口都开启了,但还是连不上,看提示说明至少已经关联到mysql,不允许是因为权限不够

 

  我也不用root账号了,这里重新创建一个账号并赋予所有权限,之后让权限配置生效,在虚拟机上的mysql命令行模式下执行以下命令

create user 'panda'@'%' identified by '123456';
grant all on *.* to 'panda'@'%';
flush privileges;

  重新使用panda链接数据库,成功了~~~

  

 

### 如何使用 Navicat 连接位于虚拟机中的 MySQL 数据库 #### 配置步骤 为了成功配置 Navicat 以连接到运行在虚拟机上的 MySQL 数据库,需遵循一系列特定的操作流程。 1. **确认虚拟机网络设置** 确认虚拟机的网络适配器已设置为桥接模式或 NAT 模式。这一步骤对于确保主机和其他设备能够访问虚拟机至关重要[^4]。 2. **获取虚拟机 IP 地址** 使用 `ifconfig` 或者 `ip addr show` 命令来查找分配给虚拟机的 IP 地址。该地址用于后续配置中指定目标服务器位置。 3. **验证 MySQL 服务状态** 登录至虚拟机并通过命令行工具检查 MySQL 是否正在运行: ```bash sudo systemctl status mysql.service ``` 如果未启动,则通过如下指令开启服务: ```bash sudo systemctl start mysql.service ``` 4. **允许远程连接** 修改 MySQL 的配置文件 `/etc/mysql/my.cnf` 或相应路径下找到 `[mysqld]` 下面加入 bind-address=0.0.0.0 来接受来自任何地方的请求,并重启 MySQL 服务使更改生效。 5. **创建具有适当权限的新用户** 执行 SQL 查询授予新用户的必要权限以便可以从外部进行管理操作: ```sql CREATE USER 'newuser'@'%' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'%'; FLUSH PRIVILEGES; ``` 6. **防火墙规则调整** 若存在防火墙策略阻止端口通信,在 Linux 上可以利用 ufw 工具开放默认 MySQL 端口号 (通常是 3306): ```bash sudo ufw allow 3306/tcp ``` 7. **Navicat 设置** 启动 Navicat 并新建一个 MySQL 连接对象,输入之前获得的信息如主机名/IP、用户名以及密码完成最后阶段设定。 8. **测试连接** 尝试建立连接并执行简单查询语句检验一切正常工作。 --- #### 常见问题解决方案 - **错误代码 2059**: 此类情况通常是因为客户端尝试使用旧版身份验证插件而引起。可以通过修改账户的身份验证方式解决此问题: ```sql ALTER USER 'yourusername'@'localhost' IDENTIFIED WITH mysql_native_password BY 'yourpassword'; FLUSH PRIVILEGES; ``` - **无法解析主机名称**: 当遇到此类提示时,请核实所提供的主机名是否正确无误;如果适用的话,考虑直接采用 IP 地址代替域名形式。 - **拒绝访问/权限不足**: 对应上述第四个要点提到的内容——确保已经赋予了足够的权限给所使用的账号,并且这些变更已经被刷新应用到了整个系统当中。 - **连接超时**: 可能由于中间有路由器或其他网络安全装置阻挡所致。此时建议排查路由表项或是联系网管人员协助处理。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值