配置MySQL主從複製

說明

MySQL版本爲5.6.26

安裝MySQL步驟就省略了。

MySQL主從複製注意點

      1、在master端要啓用binlog日誌。slave端不用啓用binlog日誌

       2、master和slave的server-id要不一樣

主從my.cnf配置的區別

不列出server-id了,設置不同即可。主要是[mysqld]區域的 不同

master

log-bin                         =/data/mysql_log/mysql-bin

expire-logs-days                = 14

sync-binlog                     = 1

binlog_format                   = row

slave

relay-log                       =/data/mysql_log/mysql-relay.log

relay-log-index                 =/data/mysql_log/mysql-relay.index

架構圖

wKioL1c9jg_wuzdsAAAWzyOmnuY835.png

系統環境

# cat /etc/redhat-release

CentOS release 6.6 (Final)

# uname -rm

2.6.32-504.el6.x86_64 x86_64

在主庫上創建數據庫並插入數據

mysql> create databasekevin;

Query OK, 1 row affected(0.00 sec)

mysql> use kevin

Database changed

mysql> create tablestudent(

    -> id int(4) not null auto_increment,

    -> name char(20) not null,

    -> primary key(id),     

    -> key index_name(name)

    -> )AUTO_INCREMENT=1;

Query OK, 0 rows affected(0.10 sec)

mysql> insert intostudent values(1,'Kevin'),(2,'Dave'),(3,'Danny'),(4,'Jenny'),(5,'Jerry');

Query OK, 5 rows affected(0.02 sec)

Records: 5  Duplicates: 0 Warnings: 0

創建主從複製

在master上操作

建立同步用戶

mysql> GRANT REPLICATION  SLAVE ON  *.*  TO 'repuser'@'192.168.56.%'  IDENTIFIED BY '123456';

Query OK, 0 rows affected(0.00 sec)

mysql> FLUSH PRIVILEGES;

Query OK, 0 rows affected(0.00 sec)

mysql> FLUSH LOGS;

Query OK, 0 rows affected(0.00 sec)

mysql> show binary logs;

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

| Log_name         | File_size |

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

| mysql-bin.000001 |      2189 |

| mysql-bin.000002 |       323 |

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

2 rows in set (0.00 sec)

mysql> \q

Bye

備份數據庫

[root@mysql-master ~]#innobackupex --user=root --password=123456  /backup/

準備備份

[root@mysql-master ~]#innobackupex --apply-log  /backup/2016-05-18_19-19-38/

在插入一條數據

mysql> use kevin

Database changed

mysql> insert intostudent values(6,'Lucy');

Query OK, 1 row affected(0.14 sec)

mysql> select * fromstudent\G

***************************1. row ***************************

  id: 3

name: Danny

***************************2. row ***************************

  id: 2

name: Dave

***************************3. row ***************************

  id: 4

name: Jenny

***************************4. row ***************************

  id: 5

name: Jerry

***************************5. row ***************************

  id: 1

name: Kevin

***************************6. row ***************************

  id: 6

name: Lucy

6 rows in set (0.00 sec)

mysql> show masterstatus\G

將備份拷貝到從庫上

[root@mysql-master ~]# scp -r  /backup/2016-05-18_19-19-38  [email protected]:/backup/

slave上操作

刪除原始數據

[root@mysql-slave01 ~]# cd  /data/mysql_data/

[root@mysql-slave01mysql_data]# rm -fr *

[root@mysql-slave01mysql_data]# cd

恢復數據

[root@mysql-slave01 ~]#innobackupex --copy-back  /backup/2016-05-18_19-19-38/

[root@mysql-slave01 ~]#chown  -R  mysql.mysql  /data/mysql_data/

啓動MySQL

[root@mysql-slave01 ~]#/etc/init.d/mysqld start

驗證數據

[root@mysql-slave01 ~]#mysql -uroot –p

mysql> show databases;

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

| Database           |

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

| information_schema |

| kevin              |

| mysql              |

| performance_schema |

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

4 rows in set (0.04 sec)

mysql> use kevin;

Database changed

mysql> select * from student;

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

| id | name  |

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

|  3 | Danny |

|  2 | Dave |

|  4 | Jenny |

|  5 | Jerry |

|  1 | Kevin |

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

5 rows in set (0.07 sec)

從從庫上讀主庫的binlog

mysql> change master to master_host='192.168.56.12',master_port=3306,master_user='repuser',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=2189;

啓動slave

mysql> start slave;或者執行START SLAVE  IO_Thread;和START SLAVE SQL_Thread;

mysql> select * froms tudent;

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

| id | name  |

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

|  3 | Danny |

|  2 | Dave |

|  4 | Jenny |

|  5 | Jerry |

|  1 | Kevin |

|  6 | Lucy |

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

6 rows in set (0.00 sec)

現在數據完全同步

在slave2上進行與slave1的完全一樣的操作即可。



由於個人技術所限有不足之處還請各位指出。可以通過以下兩個羣找到筆者。

北京linux運維求職招聘羣:153677549

Linux運維開發羣:298324302

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章