天天看點

MariaDB七之雙主複制

一、主伺服器1的配置

   1、資料庫初始化

1

2

3

4

5

6

<code>[root@bogon ~]#  groupadd -r mysql</code>

<code>[root@bogon ~]# mkdir -p /mydata/data</code>

<code>[root@bogon ~]#  useradd -g mysql -r -s /sbin/nologin mysql</code>

<code>[root@bogon ~]# chown -R mysql:mysql /mydate</code>

<code>[root@bogon mysql]# chown mysql.root * -R</code>

<code>[root@bogon mysql]# scripts/mysql_install_db --user=mysql --databasedir=/mydata/data/</code>

     2、準備配置檔案和伺服器腳本

<code>[root@bogon mysql]# cp support-files/my-large.cnf /etc/my.cnf</code>

<code>[root@bogon mysql]# cp support-files/mysql.server /etc/init.d/mysqld</code>

     3、修改主伺服器1的配置檔案

7

8

9

10

11

12

13

14

15

16

17

<code>確定在[mysqld]中有以下配置選項</code>

<code>thread_concurrency = </code><code>2</code>

<code>線程數為cpu個數*</code><code>2</code>

<code>datadir=/mydata/data</code>

<code>資料目錄的位置</code>

<code>innodb_file_per_table = ON</code>

<code>開啟InnoDB資料表單獨存放的功能</code>

<code>log-bin=/mydata/logs/master-bin</code>

<code>二進制日志存儲位置及命名方式</code>

<code>relay-log=relay-mysql</code>

<code>中繼日志的存儲位置及命名方式</code>

<code>auto-increment-offset=</code><code>1</code>

<code>自動增長類型的初始值</code>

<code>auto-increment-increment=</code><code>2</code>

<code>自動增長類型的步長</code>

<code>server-id       = </code><code>100</code>

<code>伺服器的id号</code>

      4.授權主伺服器2有複制權限

<code>MariaDB [(none)]&gt;  grant replication slave,replication client on *.* to </code><code>'wangfeng7399'</code><code>@</code><code>'192.168.1.114'</code> <code>identified by </code><code>'wangfeng7399'</code><code>;</code>

   5.檢視主伺服器1的二進制日志檔案和記錄位置

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

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

<code>| File              | Position | Binlog_Do_DB | Binlog_Ignore_DB |</code>

<code>| master-bin.</code><code>000002</code> <code>|      </code><code>538</code> <code>|              |                  |</code>

二、主伺服器2的配置

      1.初始化資料庫

      2.準備配置檔案和伺服器腳本

      3.修改主伺服器2的配置檔案

<code>auto-increment-offset=</code><code>2</code>

<code>server-id       = </code><code>200</code>

       4.授權主伺服器1能夠有複制權限

<code>MariaDB [(none)]&gt; grant replication slave,replication client on *.* to </code><code>'wangfeng7399'</code><code>@</code><code>'192.168.1.112'</code> <code>identified by </code><code>'wangfeng7399'</code><code>;</code>

       5.檢視主伺服器2的二進制日志檔案和記錄位置

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

<code>| File               | Position | Binlog_Do_DB | Binlog_Ignore_DB |</code>

<code>| master1-bin.</code><code>000003</code> <code>|      </code><code>558</code> <code>|              |                  |</code>

三、兩個伺服器建立連接配接

     1.主伺服器1與主伺服器2建立連接配接

18

19

<code>MariaDB [(none)]&gt; change master to master_host=</code><code>'192.168.1.114'</code><code>,master_user=</code><code>'wangfeng7399'</code><code>,master_password=</code><code>'wangfeng7399'</code><code>,master_log_file=</code><code>'master1-bin.000003'</code><code>,master_log_pos=</code><code>558</code><code>;</code>

<code>啟動複制線程</code>

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

<code>檢視伺服器狀态</code>

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

<code>*************************** </code><code>1</code><code>. row ***************************</code>

