📅  最后修改于: 2023-12-03 15:38:38.178000             🧑  作者: Mango
对于一个大型网站,通常会分别使用多个 MySQL 数据库来存储不同模块的数据。但是在实现上,如何在一个网页上连接多个 MySQL 数据库?本文将介绍两种方案。
PHP 提供了 mysqli
或 PDO
这些数据库扩展来连接 MySQL 数据库,我们可以使用不同变量名分别存储多个连接,例如:
<?php
// MySQL 数据库 1
$host1 = "localhost";
$user1 = "username";
$pass1 = "password";
$dbname1 = "database1";
$con1 = mysqli_connect($host1, $user1, $pass1, $dbname1);
// MySQL 数据库 2
$host2 = "localhost";
$user2 = "username";
$pass2 = "password";
$dbname2 = "database2";
$con2 = mysqli_connect($host2, $user2, $pass2, $dbname2);
?>
在代码中,我们用 $con1
和 $con2
分别存储两个 MySQL 连接。接下来就可以使用这些变量来对指定的数据库进行操作了。
MySQL 主从复制是一种将指定的 MySQL 数据库复制到一个或多个从属数据库的方案,通过这种方式,我们可以将多个 MySQL 数据库同步到两个或更多服务器上。在这个方案中,我们只需在 PHP 代码中使用一个 MySQL 连接,而不必分别建立多个连接。
步骤如下:
<?php
// 添加主服务器 MySQL 连接
$config = new Doctrine\DBAL\Configuration();
$connectionParams = array(
'dbname' => $dbname,
'user' => $user,
'password' => $password,
'host' => $host,
'driver' => 'pdo_mysql',
);
$conn = Doctrine\DBAL\DriverManager::getConnection($connectionParams, $config);
// 添加从属服务器 MySQL 连接
$slaveConnectionParams = array(
'dbname' => $slaveDbname,
'user' => $slaveUser,
'password' => $slavePassword,
'host' => $slaveHost,
'driver' => 'pdo_mysql',
);
$config->setSlaveConnections(array($slaveConnectionParams));
?>
在 Doctrine 的配置中,我们将主连接 $conn
和从属连接 $slaveConnectionParams
设置为一个数组,通过这种方式,我们可以将多个 MySQL 数据库连接在一起,而不必单独为每个 MySQL 数据库创建一个连接。
以上是两种在一个网页上连接多个 MySQL 数据库的方案,具体方案需要根据不同需求和项目实际情况来选择和调整。