使用MySQL 5的Master-Master复制在Fedora 8上

使用MySQL 5的Master-Master复制在Fedora 8上 本文档介绍如何使用设置主主机复制 Fedora 8上的MySQL 5。

使用MySQL 5的Master-Master复制在Fedora 8上

版本1.0
作者:Oliver Meyer <o [dot] meyer [at] projektfarm [dot] de>

本文档介绍如何在Fedora 8上使用MySQL 5设置master-master复制。自从版本5以来,MySQL内置了主 - 主复制的支持,解决了自生产密钥可能发生的问题。 在以前的MySQL版本中,主 - 主复制的问题是如果节点A和节点B在同一个表上插入自动递增密钥,则会立即产生冲突。 master-master复制在传统主从复制方面的优点是,您不必修改应用程序,只能对主机进行写入访问,而且更容易提供高可用性,因为如果主器件失败,你还有另一个主人。

这个howto是一个没有任何保证的实用指南 - 它不包括理论背景。 建立这样的系统有许多方法 - 这就是我选择的方式。

1准备

为此,我设置了两个Fedora 8系统(最小安装没有gui等),具有以下配置。

1.1系统1

主机名: server1.example.com
IP: 192.168.0.100

1.2系统2

主机名: server2.example.com
IP: 192.168.0.200

2 MySQL

2.1两个系统上需要的软件包

如果您尚未在两个系统上安装MySQL,都可以通过以下方式安装(客户端和服务器)

yum -y install mysql mysql-server

2.2两个系统上的MySQL服务器初始启动

启动MySQL服务器。

/etc/init.d/mysqld start

2.3 MySQL根密码

2.3.1两种系统

在本地主机上设置MySQL root用户的密码。

mysqladmin -u root password %sql_root_password%

2.3.2系统1

在server1.example.com上设置MySQL root用户的密码。

mysqladmin -u root -h server1.example.com password %mysql_root_password%

2.3.3系统2

在server2.example.com上设置MySQL root用户的密码。

mysqladmin -u root -h server2.example.com password %mysql_root_password%

2.4 MySQL复制用户

2.4.1系统1

创建复制用户 系统2将使用 访问系统1上的MySQL数据库。

mysql -u root -p

GRANT REPLICATION SLAVE ON *.* TO 'slave2_user'@'%' IDENTIFIED BY '%mysql_slaveuser_password%';
FLUSH PRIVILEGES;
quit;

2.4.2系统2

创建复制用户 系统1将使用 访问系统2上的MySQL数据库。

mysql -u root -p

GRANT REPLICATION SLAVE ON *.* TO 'slave1_user'@'%' IDENTIFIED BY '%mysql_slaveuser_password%';
FLUSH PRIVILEGES;
quit;

2.5系统数据库2

我继续假设数据库exampledb已经存在于系统1 - 包含带有记录的表。 因此,我们必须创建一个与系统1上现有数据库名称相同的空数据库。

mysql -u root -p

CREATE DATABASE exampledb;
quit;