以下配置是在两个服务器分别安装完MySQL基础上完成。
一、配置主库
systemctl stop firewalld.service // 关闭防火墙
systemctl disable firewalld.service // 禁止开机自启
1、开启log-bin(二进制日志)
目的:开启二进制日志,记录所有对库有修改的操作(查询操作不算修改)。
操作:
1)修改MySQL配置文件:my.cnf
在mysqld下加入
log-bin=/var/lib/mysql/mysql-bin
server-id=1
log-slave-updatesbinlog-do-db=cattle
binlog-ignore-db=mysql
2)重启服务:
service mysqld restart
3)查看是否修改成功
mysql -uroot -pmysql -S /var/lib/mysql/mysql.sock -e "show variables like 'log_bin';"
// 输入此命令行时,会显示当前是第几个日志和第几行,此时需要记下日志号和行号,例如:
日志号:mysql-bin.000004,行号:214
(从库以后配置时便从此位置开始,是同步的起始点)
2、加入可以让从机访问的账号
grant replication slave on *.* to 'rep' @'192.168.137.%' identified by 'o123';
// 192.168.137. 可以访问的从库的范围; rep:用户名; o123:密码
flush privileges; // 使上面的操作生效
flush tables with read lock; // 加入只读锁
mysqldump -uroot -pmysql -S /var/lib/mysql/mysql.sock -A -B --events|gzip >/opt/rep.sql.gz // 导出主库的数据
(gunzip 解压缩 sz下载)
unlock tables; // 操作完成后,解开只读锁
二、配置从库:
mysql -uroot -pmysql -S /var/lib/mysql/mysql.sock </opt/rep.sql // 导入主库的数据
CHANGE MASTER TO
MASTER_HOST='192.168.137.11',
MASTER_PORT=3306,
MASTER_USER='rep',
MASTER_PASSWORD='o123',
MASTER_LOG_FILE='mysql-bin.000004',
MASTER_LOG_POS=214;
start slave; // 开始执行
show slave status\G // 显示主从配置的状态
Slave_IO_Running: Connecting
Slave_SQL_Running: Yes // 出现这两行,即说明配置成功。