实验环境:
两台MariaDB服务器,IP分别为: 172.16.2.16 和 172.16.2.17
MariaDB的版本是5.5.36,使用二进制方式安装。已安装完成。
/mydata/data 数据库文件存放目录
/mydata/binlog/ 二进制日志文件存放位置
/mydata/relaylog/ 中继日志存放位置
实验目地:
把两台服务器搭建为两主模型工作。
实验操作过程:
172.16.2.16的配置过程
/etc/my.cnf配置文件[mysqld]段如下
[mysqld] port = 3306 socket = /tmp/mysql.sock skip-external-locking key_buffer_size = 256M max_allowed_packet = 1M table_open_cache = 256 sort_buffer_size = 1M read_buffer_size = 1M read_rnd_buffer_size = 4M myisam_sort_buffer_size = 64M thread_cache_size = 8 query_cache_size= 16M thread_concurrency = 8 auto-increment-increment = 2 设置自动增长的每次增进值,此服务器的增长值为奇数 auto-increment-offset = 1 设置自动增长值的初始值 log-bin=/mydata/binlog/mysql-bin 修改二进制日志文件存放位置 relay-log=/mydata/relaylog/relay-log 中继日志存入位置 binlog_format=mixed server-id= 1 这里使用默认的server-id datadir=/mydata/data 设定数据库存放的目录 sync_binlog = 1 设定二进制日志工作特性为实时把日志写入二进制日志文件
为对方节点授权
MariaDB [(none)]> GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO slaveuser@'172.16.2.17' IDENTIFIED BY 'slavepass'; MariaDB [(none)]> FLUSH PRIVILEGES;
172.16.2.17节点配置信息
/etc/my.cnf配置文件[mysqld]段如下
[mysqld] port = 3306 socket = /tmp/mysql.sock skip-external-locking key_buffer_size = 256M max_allowed_packet = 1M table_open_cache = 256 sort_buffer_size = 1M read_buffer_size = 1M read_rnd_buffer_size = 4M myisam_sort_buffer_size = 64M thread_cache_size = 8 query_cache_size= 16M thread_concurrency = 8 log-bin=/mydata/binlog/mysql-bin relay-log=/mydata/relaylog/relay-log binlog_format=mixed server-id= 2 这里server-id为2 datadir=/mydata/data auto-increment-increment = 2 auto-increment-offset = 2
为对方节点授权
MariaDB [(none)]> GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO slaveuser@'172.16.2.16' IDENTIFIED BY 'slavepass'; MariaDB [(none)]> FLUSH PRIVILEGES;
在双方节点分别连接对方节点,在连接对方前,需要知道对方当前使用的二进制日志文件及文件中事务的位置
在节点一查看当前二进制日志信息,得到使用的日志文件为 mysql-bin.000012 ,最新的事件ID是 676
MariaDB [(none)]> SHOW MASTER STATUS; [object Object]
在第二个节点连接第一个节点
MariaDB [(none)]> CHANGE MASTER TO MASTER_HOST='172.16.2.16', MASTER_USER='slaveuser',MASTER_PASSWORD='slavepass',MASTER_LOG_FILE='mysql-bin.000012', MASTER_LOG_POS=676; MariaDB [(none)]> START SLAVE;
在节点一查看当前二进制日志信息,得到使用的日志文件为 mysql-bin.000006 ,最新的事件ID是 245
MariaDB [(none)]> SHOW MASTER STATUS;
MariaDB [(none)]> CHANGE MASTER TO MASTER_HOST='172.16.2.17', MASTER_USER='slaveuser',MASTER_PASSWORD='slavepass',MASTER_LOG_FILE='mysql-bin.000006', MASTER_LOG_POS=245; MariaDB [(none)]> START SLAVE;
配置完成后测试:
1,在第一个节点上创建数据库,然后到第二个节点查看,如果有说明复制成功。
2,在第二个节点上为第一个节点创建的数据库创建表,在第一个节点查看,如果有说明双向复制没有问题。