天天看点

10分钟实现MariaDB多源复制(多主一丛)

 环境:

192.168.1.248 HE1 主库

192.168.1.249 HE2 主库

192.168.1.250 HE3 从库

主库授权备份账户

1

2

<code>mysql&gt;  </code><code>grant</code> <code>SELECT</code><code>,RELOAD,SHOW DATABASES,SUPER,LOCK TABLES,REPLICATION CLIENT,SHOW </code><code>VIEW</code><code>,EVENT,FILE </code><code>on</code> <code>*.* </code><code>to</code> <code>backup@</code><code>'localhost'</code> <code>identified </code><code>by</code> <code>'MANAGER'</code><code>;</code>

<code>mysql&gt; flush </code><code>privileges</code><code>;</code>

建立主从复制的用户名和密码,指定哪个IP地址用户使用这个用户可以访问主库

<code>mysql&gt;  </code><code>grant</code> <code>replication client,replication slave </code><code>on</code> <code>*.* </code><code>to</code> <code>'mysync'</code><code>@</code><code>'192.168.1.%'</code> <code>identified </code><code>by</code> <code>'MANAGER'</code><code>;</code>

主库全库备份

[root@HE1 ~]# mysqldump -ubackup -p  --single-transaction --databases 248db --master-data=2 &gt;248.sql

[root@HE2 ~]# mysqldump -ubackup -p  --single-transaction --databases 249db --master-data=2 &gt;249.sql

拷贝主库备份文件到从库

[root@HE1 ~]# scp -rp 248.sql [email protected]:/root

[root@HE2 ~]# scp -rp 249.sql [email protected]:/root

从库还原

[root@HE3 ~]# mysql -uroot -p &lt;248.sql

Enter password:

[root@HE3 ~]# mysql -uroot -p &lt;249.sql

查看主库备份集中的binlog和position偏移量

[root@HE3 ~]# cat 248.sql |grep "CHANGE MASTER TO MASTER_LOG_FILE='"

-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000017', MASTER_LOG_POS=581;

[root@HE3 ~]# cat 249.sql |grep "CHANGE MASTER TO MASTER_LOG_FILE='"

-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000004', MASTER_LOG_POS=581;

从库:

在从库配置读取主库的IP地址,复制的用户名和密码,从主库哪个BINLOG文件开始读取,偏移量是多少

<code>MariaDB [(none)]&gt;CHANGE MASTER  </code><code>'Master248'</code> <code>TO</code> <code>MASTER_HOST=</code><code>'192.168.1.248'</code><code>,MASTER_USER=</code><code>'mysync'</code><code>,MASTER_PASSWORD=</code><code>'MANAGER'</code><code>,MASTER_PORT=3306,MASTER_LOG_FILE=</code><code>'mysql-bin.000017'</code><code>,MASTER_LOG_POS=581;</code>

<code>MariaDB [(none)]&gt;CHANGE MASTER  </code><code>'Master249'</code> <code>TO</code> <code>MASTER_HOST=</code><code>'192.168.1.249'</code><code>,MASTER_USER=</code><code>'mysync'</code><code>,MASTER_PASSWORD=</code><code>'MANAGER'</code><code>,MASTER_PORT=3306,MASTER_LOG_FILE=</code><code>'mysql-bin.000004'</code><code>,MASTER_LOG_POS=581;</code>

开启从库复制开关

3

4

5

6

7

<code>MariaDB [(none)]&gt; start slave </code><code>'Master248'</code><code>;</code>

<code> </code> 

<code>MariaDB [(none)]&gt; show slave </code><code>'Master248'</code> <code>status\G</code>

<code>MariaDB [(none)]&gt; start slave </code><code>'Master249'</code><code>;</code>

<code>MariaDB [(none)]&gt; show slave </code><code>'Master249'</code> <code>status\G</code>

验证从库状态是否正常主要看下面这两个状态是否为yes          

  Slave_IO_Running: Yes

  Slave_SQL_Running: Yes

8

9

10

11

12

<code>MariaDB [(none)]&gt; show databases;</code>

<code>+</code><code>--------------------+</code>

