MySQL主从同步配置
MySQL数据库自身提供的主从复制功能可以方便的实现数据的多处自动备份,实现数据库的拓展。多个数据备份不仅可以加强数据的安全性,通过实现读写分离还能进一步提升数据库的负载性能。
下图为MySQL主从复制工作原理
MySQL主从复制配置步骤
一,主修改配置文件开启bin-log
[mysqld] log-bin = /var/lib/mysql/bin-log server-id = 3307
二,从修改配置文件设置server-id(与主的id不一样)
[mysqld] server-id = 3308
三,主master备份数据库
mysqldump -uroot -p123456 -h 192.168.0.12 -P 3307 -A --master-data=1 >backup.sql
-P指定端口
-A全部备份
四,从slave备份数据库导入
mysql -uroot -p123456 -h 192.168.0.12 -P3307 < backup.sql
五,登录主MySQL设置同步用户
grant replication slave on *.* to repl@'%' identified by 'repl'; flush privileges;
六,查看主的bin-log文件以及bin-log的POS位置
show master status;
七,登录从配置同步
mysql> stop slave; mysql> CHANGE MASTER TO -> MASTER_HOST='192.168.0.12', -> MASTER_USER='repl', -> MASTER_PASSWORD='repl', -> MASTER_PORT=3307 -> MASTER_LOG_FILE='bin-log.000001', -> MASTER_LOG_POS=890; mysql> start slave;
查看同步状态
show slave status\G
IO进程为主与从之间的通信进程YES代表正常
SQL进程为从主同步过来的二进制文件执行进程YES代表正常
在主上面创建一个测试数据库test
create database test;
从上面可以查看到
为避免数据不同步现象,生产中可以设置从服务器只读启动,所有写操作在主上面进行