我们在 OVH 上有一个带有 proxmox 的专用服务器。这个想法是在本地连接容器,但也通过互联网连接。到目前为止我有2个容器。
我为本地 IP 添加了一个桥接网络,并且该网络正在工作,因为我能够相互 ping 容器。
还将 bind-address=192.168.1.3
添加到 my.cnf。
1 个容器正在运行 apache + php 7.2 (192.168.1.3)
另一个容器正在运行 MySQL。 (192.168.1.2)
问题
我的 MySQL 一直显示 SQLSTATE[HY000] [2002] 连接超时
这是我的 php 代码:
<?php
/**
* Configuration for database connection
*
*/
$host = "192.168.1.2";
$username = "root";
$password = "root";
$dbname = "test";
$dsn = "mysql:host=$host;dbname=$dbname";
$options = array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
);
try
{
$connection = new PDO("mysql:host=$host", $username, $password, $options);
$sql = file_get_contents("data/init.sql");
$connection->exec($sql);
echo "Database and table users created successfully.";
}
catch(PDOException $error)
{
echo $sql . "<br>" . $error->getMessage();
}
根据我的理解,代码是正确的,所以它一定与我的 mysql 配置有关。
我确信这确实很简单,但我在这方面浪费了很多时间。
最佳答案
尝试从 Apache、PHP 容器telnet 192.168.1.2 3306
。可以连接吗?
确保MySQL的监听端口是3306,如果是其他则相应调整PHP代码。还要确保 iptables 不会阻止任何传入连接。另请确保您对 root
以及您需要从其他主机获得权限的任何其他用户拥有正确的权限。
此外,请在对 MySQL 进行任何配置更改时检查是否重新启动服务。
关于php - 使用本地网络进行数据库连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49282881/