zoukankan      html  css  js  c++  java
  • mysql主从同步配置

     配置mysql主从同步

    准备两台测试的虚拟机,安装mysql环境(https://www.cnblogs.com/pinghengxing/p/9402825.html),并开启mysql服务

    主master : 192.168.8.10

    从slave  :   192.168.8.11

    1、配置主库:

    1)、授权给从数据库服务器

    mysql>GRANT REPLICATION SLAVE ON *.* to 'rep1'@'192.168.8.11' identified by 'test123456';
    mysql>FLUSH PRIVILEGES;

    2)、修改主库配置文件,开启binlog,并设置server-id,每次修改配置文件后都要重启mysql服务才会生效

    vim /etc/my.cnf

    在该配置文件[mysqld]下面添加下面内容:

    复制代码
    [mysqld]
    log-bin=/var/lib/mysql/binlog
    server-id=1
    binlog-do-db = cmdb
    
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    ......
    复制代码

    server-id:master端的ID号;

    log-bin:同步的日志路径及文件名,一定注意这个目录要是mysql有权限写入的(我这里是偷懒了,直接放在了下面那个datadir下面);

    binlog-do-db:要同步的数据库名

    还可以显示 设置不同步的数据库:

    binlog-ignore-db = mysql 不同步mysql库和test库
    binlog-ignore-db = test

    修改配置文件后,重启服务:service mysqld restart

    如果启动失败,通过cat /var/log/mysqld.log | tail -30  查看mysql启动失败的日志,从日志内容寻找解决方案。

    3)、查看主服务器当前二进制日志名和偏移量,这个操作的目的是为了在从数据库启动后,从这个点开始进行数据的恢复

    复制代码
    mysql> show master status;
    +---------------+----------+--------------+------------------+
    | File          | Position | Binlog_Do_DB | Binlog_Ignore_DB |
    +---------------+----------+--------------+------------------+
    | binlog.000001 |     1304 | cmdb         |                  |
    +---------------+----------+--------------+------------------+
    1 row in set (0.00 sec)
    复制代码

    主服务器已配置好。

    2、配置从库

    1)、理所当然也是从配置文件着手,在/etc/my.cnf 添加下面配置:

    复制代码
    [mysqld]
    server-id=2
    
    复制代码

    在从库上用命令来设置:

    mysql> CHANGE MASTER TO MASTER_HOST='192.168.8.10',
      MASTER_PORT=3306,
      MASTER_USER='rep1',
      MASTER_PASSWORD='test123456',
      MASTER_LOG_FILE='binlog.000001',
      MASTER_LOG_POS=1304; #后面两个参数的值与主库保持一致

    2)、启动slave进程

    mysql> start slave; 
    Query OK, 0 rows affected (0.04 sec)

    3)、查看slave的状态,如果下面两项值为YES,则表示配置正确:

    Slave_IO_Running: Yes

    Slave_SQL_Running: Yes

    从库正在等待主库更新数据。。。Waitin for master to send event...

    三、同步主库已有数据到从库

    主库操作:

    1、停止主库的数据更新操作

    mysql>flush tables with read lock;

    2、新开终端,生成主数据库的备份(导出数据库)

    [root@zhoujietest ~]# mysqldump -uroot -ptest123 cmdb > cmdb.sql

    3、将备份文件传到从库

    
    
    [root@zhoujietest ~]# scp cmdb.sql root@192.168.8.11:/root/

    4、主库解锁

    mysql>unlock tables;

    从库操作:

    1、停止从库slave

    mysql>slave stop;

    2、新建数据库cmdb

    mysql> create database cmdb default charset utf8;

    3、导入数据

    [root@ops-dev ~]# mysql -uroot -ptest123 cmdb<cmdb.sql 

    4、查看从库已有该数据库和数据 

    复制代码
    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | cmdb               |
    | mysql              |
    | performance_schema |
    | test               |
    +--------------------+
    复制代码

    此时主从库的数据完全一致,如果对主库进行增删改操作,从库会自动同步进行操作。

  • 相关阅读:
    Anagram
    HDU 1205 吃糖果(鸽巢原理)
    Codeforces 1243D 0-1 MST(补图的连通图数量)
    Codeforces 1243C Tile Painting(素数)
    Codeforces 1243B2 Character Swap (Hard Version)
    Codeforces 1243B1 Character Swap (Easy Version)
    Codeforces 1243A Maximum Square
    Codeforces 1272E Nearest Opposite Parity(BFS)
    Codeforces 1272D Remove One Element
    Codeforces 1272C Yet Another Broken Keyboard
  • 原文地址:https://www.cnblogs.com/pinghengxing/p/13682453.html
Copyright © 2011-2022 走看看