Mysql主从同步实例

mysql主从复制,不停库

1.实现思路

首先通过mysqldump将主库数据备份,然后将备份数据恢复至从库,

再在从库中通过binlog执行同步。

2.操作过程

MySQL主从是基于binlog日志,所以在安装好数据库后就要开启binlog。这样好处是,一方面可以用binlog恢复数据库,另一方面可以为主从做准备。

(1)主库配置

#vi my.cnf

server-id=1#id要唯一

log-bin=mysql-bin#开启binlog日志

auto-increment-increment=1#在MySQL5.5以后已经默认是1

auto-increment-offset=1#表示自增长字段从那个数开始,他的取值范围是1 .. 65535
slave-skip-errors=all#跳过主从复制出现的错误

(2)主库创建同步账号

mysql> create user 'slave'@'%' identified by '1234567'; ----创建从服务器同步用的mysql用户
mysql> grant replication slave,replication client on *.* to 'slave'@'%'; ----授权创建的用户权限

(3)从库配置

#vi my.cnf

server-id=2
log-bin=mysql-bin#开启binlog日志

auto-increment-increment=1#MySQL5.5以后都已经默认是1

auto-increment-offset=1

slave-skip-errors=all#跳过主从复制出现的错误
read_only=1#普通用户只读
super_read_only=1 #root用户只读

(4)备份主库

mysqldump -uroot -p123 --routines --single_transaction --master-data=2 --databases 数据库1 数据库2 > db.sql参数说明:

--routines:导出存储过程和函数

--single_transaction:导出开始时设置事务隔离状态,并使用一致性快照开始事务,然后unlock tables;而lock-tables是锁住一张表不能写操作,直到dump完毕。

--master-data:默认等于1,将dump起始(change master to)binlog点和pos值写到结果中,等于2是将change master to写到结果中并注释。

(5)备份还原至从库

mysql -uroot -p123 -e'create database dbname;'
mysql -uroot -p123 dbname < db.sql

(6)开启同步

#在备份文件weibo.sql查看binlog和pos值
less db.sql
#执行同步
#连接mysql执行以下:
mysql -uroot -p123
change master to master_host='192.168.8.X',master_user='slave',master_password='123456',master_log_file='mysql-bin.000024',master_log_pos=507828577;
start slave; #开启slave
show slave status \G;
 #可以看到IO和SQL线程均为YES,说明主从配置成功。
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

你可能感兴趣的:(Mysql主从同步实例)