zoukankan      html  css  js  c++  java
  • Mysql 主从复制搭建

    Mysql 主重复制搭建

    • Linux版本:Linux Centos 6.4 32位
    • Mysql版本:Mysql-5.6.38-linux-glibc2.12-i686
    • Mysql安装:Mysql安装教程
    • 搭建环境:在源LAMP架构基础,增加一台Mysql服务,搭建Replication 主从。

    主Mysql配置

    1、修改本地主机名为master(可略)。

    # 临时修改主机名
    hostname master
    # 实时生效
    bash
    
    vim /etc/sysconfig/network
    
    NETWORKING=yes
    HOSTNAME=master
    永久修改主机名

    2、修改Mysql主配置文件、重启服务。

    # 指定同步的库
    binlog-do-db=db1,db2 
    
    # 忽略不同步的库
    binlog-ignore-db=db1,db2 
    
    注:需要从数据库吻合才可成立。
    选择添加/指定数据库名做主从
    # 修改mysql主配置文件
    vim /etc/my.cnf
    # 解注释:主ID为1
    server-id = 1
    # 解注释:开启二进制日志,mysql-bin前缀名
    log-bin=mysql-bin
    # 重启Mysql服务
    /etc/init.d/mysqld restart
    
    # 查看bin-log日志
    ls /data/mysql/mysql-bin.*
    
    /data/mysql/mysql-bin.000001  /data/mysql/mysql-bin.000002  /data/mysql/mysql-bin.000011  /data/mysql/mysql-bin.index
    查看是否生成二进制文件

    3、授权主从用户。

    # 进入数据库
    mysql -uroot -p
    # 添加用户repl 授权主从 允许访问所有库
    mysql> grant replication slave on *.* to 'repl'@'192.168.1.115' identified by '123456';
    # 安全起见:占时锁表,不让数据库更新
    mysql> flush tables with read lock;

    4、查看二进制相关信息。

    # 查看二进制文件、位置数 | 需要记录到从数据库内
    mysql> show master status;
    +------------------+----------+--------------+------------------+-------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | +------------------+----------+--------------+------------------+-------------------+ | mysql-bin.000016 | 3722 | | | | +------------------+----------+--------------+------------------+-------------------+

    5、备份主数据到从数据库内(如果两台Mysql数据相同可略此步骤)

    # 从测试:终端是否可连接主数据库端,使用授权用户。
    mysql -urepl -p123456 -h192.168.1.111 -P3306
    
    注:可登陆说明链接正常。
    注:链接不上需要查看网络,端口,密码,地址等是否正确。
    从数据库:测试数据库链接
    # 备份数据库discut备份名为1.sql
    mysqldump -uroot -p123456 discut > 1.sql
    # 远程将备份文件发送给从服务端的root目录内
    scp 1.sql root@192.168.1.115:/root/
    主数据库:备份数据库、发送给从服务端
    # 创建主的同名库
    mysql -uroot -p123456 -e "create database discuz";
    # 数据导入数据库内
    mysql -uroot -p123456 discuz < 1.sql
    从数据库:导入主备份数据

     从Mysql配置

    1、修改本地主机名为(可略)。

    # 临时修改主机名
    hostname slave
    # 实时生效
    bash
    vim /etc/sysconfig/network
    
    NETWORKING=yes
    HOSTNAME=slave
    永久修改主机名

    2、修改Mysql主配置文件、重启服务。

    # 需要同步的库
    replicate-do-db=db1,db2
    
    # 忽略不同步的库
    replicate-ignore-db=db1,db2
    
    注:需要主数据库吻合才可成立。
    选择添加/指定数据库名做主从
    # 修改mysq主配置文件
    vim /etc/my.cnf
    # 解注释:从ID为2、从可以注释掉此选项
    server-id = 2
    
    # 重启Mysql服务
    /etc/init.d/mysqld restart
    

     3、进入数据库配置主从。

    # 进入数据库
    mysql -uroot -p
    # 关闭复制
    mysql> stop slave;
    # 配置主从建立链接、master_log_file与master_log_pos要与主内的数据匹配
    mysql> change master to master_host='192.168.1.111',master_port=3306,master_user='repl',master_password='123456',master_log_file='mysql-bin.000015',master_log_pos=1150;
    # 开启复制
    mysql> start slave;

    4、查看主从链接情况,两个yes是正确的。

    mysql> show slave statusG;
    
    
    *************************** 1. row ***************************
                   Slave_IO_State: Waiting for master to send event
                      Master_Host: 192.168.1.111
                      Master_User: repl
                      Master_Port: 3306
                    Connect_Retry: 60
                  Master_Log_File: mysql-bin.000015
              Read_Master_Log_Pos: 1150
                   Relay_Log_File: slave-relay-bin.000002
                    Relay_Log_Pos: 283
            Relay_Master_Log_File: mysql-bin.000015
                 Slave_IO_Running: Yes
                Slave_SQL_Running: Yes
                  Replicate_Do_DB: 
    测试主从是否链接成功

    5、主数据库:从配置完毕后把表锁打开。

    mysql> unlock tables;

     测试主从复制

    mysql> create database xiangsikai;
    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | discuz             |
    | mysql              |
    | performance_schema |
    | test               |
    | xiangsikai         |
    +--------------------+
    主创建一个数据库
    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | discuz             |
    | mysql              |
    | performance_schema |
    | test               |
    | xiangsikai         |
    +--------------------+
    查看是否创建数据库
      说明:Mysql主从复制比较脆弱,谨慎操作。如果重启master,请务必要先把slave停掉,也就是说需要在slave上去执行stop slave命令,然后再去重启master的mysql服务,否则很有可能会中断。当然重启完后,还需要把slave给开启start slave 。
    注意事项
    查看错误日志/data/mysql/slave.err
    删除master.info文件
    删除relay-log.info文件
    删除所有/data/mysql下生成的bin.的二进制日志文件
    配置冲突报错处理

      主从复制从新建立链接

    # 登陆mysql
    mysql -uroot -p
    
    # 查看主库是否为之前的ip
    mysql>show slave statusG; 
    
    # 取消主从
    mysql>change master to master_host=' ';
    mysql>slave stop;
    mysql>reset slave;
    
    # 查看状态
    mysql>show slave statusG; 
    1、取消主从关系
    # 登陆数据库
    mysql -uroot -p
    
    # 关闭复制
    mysql>stop slave;
    
    # 建立主从master_host 为要更改主库的ip地址、master_password 为要修改的密码
    mysql>change master to master_host=‘192.168.1.1’, master_user='repl', master_password=‘xxxxxxx’, MASTER_AUTO_POSITION = 1;
    
    # 启动复制
    mysql>start slave;
    2、重新构建主从关系

  • 相关阅读:
    JAVA EE社团管理升级版-项目展示(微信小程序)
    JAVA EE社团管理升级版-微信WEB管理端说明文档
    python爬虫19 | 遇到需要的登录的网站怎么办?用这3招轻松搞定!
    python爬虫20 | 小帅b教你如何使用python识别图片验证码
    python爬虫16 | 你,快去试试用多进程的方式重新去爬取豆瓣上的电影
    python爬虫17 | 听说你又被封 ip 了,你要学会伪装好自己,这次说说伪装你的头部
    python爬虫18 | 就算你被封了也能继续爬,使用IP代理池伪装你的IP地址,让IP飘一会
    python爬虫15 | 害羞,用多线程秒爬那些万恶的妹纸们,纸巾呢?
    python爬虫13 | 秒爬,这多线程爬取速度也太猛了,这次就是要让你的爬虫效率杠杠的
    python爬虫14 | 就这么说吧,如果你不懂python多线程和线程池,那就去河边摸鱼!
  • 原文地址:https://www.cnblogs.com/xiangsikai/p/8412970.html
Copyright © 2011-2022 走看看