一、主伺服器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)]> 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)]> 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)]> 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)]> 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)]> start slave;</code>
<code>檢視伺服器狀态</code>
<code>MariaDB [(none)]> 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)]> 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)]> create database mydb;</code>
<code>MariaDB [(none)]> 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)]> 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)]> 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)]> insert into mydb.t1(name) values (</code><code>'wusong'</code><code>),(</code><code>'luzhishen'</code><code>);</code>
5.在主伺服器1上查詢
<code>MariaDB [(none)]> 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,如需轉載請自行聯系原作者