HyperDBconfiguration主/从

在服务器2008 R2 IIS 7.5上运行,使用MySQL Master / Slave(也在服务器2008 R2上)以及WordPress 3.7。 它只与WordPress 3.5.2兼容? 如果是这样,是否有任何其他插件来允许主/从设置mysql?

这是我迄今为止所做的:1.我将db.php复制到/ wp-content /文件夹2.编辑wp-config.php文件以使(不是真正的IP地址)define('DB_HOST','192.168 .1.198' ); define('DB_HOST_SLAVE','192.168.1.198'); 3.编辑db-config.php并放在网站的根目录下。

<?php $wpdb->save_queries = false; $wpdb->persistent = false; $wpdb->max_connections = 10; $wpdb->check_tcp_responsiveness = true; $wpdb->add_database(array( 'host' => DB_HOST, 'user' => DB_USER, 'password' => DB_PASSWORD, 'name' => DB_NAME, 'write' => 1, 'read' => 1, 'dataset' => 'global', 'timeout' => 0.2, )); $wpdb->add_database(array( 'host' => DB_HOST_SLAVE, 'user' => DB_USER, 'password' => DB_PASSWORD, 'name' => DB_NAME, 'write' => 0, 'read' => 1, 'dataset' => 'global', 'timeout' => 0.2, )); 

现在,当我把主站点停止加载时,我预料到从站只会将站点设置为只读。 所有我在PHP日志中看到的是它试图连接到192.168.1.198,当我预计读取将故障转移到奴隶,如果它不能连接到192.168.1.199。 这是错误

 WordPress database error 2013-12-26 19:25:40 Can't select global__w - 'referrer' => 'blah.com/wp-admin/', 'server' => , 'host' => 192.168.1.198, 'error' => , 'errno' => 0, 'tcp_responsive' => , 'lagged_status' => 3 for query SELECT option_value FROM wp_options WHERE option_name = 'db_upgraded' LIMIT 1 made by get_option 

现在,如果我编辑db-config.php是这样的

 <?php $wpdb->save_queries = false; $wpdb->persistent = false; $wpdb->max_connections = 10; $wpdb->check_tcp_responsiveness = true; $wpdb->add_database(array( 'host' => DB_HOST_SLAVE, 'user' => DB_USER, 'password' => DB_PASSWORD, 'name' => DB_NAME, 'write' => 0, 'read' => 1, 'dataset' => 'global', 'timeout' => 0.2, )); 

当主人closures时,我可以让站点出现,但是如果奴隶在整个站点停下来的话。 这意味着如果主站启动并且从站closures,则站点closures。

我在全球使用3个MySQL服务器的钨复制器(所有主设备configuration)。 这个configuration正在为我工​​作。

MySQL.Clusterparsing为corosync集群中“主”节点的虚拟IP – 最好只写一个主节点:)

 $wpdb->add_database(array( 'host' => 'MySQL.Cluster', // If port is other than 3306, use host:port. 'user' => DB_USER, 'password' => DB_PASSWORD, 'name' => DB_NAME, 'write' => 1, 'read' => 2, 'dataset' => 'global', 'timeout' => 0.2, )); $wpdb->add_database(array( 'host' => '127.0.0.1', // If port is other than 3306, use host:port. 'user' => DB_USER, 'password' => DB_PASSWORD, 'name' => DB_NAME, 'write' => 2, 'read' => 1, 'dataset' => 'global', 'timeout' => 0.1, ));