<code>| </code><code>Database</code>           <code>|</code>

<code>| 248db              |</code>

<code>| 249db              |</code>

<code>| information_schema |</code>

<code>| mysql              |</code>

<code>| performance_schema |</code>

<code>| test               |</code>

<code>6 </code><code>rows</code> <code>in</code> <code>set</code> <code>(0.00 sec)</code>

在248主机上创建表并插入数据

13

14

<code>mysql&gt; use 248db;</code>

<code>Database</code> <code>changed</code>

<code>mysql&gt; </code><code>create</code> <code>table</code> <code>aixuan1(</code>

<code>    </code><code>-&gt; id </code><code>int</code><code>(10) unsigned </code><code>NOT</code> <code>NULL</code> <code>AUTO_INCREMENT,</code>

<code>    </code><code>-&gt; text </code><code>varchar</code><code>(20) </code><code>NOT</code> <code>NULL</code> <code>DEFAULT</code> <code>''</code><code>,</code>

<code>    </code><code>-&gt; </code><code>PRIMARY</code> <code>KEY</code><code>(id))</code>

<code>    </code><code>-&gt; ENGINE=innodb AUTO_INCREMENT=1</code>

<code>    </code><code>-&gt; </code><code>DEFAULT</code> <code>CHARSET=utf8;</code>

<code>Query OK, 0 </code><code>rows</code> <code>affected (0.15 sec)</code>

<code>mysql&gt;</code>

<code>mysql&gt; </code><code>insert</code> <code>into</code> <code>aixuan1(text) </code><code>values</code><code>(</code><code>'aa'</code><code>),(</code><code>'bb'</code><code>),(</code><code>'cc'</code><code>),(</code><code>'dd'</code><code>),(</code><code>'ee'</code><code>),(</code><code>'ff'</code><code>);</code>

<code>Query OK, 6 </code><code>rows</code> <code>affected (0.02 sec)</code>

<code>Records: 6  Duplicates: 0  Warnings: 0</code>

从库验证

<code>MariaDB [(none)]&gt; use 248db;</code>

<code>Reading </code><code>table</code> <code>information </code><code>for</code> <code>completion </code><code>of</code> <code>table</code> <code>and</code> <code>column</code> <code>names</code>

<code>You can turn </code><code>off</code> <code>this feature </code><code>to</code> <code>get a quicker startup </code><code>with</code> <code>-A</code>

<code>MariaDB [248db]&gt; show tables;</code>

<code>+</code><code>-----------------+</code>

<code>| Tables_in_248db |</code>

<code>| aixuan1         |</code>

<code>1 row </code><code>in</code> <code>set</code> <code>(0.00 sec)</code>

在249主机上创建表并插入数据

<code>mysql&gt; use 249db;</code>

<code>mysql&gt; </code><code>create</code> <code>table</code> <code>helei1(</code>

<code>mysql&gt; </code><code>insert</code> <code>into</code> <code>helei1(text) </code><code>values</code><code>(</code><code>'aaa'</code><code>),(</code><code>'bbb'</code><code>),(</code><code>'ccc'</code><code>),(</code><code>'ddd'</code><code>),(</code><code>'eee'</code><code>),(</code><code>'fff'</code><code>);</code>

15

16

17

18

19

20

21

22

23

24

25

<code>MariaDB [248db]&gt; use 249db;</code>

<code>MariaDB [249db]&gt; show tables;</code>

<code>| Tables_in_249db |</code>

<code>| helei1          |</code>

<code>MariaDB [249db]&gt; </code><code>select</code> <code>* </code><code>from</code> <code>helei1;</code>

<code>+</code><code>----+------+</code>

<code>| id | text |</code>

<code>|  1 | aaa  |</code>

<code>|  2 | bbb  |</code>

<code>|  3 | ccc  |</code>

<code>|  4 | ddd  |</code>

<code>|  5 | eee  |</code>

<code>|  6 | fff  |</code>

至此,MariaDB多源复制搭建成功。

 本文转自 dbapower 51CTO博客,原文链接:http://blog.51cto.com/suifu/1830682,如需转载请自行联系原作者