原理
简单来说,master将数据库的改变写入二进制日志,slave同步这些二进制日志,并根据二进制日志进行数据重演操作,实现数据异步同步
- 在主库上把数据更改(DDL DML DCL)记录到二进制日志(Binary Log)中。
- 备库I/O线程将主库上的日志复制到自己的中继日志(Relay Log)中。
- 备库SQL线程读取中继日志中的事件,将其重放到备库数据库之上。
Mysql软件安装
yum clean all
yum makecache
cd /sysadmin/manager/LNMP
yum -y install mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql-community-server
systemctl start mysqld
systemctl enable mysqld
systemctl status mysqld.service
主从配置
##Mastar配置
[mysqld]
port = 3306 ###
lower_case_table_names=1 # 不去分别大小写
log-bin=/var/lib/mysql/mysql-bin # 必须开启二进制日志日志
server_id = 1 ###
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
service mysqld restart
grant replication slave on *.* to 'slave'@'%' identified by '123456';
show master status;
##报错参考 https://www.cnblogs.com/mke2fs/p/12386050.html
## Slave配置
[mysqld]
port=3306 ##
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
lower_case_table_names=1 ##
server_id = 2 ##
relay_log = /var/lib/mysql/relay.log ##
service mysqld restart
# slave端设定复制信息
change master to
master_host='192.168.3.200',master_user='slave',master_password='123456',master_port=3306,master_log_file='mysql-bin.000001',master_log_pos=438;
start slave;
show slave status \G;