<code>               </code><code>Slave_IO_State: Waiting </code><code>for</code> <code>master to send event</code>

<code>                  </code><code>Master_Host: </code><code>192.168</code><code>.</code><code>1.114</code>

<code>                  </code><code>Master_User: wangfeng7399</code>

<code>                  </code><code>Master_Port: </code><code>3306</code>

<code>                </code><code>Connect_Retry: </code><code>60</code>

<code>              </code><code>Master_Log_File: master1-bin.</code><code>000003</code>

<code>          </code><code>Read_Master_Log_Pos: </code><code>558</code>

<code>               </code><code>Relay_Log_File: bogon-relay-bin.</code><code>000002</code>

<code>                </code><code>Relay_Log_Pos: </code><code>537</code>

<code>        </code><code>Relay_Master_Log_File: master1-bin.</code><code>000003</code>

<code>             </code><code>Slave_IO_Running: Yes</code>

<code>            </code><code>Slave_SQL_Running: Yes</code>

<code>可以看到我們的線程都已經啟動了</code>

      2.主伺服器2與主伺服器1建立連接配接

<code>MariaDB [(none)]&gt; change master to master_host=</code><code>'192.168.1.112'</code><code>,master_user=</code><code>'wangfeng7399'</code><code>,master_password=</code><code>'wangfeng7399'</code><code>,master_log_file=</code><code>'master-bin.000002'</code><code>,master_log_pos=</code><code>538</code><code>;</code>

<code>                  </code><code>Master_Host: </code><code>192.168</code><code>.</code><code>1.112</code>

<code>              </code><code>Master_Log_File: master-bin.</code><code>000002</code>

<code>          </code><code>Read_Master_Log_Pos: </code><code>538</code>

<code>               </code><code>Relay_Log_File: relay-mysql.</code><code>000002</code>

<code>                </code><code>Relay_Log_Pos: </code><code>536</code>

<code>        </code><code>Relay_Master_Log_File: master-bin.</code><code>000002</code>

<code>可以看到線程啟動成功</code>

四、測試

    1.在任意一個主伺服器上建立一個資料庫mydb,本處,我們在主伺服器1上建立

<code>MariaDB [(none)]&gt; create database mydb;</code>

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

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

<code>| Database           |</code>

<code>| information_schema |</code>

<code>| mydb               |</code>

<code>| mysql              |</code>

<code>| performance_schema |</code>

<code>| test               |</code>

       2.在主伺服器2上檢視

       3.在主伺服器2上建立表t1,字段為id(自動增長,主鍵,不為空)name(20個字元),并添加資料zhangsan和lisi

<code>MariaDB [(none)]&gt;  create table mydb.t1(id </code><code>int</code> <code>unsigned not </code><code>null</code> <code>primary key auto_increment,name char(</code><code>20</code><code>));</code>

<code>MariaDB [(none)]&gt; insert into mydb.t1(name) values (</code><code>'zhangsan'</code><code>),(</code><code>'lisi'</code><code>);</code>

       4.在主伺服器1上t1表中,添加wusong和luzhishen

<code>MariaDB [(none)]&gt; insert into mydb.t1(name) values (</code><code>'wusong'</code><code>),(</code><code>'luzhishen'</code><code>);</code>

       5.在主伺服器1上查詢

<code>MariaDB [(none)]&gt; select * from mydb.t1;</code>

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

<code>| id | name      |</code>

<code>|  </code><code>1</code> <code>| wusong    |</code>

<code>|  </code><code>2</code> <code>| zhangsan  |</code>

<code>|  </code><code>3</code> <code>| luzhishen |</code>

<code>|  </code><code>4</code> <code>| lisi      |</code>

       6.在伺服器2上查詢

       大功告成,如有錯誤,請各位大神多多批評指正,謝謝

本文轉自wangfeng7399 51CTO部落格,原文連結:http://blog.51cto.com/wangfeng7399/1395024,如需轉載請自行聯系原作者