Mariadb主主复制结构区别于主从复制结构。在主主复制结构中,两台服务器的任何一台上面的数据库存发生了改变都会同步到另一台服务器上,这样两台服务器互为主从,并且都能向外提供服务。比主从复制具有更好的性能。
环境说明
需要2台服务器
基于Centos 6.5 、 mariadb 10.0
服务器:ha111 IP:192.168.61.140
服务器:ha222 IP:192.168.61.146
服务器ha111配置
mariadb安装过程略过
my.cnf [mysqld]中启用二进制日志
log-bin=mysql-bin
my.cnf [mysqld]中启用中继日志
relay-log=relay-bin
my.cnf [mysqld]中定义server-id
server-id=140
my.cnf [mysqld]中定义自动增长的id字段的增长方式
auto_increment_offset=1
auto_increment_increment=2
创建一个允许ha222来访问的用户
MariaDB [(none)]> grant replication slave,replication clienton *.* to ‘repluser’@’192.168.61.146’ identified by ‘123456’;
授权有复制权限用户账号,把对方指定为主服务器
MariaDB [(none)]> change master to
>master_host=’192.168.61.146’,
>master_user=’repluser’,
>master_password=’123456’,
>master_log_file=’mysql-bin.000003’,
>master_log_pos=496,
>master_connect_retry=5;
(注意:master_log_file和master_log_pos的值,在另一台服务器上执行show master status 查看)
启动复制,开启IO thread与 SQL thread 线程
start slave;
检查是否已经启动
show slave status\G
下面两项显示Yes即正常
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
服务器ha222配置
mariadb安装过程略过
my.cnf [mysqld]中启用二进制日志
log-bin=mysql-bin
my.cnf [mysqld]中启用中继日志
relay-log=relay-bin
my.cnf [mysqld]中定义server-id
server-id=146
my.cnf [mysqld]中定义自动增长的id字段的增长方式
auto_increment_offset=2
auto_increment_increment=2
创建一个允许ha222来访问的用户
MariaDB [(none)]> grant replication slave,replicationclient on *.* to ‘repluser’@’192.168.61.140’ identified by ‘123456’;
授权有复制权限用户账号,把对方指定为主服务器
MariaDB [(none)]> change master to master_host=’192.168.61.140’,
>mster_user=’repluser’,
>master_password=’123456’,
>master_log_file=’mysql-bin.000003’,
>master_log_pos=496,
>master_connect_retry=5;
(注意:master_log_file和master_log_pos的值,在另一台服务器上执行show master status 查看)
启动复制,开启IO thread与 SQL thread 线程
start slave;
检查是否已经启动
show slave status\G
下面两项显示Yes即正常
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
配置到此完成!
测试
在任意一台服务器上创建一个数据库
# mysql
> CREATE DATABASE dx;
在另一台服务器上查看数据库信息:
# mysql
> SHOW DATABASES;
结果中将显示有一个名为dx的数据库
原文:http://dengxi.blog.51cto.com/4804263/1732634