MySQL数据库主从复制

一般来说都是通过 主从复制(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;

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180523G1EXR000?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券