gpt4 book ai didi

mysql - 如何使用另一个虚拟机访问托管在虚拟机上的 MySQL 服务器?

转载 作者:行者123 更新时间:2023-12-04 18:59:33 24 4
gpt4 key购买 nike

我使用 VirtualBox 创建了 2 个 Ubuntu 20.04 虚拟机。我在一个 VM 上有一个 Django 应用程序,在另一个 VM 上有一个 MySQL DB。如何使用第一个 VM 访问 MySQL 数据库?
我使用 ifconfig 输出中的 inet 作为 IP 地址
我尝试了什么:
在具有 MySQL 数据库的 VM 上:
-> 将 '/etc/mysql/mysql.conf.d/mysqld.cnf' 中的 'bind_adress' 字段更改为 '0.0.0.0'
-> 使用 CREATE USER 'test'@'IP_Address1' IDENTIFIED BY 'password'; 创建了一个新用户
-> 运行“sudo ufw 允许从 IP_Address1 到任何端口 3306”
在具有 Django 应用程序的 VM 上:
-> 尝试使用 mysql -u 'test' -h 'IP_ADDRESS2' -p 连接到虚拟机
我得到的错误:
“未知的 MySQL 主机‘地址’”
PS:
我使用 File->Preference->Network 在 VirtualBox 上创建了一个 NAT 网络,并将两个 VM 连接到网络并将混杂模式设置为“全部允许”

最佳答案

您如何或在哪里定义 IP_Address1 和 IP_ADDRESS2?
具体来说,当您使用 CREATE USER 查询时,您的数据库机器需要知道客户端机器的 IP 地址是什么。因此,IP_Address1 必须对该机器“已知”。也许您在发布问题时只是隐藏了 IP 地址,但在这两种情况下使用实际 IP 地址可能会更容易,直到您获得连接。
例如,如果您的数据库机器是 172.18.1.1,而您的客户端机器是 172.18.1.2,那么您应该在上面列出的命令中使用这些 IP 地址
使用创建了一个新用户

"CREATE USER 'test'@'172.18.1.2' IDENTIFIED BY 'password';"
...在这里您定义 的IP 地址客户联系。
然后在客户端机器上:
"mysql -u 'test' -h '172.18.1.1' -p"
...在这里,告诉客户 DB的IP地址机器
更重要的是,您可能还必须在其配置设置中将数据库公开给本地网络。如果两台机器不在同一个本地子网上,您还必须处理任何路由问题。
有几篇文章描述了如何配置 MySQL 进行网络访问,例如: https://www.digitalocean.com/community/tutorials/how-to-allow-remote-access-to-mysql

关于mysql - 如何使用另一个虚拟机访问托管在虚拟机上的 MySQL 服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65159891/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com