环境准备:
搭建虚拟机和安装Mysql之前的文章中已经涉及,在此不再赘述。
主从 | IP | Mysql账号密码 |
---|---|---|
主 | 192.168.213.4 | root/Root1234! |
从 | 192.168.213.5 | root/Root1234! |
配置my.cnf
一般存放于/etc/
。
server-id = 1 #服务器 id,随意,但要唯一
log-output=NONE
general-log=0
slow-query-log=0
long_query_time=10
log-bin =/var/lib/mysql/binLog/mysql-bin #二进制文件存放路径
binlog_format=row
expire_logs_days=20
#binlog-ignore-db=mysql #不同步的数据库
创建同步用的账号:
创建用户 我这里用户名为asyncuser,注意这里的ip是从库服务器的ip
CREATE USER 'asyncuser'@'192.168.213.5' IDENTIFIED WITH mysql_native_password BY 'Asyncuser1234!';
给主从复制账号授权
grant replication slave on *.* to 'asyncuser'@'192.168.213.5';
重启主数据库:
systemctl stop mysqld
systemctl start mysqld
查看binLog状态:
show master status;
记住File和Poistion的值,后面设置从数据库同步时需要。
和主数据库配置一样:
my.cnf
server-id = 4
log-output=NONE
general-log=0
slow-query-log=0
long_query_time=10
log-bin =/var/lib/mysql/binLog/mysql-bin
replicate-ignore-db=mysql,information_schema,performance_schema #不同步的数据库
重启主数据库:
systemctl stop mysqld
systemctl start mysqld
主从同步配置:
登录从数据库:
mysql -u root -p
关闭从库:
stop slave;
设置同步,注意这里是主库ip,日志名称和位置是我们之前上图中看到的名称和位置:
change master to master_host='192.168.213.4',master_user='asyncuser',master_password='Asyncuser1234!',master_port=3306,master_log_file='mysql-bin.000001',master_log_pos=1329;
开启从库:
start slave;
检查从数据库状态:
show slave status \G;
出现这两个就OK了。