MySql主从复制

我的是自己搭建的一个数据库作为主库,使用docker 作为 从库

        注意:  数据库版本保持一致!!!数据库版本保持一致!!!数据库版本保持一致!!!

1. 查看住库版本

        我的是: 5.6.45

2.安装docker

        参考地址:https://www.docker.com/

3.docker 安装mysql 5.6.45

        小白请参考docker 文档操作

        docker pull mysql:5.6.45

        docker images可查看刚pull 的 mysql.如若过慢可自行修改镜像.

        docker run -p 3360:3306 --name mymysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6.45启动mysql

                -p 3360:3306  端口映射  外网链接数据时请使用  3360 (尽量选择没被占用的端口)

                --name mymysql  定义名称    (mymysql  随意)

                -e MYSQL_ROOT_PASSWORD=123456  设置密码

                -d mysql:5.6.45  启动的镜像

        docker inspect redismaster查看一下容器的IP  (可跳过、后面mysq配置可用)

ok  重点、重点、重点

    修改主库配置文件

        修改 mysql.ini (或 mysql.cnf) -- 有些人配置比较不通

            [mysqld]

            ## 设置server_id  注意要唯一、注意要唯一、注意要唯一

            server-id=1      ## 这个就是在上面讲的可获取内网IP的用处 尽量使用内网IP的最后一段 比较好区分

            ## 开启二进制日志功能,以备Slave作为其它Slave的Master时使用

            log-bin=mysql-slave-bin 

            ## relay_log配置中继日志

            relay_log=edu-mysql-relay-bin 

        修改从库配置文件

        进入容器      

                docker exec -it 8dfabd8ad85b /bin/bash

                    -it 8dfabd8ad85b  这个是docker  容器运行时的ID 可使用    docker ps 查询

        安装 vim

                第一步:apt-get update

                第二步:apt-get install vim

        cd /etc/mysql/

                由于mysql的版本有点高,配置文件简直就是套娃啊,一层一层的.打开后就是加载、加载、加载.

        直接  vim /etc/mysql/mysql.conf.d/mysqld.cnf

                [mysqld]

                ## 设置server_id  注意要唯一、注意要唯一、注意要唯一

                server-id=2    ## 这个就是在上面讲的可获取内网IP的用处 尽量使用内网IP的最后一段 比较好区分

                ## 开启二进制日志功能,以备Slave作为其它Slave的Master时使用

                 log-bin=mysql-slave-bin 

                ## relay_log配置中继日志

                relay_log=edu-mysql-relay-bin 

        重启mysql         service mysql restart

        由于重启mysql后容器会停止,接下来启动容器

        docker start mymysql

                mymysql  容器名称  上面的启动是已说明

就此、准备工作完成,接下来我们开始配置主从复置工作

1. 查看主库的日志状态

        show master status;

            File            | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

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

             | mysql-bin.000011 |  876059

                File、Position,这两个字段的值一定要记录一下,下面用得上.

2.在主库设置一个复制的账号.

        方法万万千,我就不赘述了

3.进入docker 的mysql 运行容器

        docker exec -it 8dfabd8ad85b /bin/bash

        进入mysql  mysql -uroot -p

        执行:

          change master to master_host='172.17.0.1', master_user='root', master_password='123456', master_port=3306, master_log_file='mysql-bin.000011', master_log_pos= 876059, master_connect_retry=30;

                master_host='172.17.0.1'        主库的IP

                master_user='root'                  上一步设置的主库复制账号

                master_password='123456'  上一步设置的主库复制账号密码

                master_port=3306                  主库端口

                master_log_file='mysql-bin.000011      这个就是上面讲的需要记录的  File  字段的值

                master_log_pos= 876059    这个就是上面讲的需要记录的  Position  字段的值

                master_connect_retry=30      如果主从链接失败的超时时间      默认:60 (s)

OK、配置完毕,可以启动了  启动之前先看看当前状态吧

    show slave status \G;


        被我圈红色的表示暂时并没有启动.接下来我们启动一下

        start slave            start|stop slave    (我看了一下其他的博客写的是 slave start  醉了)

        再次查看状态:

         show slave status \G;

                Last_Errno: 1062

                Last_Error: Error 'Duplicate entry '22980' for key 'PRIMARY'' on query.

            这个时候应该会报错

            显然这个问题是因为插入重复主键导致从库不工作了

            解决方法一:

                    mysql>slave stop;

                    mysql>set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;

                    mysql>slave start;

            解决方法二:

                    slave_skip_errors = 1062

            再次从起mysql  重启 docker 即可

        解决完毕后再次 start slave

        再次查看状态:    show slave status \G;

        

完成

测试一下吧

在主库随便修改一下数据或者字段去从库试试吧

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

推荐阅读更多精彩内容