MySQL主从原理
主服务器开启Binary log,从服务器上面启动一个I/O thread(实际上就是一个主服务器的客户端进程),连接到主服务器上面请求读取二进制日志,然后把读取到的二进制日志写到本地的一个Realy log里面。从服务器上面开启一个SQL thread定时检查Realy log,如果发现有更改立即把更改的内容在本机上面执行一遍。
MySQL主从配置步骤
一、Master配置
1、如下配置添加到 /etc/my.cnf
server-id=1
log-bin=mysql-bin
2、授权slave用户
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.0.%' IDENTIFIED BY 'passwd';
flush privileges;
3、查看master日志:
show master status;
二、从主库导出数据
全部数据库导出
mysqldump -uroot -pfGvkCH534XWe@ --all-databases --master-data=1 --single-transaction > master_slave.sql
指定数据库导出
mysqldump -uuser -ppasswd -B yfq_data_center jufan --master-data=1 --single-transaction > repbak.sql
指定数据库的某个表或多个表(jufan是库名 后面跟表名,多个表用空格)
mysqldump -ujufan-select -p'jufan@123' --single-transaction jufan biz_apply_installment > jufan_table.sql
三、Slave配置
1、如下配置添加到 /etc/my.cnf
[mysqld]
server-id=2
relay-log=slave-relay-bin
2、导入数据
mysql -uroot -pJufan123
(jufan是库名)
> user jufan;
> source /jf/master_slave.sql
或
# mysql -uroot -p'jufan@123' jufan < master_slave.sql
3、配置slave连接到master
登录slave MySQL 服务器 mysql -uroot -ppasswd 执行以下命令:
change master to master_host='10.80.222.44',
master_port=3306,
master_user='dbbi',
master_password='Jufan@123',
master_log_file='mysql-bin.000001',
master_log_pos=5161;
4、启动Slave
start slave;
5、查看slave状态
show slave status\G