简单的 MySQL 主从配置.
服务器环境 Ubuntu-8.04.2 base-system + 编译环境. 安装 mysql 请参考本站前面系列文章.
数据库服务器Master, 主机名:DB01, IP: 192.168.1.234
数据库服务器Slave, 主机名:DB02, IP: 192.168.1.235
先配置 Master 的 mysql 环境.
修改mysql的配置文件 my.cnf 确保有下面的信息, 没有加上. 有的话修改成下面这样. 其他的可以保持默认配置.
[mysqld]
log-bin = mysql-bin
server-id = 1#for innodb extra setting.
#innodb_flush_log_at_trx_commit = 1
#sync_binlog = 1
创建测试数据库,数据表.
CREATE DATABASES anjuke USE anjuke CREATE TABLE IF NOT EXISTS `tests` ( `id` int(11) NOT NULL AUTO_INCREMENT, `content` text, `created` timestamp NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ; INSERT INTO `tests` (`id`, `content`, `created`) VALUES (1, 'Hello, First insert', '2009-06-15 10:16:59'), (2, 'This is second insert data', '2009-06-15 10:16:59');
给添加一个账号给 Slave 同步使用.
GRANT REPLICATION SLAVE ON *.* TO repluser@192.168.1.235 IDENTIFIED BY 'testpassword';
添加一个远程master测试账号
GRANT ALL PRIVILEGES ON *.* TO mmroot@192.168.1.230 IDENTIFIED BY 'password';
OK, 简单的 MySQL master 服务器配置到这里.
重启mysql服务, 登入, 查看 master 状态. 如下图:

查看一下原始数据, 如图

OK, Master 数据库已经配置OK, 运行正常.
再配置 Slave 的 mysql 环境.
同样修改 my.cnf 配置文件. 确保下面有如下信息.
[mysqld]
server-id=2
master-host = 192.168.1.234
master-user = repluser
master-password = testpassword
master-port = 3306
master-connect-retry = 120
replicate-do-db = anjuke
保存修改, 重启 mysql 服务. 登入数据库, 可以看到 slave 状态信息. 如下图:

配置正常. 现在用远程账号在 192.168.1.230 上的mysql连接master服务器, 插入一条记录到 tests 表. 可以看到 slave 已经和 master 的数据库和数据一样了.
简单的 MySQL 主从配置就OK了. 当然这个是测试环境使用. 生成环境还需要很多地方的优化配置.