Mysql官网中关于部署主从的网址
 
环境准备:
 搭建虚拟机和安装Mysql之前的文章中已经涉及,在此不再赘述。
| 主从 | IP | Mysql账号密码 | 
|---|---|---|
| 主 | 192.168.213.4 | root/Root1234! | 
| 从 | 192.168.213.5 | root/Root1234! | 
1、主数据库设置
配置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的值,后面设置从数据库同步时需要。
2、从数据库设置
和主数据库配置一样:
 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了。
 
