一、安装配置mysql
参照前篇:centos7 mysql安装
二、配置主从服务器
1、配置主从服务器配置文件
主服务器配置
vi /etc/mycnf
添加
log_bin=mysql_bin 开启二进制人间
server_id=1 设置服务器ID
重启master
systemctl restart mysqld
为slave配置账号
mysql> create user backup@'192.168.121.22' identified by '775120@Lai';
mysql> grant replication slave on *.* to backup@'192.168.121.22';
mysql> flush privileges; (这一步是必须的)
查看配置状况
mysql> show grants for backup@192.168.121.22;
+-------------------------------------------------------------+
| Grants for backup@192.168.121.22 |
+-------------------------------------------------------------+
| GRANT REPLICATION SLAVE ON *.* TO 'backup'@'192.168.121.22' |
+-------------------------------------------------------------+
1 row in set (0.00 sec)
然后查看master参数
show msater status;
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000006 | 154 | | | |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
至此暂停master上的操作,防止修改参数:mysql-bin.000006
从服务器上配置
log_bin=mysql-bin
server-id=2
relay_log=mysql-relay-bin 中继日志
log_slave_updates=1 将复制事件写进自己的二进制日志
read_only=1 只读
说明:1、slave没有必要开启二进制日志,但是在一些情况下,必须设置,例如,如果slave为其它slave的master,必须设置bin_log
2、开启了slave的二进制日志,却没有设置log_slave_updates,然后查看slave的数据是否改变,这是一种错误的配置
3、read_only,它防止改变数据(除了特殊的线程)
重启slave
systemctl restart mysqld
配置slave上的mysql
mysql> change master to master_host='192.168.121.21',
-> master_user='backup',
-> master_password='775120@Lai',
-> master_log_file='mysql-bin.000006',
-> master_log_pos=0;
Query OK, 0 rows affected, 2 warnings (0.01 sec)
MASTER_LOG_POS的值为0,因为它是日志