基於 MySQL 3.23.23 實測完整複寫部署流程。官方建議生產環境用最新版、主從同版本。
GRANT FILE ON *.* TO replicate@10.1.1.2 IDENTIFIED BY 'passWord';FLUSH PRIVILEGES;my.cnf 加 log-bin,重啟產生二進位日誌SELECT 正常,再關閉my.cnf 加:master-host=10.1.1.1master-user=replicatemaster-password=passWordSHOW SLAVE STATUS;錯誤修正後 SLAVE START 續傳log-bin 重啟GRANT FILE ON *.* TO replicate@10.1.1.1 IDENTIFIED BY 'passWord';master-host=10.1.1.2 等設定,重啟警示:同步延遲不可控,不建議用於負載平衡寫入。
function db_connect() {
$link = @mysql_connect("10.1.1.1", "replUser", "passWord");
if (!$link) $link = @mysql_connect("10.1.1.2", "replUser", "passWord");
return $link;
}
function db_connect_plus() {
$timeout = 15;
if ($fp = @fsockopen("10.1.1.1", 3306, $errno, $errstr, $timeout)) {
fclose($fp);
return mysql_connect("10.1.1.1", "username", "passWord");
}
if ($fp = @fsockopen("10.1.1.2", 3306, $errno, $errstr, $timeout)) {
fclose($fp);
return mysql_connect("10.1.1.2", "username", "passWord");
}
return false;
}
先探測埠口存活再連線,避免主機掛掉導致 PHP 掛起。
SHOW SLAVE STATUS 確保同步