(一) 安装相同版本的MariaDB。 这里我使用yum 安装1) master:rpm --import http://yum.mariadb.org/RPM-GPG-KEY-MariaDBecho '# MariaDB 10.0 CentOS repository list - created 2014-03-15 08:00 UTC# http://mariadb.org/mariadb/repositories/[mariadb]name = MariaDBbaseurl = http://yum.mariadb.org/10.0/centos6-amd64gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDBgpgcheck=1'>>/etc/yum.repos.d/MariaDB.repoyum clean all#Installing MariaDB with YUM##########################################################yum -y install MariaDB-server MariaDB-client#加入启动项###########################################################################chkconfig --levels 235 mysql on#start MariaDB########################################################################/etc/init.d/mysql start#设置mysql密码及相关设置##############################################################mysql_secure_installation#移动mysql配置文件cp -p /etc/my.cnf /etc/my.cnf.bakmv /etc/my.cnf /data/conf/ln -s /data/conf/my.cnf /etc/#移动mysql数据库cp -rp /var/lib/mysql /var/lib/mysql-bakmv /var/lib/mysql /data/ln -s /data/mysql /var/lib/# 添加防火墙规则/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT/etc/rc.d/init.d/iptables save/etc/init.d/iptables restart2) slave 执行同样的操作(二) 主服务器上设置一个远程用户允许从服务器通过此用户访问主服务器上的数据MariaDB [(none)]> GRANT REPLICATION SLAVE ON *.* TO 'slave'@'192.168.3.133' IDENTIFIED BY '123456'; (允许用户slave通过192.168.3.133 复制当前master上的数据)MariaDB [(none)]> FLUSH PRIVILEGES; (三) 修改主数据库的配置文件my.cnf,开启BINLOG,并设置server-id的值(server_id值可以是整数型的数字(1 ~ 2^31-1), 在同一个复制组(replicating group)中的每台服务器的server_id都必须是唯一的),修改之后必须重启Mysql服务[root@localhost ~]# vi /data/conf/my.cnf log-bin=/data/mysql/mysql-bin.logserver-id = 1binlog-ignore-db=mysql,information_schema,performance_schema (忽略同步的数据库)binlog-do-db=masterslavetest (需要复制的数据库名,如果复制多个数据库,重复设置这个选项即可)replicate-ignore-db=mysql,information_schema,performance_schema(忽略同步的数据库)replicate-do-db=masterslavetest (需要复制的数据库名,如果复制多个数据库,重复设置这个选项即可)# 平滑加载mysql配置文件 [root@localhost mysql]# service mysql reload# 查看主服务器当前二进制日志名和偏移量,确定当前点, 主要是方便从服务器复制数据。MariaDB [(none)]> show master status\G;# 重置masterMariaDB [(none)]> reset master;(四) 主服务器上增加数据库,添加数据表,插入数据。然后对我们主服务器进行锁表操作。查看当前主服务器上查看当前点的偏移量。我们从当前时间点开始把数据同步到从服务器master:MariaDB [(none)]> create database masterslavetest; (主服务器添加数据库。等下我们就是用这个数据库来进行主从同步实验)MariaDB [(none)]> use masterslavetest;MariaDB [masterslavetest]> create table t1(id int,name varchar(20));MariaDB [masterslavetest]> insert into t1 values(1,'name1');MariaDB [masterslavetest]> flush tables with read lock; (为了防止数据不同步,我们对主服务器进行读锁)Query OK, 0 rows affected (0.00 sec)MariaDB [masterslavetest]> show master status\G; (# 主服务器上查看当前点的偏移量)*************************** 1. row *************************** File: mysql-bin.000001 Position: 779 Binlog_Do_DB: Binlog_Ignore_DB: mysql,information_schema,performance_schema1 row in set (0.00 sec)ERROR: No query specified(五) 导出主服务器上的数据[root@localhost mysql]# mysqldump -u root -p masterslavetest > /root/masterslavet(六) 1)配置从服务器[root@localhost ~]# vi /data/conf/my.cnf log-bin=/data/mysql/mysql-bin.logserver-id = 100 (和主服务器不能相同)binlog-ignore-db=mysql,information_schema,performance_schema (忽略同步的数据库)binlog-do-db=masterslavetest (需要复制的数据库名,如果复制多个数据库,重复设置这个选项即可)replicate-ignore-db=mysql,information_schema,performance_schema(忽略同步的数据库)replicate-do-db=masterslavetest (需要复制的数据库名,如果复制多个数据库,重复设置这个选项即可)后面四项和主服务器配置相同2)重启从服务器3)在从服务器上指定主服务器和同步点MariaDB [(none)]> change master to master_host='192.168.3.132',master_user='slave',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=779;4)开启slave MariaDB [masterslavetest]> start slave;5) 查看slave状态MariaDB [masterslavetest]> show slave status\G;*************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 192.168.3.132 Master_User: slave Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysql-bin.000002 Read_Master_Log_Pos: 536 Relay_Log_File: localhost-relay-bin.000002 Relay_Log_Pos: 706 Relay_Master_Log_File: mysql-bin.000002 Slave_IO_Running: Yes (这里几项是yes 表示成功) Slave_SQL_Running: Yes Replicate_Do_DB: masterslavetest