环境:
192.168.1.248 HE1 主库
192.168.1.249 HE2 主库
192.168.1.250 HE3 从库
主库授权备份账户
1
2
<code>mysql> </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> flush </code><code>privileges</code><code>;</code>
建立主从复制的用户名和密码,指定哪个IP地址用户使用这个用户可以访问主库
<code>mysql> </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 >248.sql
[root@HE2 ~]# mysqldump -ubackup -p --single-transaction --databases 249db --master-data=2 >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 <248.sql
Enter password:
[root@HE3 ~]# mysql -uroot -p <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)]>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)]>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)]> start slave </code><code>'Master248'</code><code>;</code>
<code> </code>
<code>MariaDB [(none)]> show slave </code><code>'Master248'</code> <code>status\G</code>
<code>MariaDB [(none)]> start slave </code><code>'Master249'</code><code>;</code>
<code>MariaDB [(none)]> 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)]> 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> use 248db;</code>
<code>Database</code> <code>changed</code>
<code>mysql> </code><code>create</code> <code>table</code> <code>aixuan1(</code>
<code> </code><code>-> id </code><code>int</code><code>(10) unsigned </code><code>NOT</code> <code>NULL</code> <code>AUTO_INCREMENT,</code>
<code> </code><code>-> text </code><code>varchar</code><code>(20) </code><code>NOT</code> <code>NULL</code> <code>DEFAULT</code> <code>''</code><code>,</code>
<code> </code><code>-> </code><code>PRIMARY</code> <code>KEY</code><code>(id))</code>
<code> </code><code>-> ENGINE=innodb AUTO_INCREMENT=1</code>
<code> </code><code>-> </code><code>DEFAULT</code> <code>CHARSET=utf8;</code>
<code>Query OK, 0 </code><code>rows</code> <code>affected (0.15 sec)</code>
<code>mysql></code>
<code>mysql> </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)]> 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]> 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> use 249db;</code>
<code>mysql> </code><code>create</code> <code>table</code> <code>helei1(</code>
<code>mysql> </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]> use 249db;</code>
<code>MariaDB [249db]> show tables;</code>
<code>| Tables_in_249db |</code>
<code>| helei1 |</code>
<code>MariaDB [249db]> </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,如需转载请自行联系原作者