MYSQL 主从同步

准备条件

2个同版本数据库。
MASTER :192.168.1.66
SLAVE:192.168.1.99
测试数据库名称test_db

1. 配置MASTER 服务器

 1.1 打开Mysql bin-log

my.ini中做如下配置

[mysqld]

default-storage-engine=INNODB

log-bin=mysql-bin

server-id=1

innodb_flush_log_at_trx_commit=1

sync_binlog=1

binlog-do-db=test_db #被复制的数据库

重启数据库

1.2 创建一个用户为复制数据库连接用户

CREATE USER 'repl'@'%' IDENTIFIED BY 'repl';

GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';

FLUSH PRIVILEGES;

1.3 锁表操作

执行

FLUSH TABLES WITH READ LOCK;

执行后不要关闭当前执行界面。关闭后锁表操作将会失效。

1.4 dump数据库

执行

mysqldump --databases  test_db >testdb.db -u root -p

1.5 查看主库状态

执行并记录状态

show master status;

需要记住File、Position字段后就可以把MASTER只读状态关闭了。

 

1.6 MASTER只读解锁

执行

UNLOCK TABLES;

2. 配置SLAVE 服务器

2.1导入数据库到SLAVE服务器

mysql < testdb.db -u root -p

2.2 my.ini中做如下配置

[mysqld]

default-storage-engine=INNODB

server-id=2

重启SLAVE

2.3设置同步记录

执行

CHANGE MASTER TO

MASTER_HOST='192.168.1.66',

MASTER_USER='repl',

MASTER_PASSWORD='repl',

MASTER_LOG_FILE='mysql-bin.000001',

MASTER_LOG_POS=154;

2.4启动SLAVE 同步

执行  

START SLAVE;

2.5查看SLAVE 是否成功

 MYSQL 主从同步_第1张图片

TIPS:从库不要进行写入操作否则会导致,主从不一致 或主从复制失败。

你可能感兴趣的:(数据库)