主库配置
1:编辑配置文件
vim /etc/my.cnf
在最下面增加配置:
log-bin=mysql-bin #[必须]启用二进制日志
server-id=200 #[必须]服务器唯一ID(唯一即可)
重新启动
systemctl restart mysqld
2:登录mysql添加账户
GRANT REPLICATION SLAVE ON *.* to 'xiaoming'@'%' identified by 'Root@123456';
#注:上面SQL的作用是创建一个用户 xiaoming ,密码为 Root@123456 ,
并且给xiaoming用户授予REPLICATION SLAVE权限。常用于建立复制时所需要用到的用户权限,
也就是slave必须被master授权具有该权限的用户,才能通过该用户复制。
show master status;
执行SQL,记录下结果中File和Position的值
从库配置
1:编辑配置文件
vim /etc/my.cnf
在最下面增加配置:
server-id=201 #[必须]服务器唯一ID(唯一即可)
重新启动
systemctl restart mysqld
2:登录mysql
设置主库地址及同步位置
change master to master_host='主库IP',
master_user='xiaoming',
master_password='Root@123456',
master_log_file='主库查到的',
master_log_pos=主库查到的;
#A. master_host : 主库的IP地址
#B. master_user : 访问主库进行主从复制的用户名(上面在主库创建的)
#C. master_password : 访问主库进行主从复制的用户名对应的密码
#D. master_log_file : 从哪个日志文件开始同步(上述查询master状态中展示的有)
#E. master_log_pos : 从指定日志文件的哪个位置开始同步(上述查询master状态中展示的有)
查看从数据库的状态
start slave;
然后通过状态信息中的 Slave_IO_running 和 Slave_SQL_running
可以看出主从同步是否就绪,如果这两个参数全为Yes,表示主从同步已经配置完成。
注释:
如果虚拟机是克隆的你需要修改从库的IP和mysql服务器的UUID
删除从库的 /var/lib/mysql/auto.cnf文件;从新启动从库会走动生成