mysql的主从复制笔记

mysql主从复制

在应用开发中,为了解决单台mysql服务器负载压力,将两台及更多台mysql服务器设置主从关系,并将数据通过mysql数据日志方式维护数据同步。其中主服务器(master server)作为增删改的服务器,并及时将数据同步到从服务器(slave server),从服务器作为查询服务器(select)。好处是从服务器作为查询服务器,分担主服务器的查询负载压力。同时从服务器也可作为数据备份。

环境说明:centos6.5,主服务器mysql5.5,从服务器mysql6.6。主服务器10.0.0.21,从服务器10.0.0.11。需要保证服务器之间能够ping通,以及mysql防火墙正常访问。

master的配置

在linux系统中,编辑主服务器的mysql配置文件,例如文件所在/etc/my.cnf。配置在[mysqld]节点下,如示例:

log-bin=mysql-bin

server-id=1

binlog-do-db=database1

binlog-do-db=database2

binlog-ignore-db=information_schema

binlog-ignore-db=mysql

expire_logs_days = 5

max_binlog_size = 500M

上面实例中,log-bin=mysql-bin则为开启mysql二进制日志记录;server-id可以取值,需要保证唯一性;binlog-do-db则是指定需要同步的数据库,多个数据库按照上面3、4行类似换行写入,不填写则代表同步全部数据库;binlog-ignore-db则是需要排除的指定数据库,不写则不排除,原理同binlog-do-db;expire_logs_days代表过期后的文件几天内删除;max_binlog_size代表单个日志文件的最大值,超过最大值生成新的日志文件;如果不设置最后两项,则日志文件无限量生长,数据量过大的话会占用服务器磁盘空间。

:wq保存选项,重启数据库,service mysqld restart。

接下来进入mysql命令行,创建用户并授权

mysql>CREATE USER 'slaveuser'@'10.0.0.11' IDENTIFIED BY 'slavepass';

mysql>GRANT REPLICATION SLAVE ON *.* TO 'slaveuser'@'10.0.0.11';

mysql>flush privileges; 

查看主服务器信息

mysql> show master status;

+------------------+----------+-------------------+------------------+

| File            | Position | Binlog_Do_DB      | Binlog_Ignore_DB |

+------------------+----------+-------------------+------------------+

| mysql-bin.000446 |  7659266 | adserver,copytest |                  |

+------------------+----------+-------------------+------------------+

1 row in set (0.00 sec)

上面中,file字段表示当前主库的bin-log文件,position表示记录的行数。binlog-do-db表示当前所记录的数据库二进制文件,binlog-ignore-db表示当前排除记录的数据库,表格记录为空,表示没有任何指定排除的数据库。

同步数据库

#在主库导出数据库sql语句,保存在data目录下。

mysqldump -uroot -ppassword  database  --skip-lock-tables>/data/database.sql

#将database.sql拷贝到从服务器。执行mysql命令

#创建database数据库

CREATE DATABASE database CHARACTER SET utf8 COLLATE utf8_general_ci;

use database;

#使用source命令导入数据到database

source /data/database.sql


slave的配置

配置从库的my.cnf文件,在[mysqld]节点下编辑如下内容。

log-bin=mysql-bin

server-id=2

:wq保存退出。重启mysql服务:service mysqld restart。

进入到mysql命令行模式,操作如下:

mysql> stop slave;  #关闭Slave

mysql>set global  sql_slave_skip_counter=1;    #跳过错误sql,保持同步进行

mysql> change master to master_host='10.0.0.21',master_user='slaveuser',master_password='slavepass',master_log_file='mysql-bin.000446', master_log_pos=0;

mysql> start slave;  #开启Slave

在执行show slave status查看当前配置状态:


当slave_io_running和slave_sql_running都为yes时,则表明当前处于正常同步状态。


测试,可以在主库中增加一个测试表,增加或修改数据的同时,查看从库的数据。当数据一致时,则表明当前配置成功;


配置完成后,经过测试。有如下总结:

1、数据的实时同步很快的。几乎没有延迟。

2、每次主服务器重启mysql服务后,都会使用新的binlog日志文件。slave在查看状态时,也会自动使用新的二进制文件进行监听数据。所以不用担心主服务器重启后,每次都要手动更新配置二进制文件。

3、在配置的时候,例如my.cnf文件需要备份,防止修改出错后,及时调整回来。避免出现mysql因为长时间不能正常启动,尤其是在生产环境。

4、如果在数据库导出的时候,数据在不断的增长,而mysql服务器友不能停,所以会出现主从服务器延迟带来的数据差异。为了防止导出过程中延迟带来的数据差异过大,可在导出数据库后,立刻重启master的mysql服务器。在show master status信息,导出数据到slave后,设置slave同步时,填写最新的二进制文件,日志文件起始行填写为0。可最大程度缩小数据差异。

嗯……,困了,整理完毕。晚安😴

------------------------------------------------2018-11-20更新-----------------------------------------

今天因为同事在主库跨库查询另外一个库得sql语句,造成结构更新事件同步执行到了从库,因为从库数据库群与主库数据库群不一致,导致从库更新失败。经过了解,重新布置了一次主从同步,在从库即将开始(start salve操作)前,设置跳过错误事件。如下:

mysql> set global  sql_slave_skip_counter=1;    #跳过错误sql,保持数据库同步进行

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,406评论 5 475
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,976评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,302评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,366评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,372评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,457评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,872评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,521评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,717评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,523评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,590评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,299评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,859评论 3 306
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,883评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,127评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,760评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,290评论 2 342

推荐阅读更多精彩内容