Linux 下的 MySQL 主从同步技术
MySQL 主从同步技术
-
主库操作
- 环境准备,准备2台机器,一个master 一个slave
192.168.15.53 主库
192.168.15.94 从库
-
配置主库的环境
-
修改主库的配置文件,开启binlog功能
vim /etc/my.cnf
[mysqld] server-id=1 log-bin=s16-mysql-bin
-
重启数据库
systemctl restart mariadb
-
-
创建用于数据同步的账号
create user 'zhangfei'@'%' identified by 'zhang123';
-
授予这个账号,一个slave的身份标识
grant replication slave on *.* to 'zhangfei'@'%';
-
锁表
flush table with read lock;
查看 表状态
show master status;
-
数据库信息导出
mysqldump -uroot -p --all-databases > /opt/db.dump
-
在mariadb从库的操作
-
阿里云的源,和官方源,同一安装软件包名如下
yum install mariadb-server mariadb -y -
配置从库的配置文件,开启server-id
vim /etc/my.cnf
写入如下操作[mysqld]
server-id=3
read-only=true
character-set-server=utf8
collation-server=utf8_general_ci
log-error=/var/log/mysqld.log -
重启数据库
systemctl restart mariadb-
注意数据库版本
删除从库自己的无用的数据手动drop删除
从库导入主库的数据,保证起始点数据一致
mysql -uroot -p < /db.dump -
-
在从库,通过一条命令,开启主从同步
mysql > change master to master_host='192.168.15.53', master_user='zhangfei', master_password='zhang123', master_log_file='s16-mysql-bin.000004', master_log_pos=785;
-
开启slave同步
start slave ; -
检查主从同步状态
show slave status\G-
当你检查这2条参数,yes的时候,主从ok
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
-
-
此时解锁主库!!
unlock tables;
- 验证主从同步是否正常