一般来说都是通过 主从复制(Master-Slave)的方式来同步数据,再通过读写分离(MySQL-Proxy)来提升数据库的并发负载能力 这样的方案来进行部署与实施的。本文介绍通过log-bin来实现数据库主从。
一、MySQL主从复制。
主服务器(master):47.75.154.120
从服务器(slave):59.110.173.87
1、主服务器配置
启动mysql数据库服务:
mysql start
查看mysql配置文件位置:
mysql --help|grep 'my.cnf'
mysql服务启动 ,会从左到右依次检测配置文件,如果没有则加载默认配置
主服务器配置添加如下配置
配置主数据库
[mysqld]
#[必须]启用二进制日志
log-bin=mysql-bin
#[必须]服务器唯一ID,默认是1,一般取IP最后一段 (主服务器不配置也ok)
server-id=87
#忽略备份
binlog_ignore_db=iperformance_schema,information_schema,mysql,sys
#备份
#binlog-do-db=
重启mysql数据库
mysqld restart
登录数据库
mysql -uroot -p
查看数据库配置是否生效
mysql>show variables like 'server_id';
mysql> show variables like 'log_bin';
在主服务器新建一个用户并赋予“REPLICATION SLAVE”的权限。
mysql>CREATE USER 'sync'@'59.110.173.87'IDENTIFIED BY 'slave'
mysql>GRANT REPLICATION SLAVE ON *.* TO'sync'@'59.110.173.87'IDENTIFIED BY 'slave'
查看主数据库状态,记录File与Position的值。
mysql>show master status;
2、从服务器配置
修改为server-id,并确保这个ID没有被别的MySQL服务所使用,并重启后登录。
先停止slave
mysql> stop slave;
执行从服务器同步命令
mysql>CHANGE MASTER TO
>MASTER_HOST='47.75.154.120',
>MASTER_USER='sync',
>MASTER_PASSWORD='slave',
>MASTER_PORT=3306,
>MASTER_LOG_FILE='mysql-bin.000007',
>MASTER_LOG_POS=1141303;
启动slave服务
mysql> SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
mysql> start slave;
查看slave状态
mysql> show slave status\G
3、效果展示
主服务器操作前
从服务器操作前
主服务器操作(create database test;)
从服务器自动更新
4、注意
主表有数据时最好先锁表
mysql> FLUSH TABLES WITH READ LOCK
之后在解锁
mysql>UNLOCK TABLES;
领取专属 10元无门槛券
私享最新 技术干货