本地环境连接虚拟机中的数据库,虚拟机的防火墙允许从本地主机访问虚拟机的MySQL端口

时间:2024-04-16 17:06:22

要让本地环境可以访问虚拟机中的数据库,您可以按照以下步骤进行设置:

  1. 配置虚拟机网络

    • 确保虚拟机的网络设置为桥接模式,这样虚拟机可以获得与本地网络相同的IP地址段。
  2. 查看虚拟机IP地址

    • 在虚拟机中运行以下命令来查看虚拟机的IP地址:
    ip addr
    
  3. 配置MySQL允许远程访问

    • 在虚拟机中的MySQL配置文件中(通常是/etc/mysql/my.cnf/etc/my.cnf),确保MySQL监听所有网络接口:
      bind-address = 0.0.0.0
      
    • 重启MySQL服务以使更改生效:
      systemctl restart mysql
      
  4. 设置MySQL用户权限

    • 在MySQL中为远程访问设置一个新的用户,并授予该用户从远程主机访问数据库的权限:
    CREATE USER 'your_user'@'%' IDENTIFIED BY 'your_password';
    GRANT ALL PRIVILEGES ON *.* TO 'your_user'@'%' WITH GRANT OPTION;
    FLUSH PRIVILEGES;
    
  5. 防火墙设置

    • 确保虚拟机的防火墙允许从本地主机访问虚拟机的MySQL端口(默认为3306端口)。

5.1. 查看防火墙状态

在虚拟机中运行以下命令来查看防火墙状态:

firewall-cmd --state

5.2. 允许MySQL端口通过防火墙

  • 如果防火墙处于运行状态,您需要允许MySQL端口通过防火墙。假设MySQL默认端口为3306,您可以运行以下命令:
firewall-cmd --zone=public --add-port=3306/tcp --permanent

这将允许TCP流量通过3306端口。
5.3. 重新加载防火墙规则

  • 重新加载防火墙规则以使更改生效:
    sudo firewall-cmd --reload
    

5.4. 验证防火墙规则

  • 确保MySQL端口已经添加到防火墙规则中:
    sudo firewall-cmd --list-ports
    

5.5. 检查防火墙配置

  • 您还可以查看防火墙的详细配置,以确保MySQL端口已正确添加:
    sudo firewall-cmd --list-all
    

通过按照上述步骤设置防火墙规则,您可以确保虚拟机的防火墙允许从本地主机访问MySQL端口,从而使本地环境能够成功连接到虚拟机中的MySQL数据库。

  1. 本地访问
    • 在本地环境中,使用虚拟机的IP地址和MySQL端口来连接到虚拟机中的MySQL数据库:
    mysql -h <虚拟机IP地址> -u your_user -p
    

通过按照上述步骤配置,您应该能够让本地环境成功访问虚拟机中的MySQL数据库。