zoukankan      html  css  js  c++  java
  • mysql主从复制

    MySQL是开源的关系型数据库系统。复制(Replication)是从一台MySQL数据库服务器(主服务器master)复制数据到另一个服务器(从服务器slave)的一个进程。

    一、配置主服务器(master):192.168.255.128

    1、编辑数据库配置文件my.cnf,一般在/etc/目录下。
    #vi /etc/my.cnf
    在[mysqld]的下面加入下面代码:
    log-bin=mysql-bin
    server-id=1       //1可以任定义,只要是唯一的就行。
    innodb_flush_log_at_trx_commit=1
    sync_binlog=1
    binlog-do-db=wordpress   //表示只备份wordpress。
    binlog_ignore_db=mysql   //表示忽略备份mysql

    不加binlog-do-db和binlog_ignore_db,那就表示备份全部数据库。

    2、然后重启MySQL:

    #service mysqld restart

    3、登录MySQL服务器。
    #mysql -uroot -p
    在主服务器新建一个用户赋予“REPLICATION SLAVE”的权限。你不需要再赋予其它的权限。在下面的命令,把X.X.X.X替换为从服务器的IP。
    mysql>GRANT REPLICATION SLAVE ON *.* TO 'user'@'X.X.X.X' IDENTIFIED BY 'password';

    4、执行以下命令锁定数据库以防止写入数据。
    mysql>FLUSH TABLES WITH READ LOCK;

    5、退出mysql命令行,导出数据库
    #mysqldump -u root -p123456 --all-databases  --lock-tables=false  -- > /root/all.sql

    6、使用scp命令传输数据库文件all.sql到从服务器。
    #scp /root/all.sql root@www.example.com:/root

    7、再次连接数据库进入mysql命令行查看master状态。
    mysql>SHOW MASTER STATUS;
    请记下显示的信息,配置从服务器会用到。
    +——————+———-+————–+——————+
    | File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
    +——————+———-+————–+——————+
    | mysql-bin.000001 | 98 | dbispconfig | mysql |
    +——————+———-+————–+——————+
    1 row in set (0.00 sec)

    报错:mysql> SHOW MASTER STATUS;
    Empty set (0.00 sec)
    解决:在/etc/my.conf的第一项填上log-bin=mysql-bin,如下:
    [mysqld]
    log-bin=mysql-bin
    ......

    8、解锁数据表。
    mysql>UNLOCK TABLES;

    二、配置从服务器(slave):192.168.255.129

     

    登录从服务器。

    1、导入主服务器的数据库。
    #mysql -u root -p123456 < /root/all.sql

    2、编辑配置文件my.cnf,在[mysqld]下面加入:
    log-bin=mysql-bin
    server-id=2               //2可以自己定义,只要保证唯一的就行。

    3、保存文件并重启mysqld。
    #service mysqld restart

    4、登录mysql服务器,执行以下命令。
    mysql>CHANGE MASTER TO
    MASTER_HOST='X.X.X.X',  
    MASTER_USER='user',
    MASTER_PASSWORD='password',
    MASTER_PORT=3306,
    MASTER_LOG_FILE='mysql-bin.000001',
    MASTER_LOG_POS=98;

    5、启动slave进程。
    mysql>START SLAVE;

    6、查看主从是否配置成功。
    mysql> show slave statusG

     

    7、测试主从同步

    (1) 创建表 ---主

    mysql> use test;
    mysql> create table a(i int);
    Query OK, 0 rows affected (0.06 sec)

    (2) 查看表 ---从

    mysql> use test;
    Database changed
    mysql> show tables;
    +----------------+
    | Tables_in_test |
    +----------------+
    | a |
    +----------------+
    1 row in set (0.00 sec)

    成功。


    ps:查看mysql的日志,位置在/var/log/mysqld.log



  • 相关阅读:
    ural(Timus) 1019 Line Painting
    ACMICPC Live Archive 2031 Dance Dance Revolution
    poj 3321 Apple Tree
    其他OJ 树型DP 选课
    poj 3548 Restoring the digits
    ACMICPC Live Archive 3031 Cable TV Network
    递归循环获取指定节点下面的所有子节点
    手动触发asp.net页面验证控件事件
    子级Repeater获取父级Repeater绑定项的值
    没有列名的数据绑定
  • 原文地址:https://www.cnblogs.com/fanren224/p/8457321.html
Copyright © 2011-2022 走看看