1. 程式人生 > >MySQL 主從複製 + MySQL Router 部署測試

MySQL 主從複製 + MySQL Router 部署測試

4個節點

1、MySQLDB1  192.168.1.41  (MySQL 主節點)

2、MySQLDB2  192.168.1.42  (MySQL從節點)

3、MySQLDB3  192.168.1.43  (MySQL從節點)

4、MySQLRouter  192.168.1.47  (MySQLRouter服務節點)

軟體版本說明:

1、作業系統  CentOS6.6_x86_64

2、MySQLServer  5.7.16

3、MySQLRouter  2.0.4

一、部署MySQL主從複製

----------------------- 複製建立及配置主要步驟 -----------------------------------------

1、Master 端啟用二進位制日誌,指定唯一的 server_id

2、Slave 端配置唯一的 server_id

3、Master 端建立複製專用帳號

4、記錄 Master 端日誌資訊並建立映象

5、配置 Slave 端的連線

-------------------------------------------------------------------------------------------

1、系統平臺: CentOS 6.6 (64位)

2、軟體版本:mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz

3、為了模擬現實環境情況做如下前提條件假設:

     1)、在搭建Master和Salve1時為一個全新的環境,即主資料庫中無任何資料,Master和Slave1均為新環境部署

     2)、在現有複製環境(Master+Slave1)中新增一個Slave2節點,現有複製環境中已有資料存在和修改過程執行

     3)、Master節點的埠為3306,Slave1節點埠為3306,Slave2節點埠為3306

     4)、為了部署方便,安裝包使用二進位制程式進行部署

-----------------------------------------  部署實現過程  -----------------------------------------------

1、使用者及相關目錄建立

--MySQLDB1 節點

[[email protected] ~]# groupadd mysql

[[email protected] ~]# useradd mysql -g mysql

[[email protected] ~]# mkdir /mysql

[[email protected] ~]# mkdir /mytmp

[[email protected] ~]# passwd mysql

--MySQLDB2 節點

[[email protected] ~]# groupadd mysql

[[email protected] ~]# useradd mysql -g mysql

[[email protected] ~]# mkdir /mysql

[[email protected] ~]# mkdir /mytmp

[[email protected] ~]# passwd mysql

--MySQLDB3 節點

[[email protected] ~]# groupadd mysql

[[email protected] ~]# useradd mysql -g mysql

[[email protected] ~]# mkdir /mysql

[[email protected] ~]# mkdir /mytmp

[[email protected] ~]# passwd mysql

2、設定使用者作業系統資源的限制

--以避免在啟動mysql服務是會報:

2017-04-11 17:27:03 3175 [Warning] Buffered warning: Changed limits: max_open_files: 1024 (requested 5000)

2017-04-11 17:27:03 3175 [Warning] Buffered warning: Changed limits: table_open_cache: 431 (requested 2000)

之類的警告資訊

[[email protected] ~]# vi /etc/security/limits.conf

在檔案的最後新增如下內容

mysql soft nproc 2047

mysql hard nproc 16384

mysql soft nofile 1024

mysql hard nofile 65535

3、解壓上傳的二進位制安裝包程式並複製到目標目錄下

--MySQLDB1 節點

[[email protected] mytmp]# tar -xzvf mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz 

[[email protected] mytmp]# mv mysql-5.7.16-linux-glibc2.5-x86_64 /mysql/3306

--MySQLDB2 節點

[[email protected] mytmp]# tar -xzvf mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz 

[[email protected] mytmp]# mv mysql-5.7.16-linux-glibc2.5-x86_64 /mysql/3306

--MySQLDB3 節點

[[email protected] mytmp]# tar -xzvf mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz 

[[email protected] mytmp]# mv mysql-5.7.16-linux-glibc2.5-x86_64 /mysql/3306

4、便於方便管理建立單獨的日誌檔案存放目錄

--MySQLDB1 節點

[[email protected] 3306]# mkdir logs

--MySQLDB2 節點

[[email protected] 3306]# mkdir logs

--MySQLDB3 節點

[[email protected] 3306]# mkdir logs

5、目錄許可權修改

--MySQLDB1 節點

[[email protected] ~]# chown -R mysql:mysql /mysql

--MySQLDB2 節點

[[email protected] ~]# chown -R mysql:mysql /mysql

--MySQLDB3 節點

[[email protected] ~]# chown -R mysql:mysql /mysql

6、資料庫初始化安裝

--MySQLDB1 節點

[[email protected] ~]# su - mysql

[[email protected] ~]$ cd /mysql/3306

[[email protected] 3306]$ ./bin/mysqld  --initialize --user=mysql --basedir=/mysql/3306 --datadir=/mysql/3306/data

--MySQLDB2 節點

[[email protected] ~]# su - mysql

[[email protected] ~]$ cd /mysql/3306

[[email protected] 3306]$ ./bin/mysqld  --initialize --user=mysql --basedir=/mysql/3306 --datadir=/mysql/3306/data

--MySQLDB3 節點

[[email protected] ~]# su - mysql

[[email protected] ~]$ cd /mysql/3306

[[email protected] 3306]$ ./bin/mysqld  --initialize --user=mysql --basedir=/mysql/3306 --datadir=/mysql/3306/data

注:1、資料庫初始化的命令與5.6版本有所不同

   2、資料庫初始化完後,會自動為 root 使用者生成一個密碼,記住該密碼,

             不過該密碼很快很過期,所以需要在配置檔案新增 skip-grant-tables 來啟動資料庫例項

3、安裝aio依賴包: yum  install  libaio*

7、引數檔案配置

--MySQLDB1 節點  /mysql/3306/my.cnf

[client]

default_character_set = utf8

port = 3306

socket = /tmp/mysql3306.sock

[mysqld]

basedir = /mysql/3306

datadir = /mysql/3306/data

user = mysql

port = 3306

server_id = 13306

character_set_server = utf8

socket = /tmp/mysql3306.sock

pid-file = /tmp/mysql3306.pid

log-bin = /mysql/3306/logs/bin_log

relay-log = /mysql/3306/logs/relay_log

log-error = /mysql/3306/logs/mysql_error.log

explicit_defaults_for_timestamp = true

expire_logs_days = 10

max_binlog_size = 100M

binlog-do-db = testdb   #複製資料庫名稱

binlog-ignore-db = mysql

--MySQLDB2 節點 /mysql/3306/my.cnf

[client]

default_character_set = utf8

port = 3306

socket = /tmp/mysql3306.sock

[mysqld]

basedir = /mysql/3306

datadir = /mysql/3306/data

user = mysql

port = 3306

server_id = 23306

character_set_server = utf8

socket = /tmp/mysql3306.sock

pid-file = /tmp/mysql3306.pid

log-bin = /mysql/3306/logs/bin_log

relay-log = /mysql/3306/logs/relay_log

log-error = /mysql/3306/logs/mysql_error.log

explicit_defaults_for_timestamp = true

expire_logs_days = 10

max_binlog_size = 100M

--MySQLDB3 節點 /mysql/3306/my.cnf

[client]

default_character_set = utf8

port = 3306

socket = /tmp/mysql3306.sock

[mysqld]

basedir = /mysql/3306

datadir = /mysql/3306/data

user = mysql

port = 3306

server_id = 33306

character_set_server = utf8

socket = /tmp/mysql3306.sock

pid-file = /tmp/mysql3306.pid

log-bin = /mysql/3306/logs/bin_log

relay-log = /mysql/3306/logs/relay_log

log-error = /mysql/3306/logs/mysql_error.log

explicit_defaults_for_timestamp = true

expire_logs_days = 10

max_binlog_size = 100M

8、清理配置引數檔案

在Linux平臺下,mysql程式預設會按照以下順序掃描路徑尋找配置檔案

/etc/my.cnf

/etc/mysql/my.cnf

SYSCONFDIR/my.cnf   #通過CMake原始碼編譯時指定的SYSCONFDIR的引數指定的路徑

$MYSQL_HOME/my.cnf  #MYSQL_HOME環境變數所在路徑,即mysql安裝路徑(basedir)

~/.my.cnf  #~表示到當更前使用者根目錄下尋找

通過命令  find  /  -iname  my.cnf  查詢配置檔案的存在性,僅保留 MYSQL_HOME/my.cnf 配置檔案。

注:使用如下命令可檢視mysql例項的配置檔案搜尋順序

[[email protected] bin]# mysql --help | grep '/my.cnf'

9、配置啟動指令碼

--MySQLDB1 節點例項

[[email protected] 3306]# cp support-files/mysql.server /etc/init.d/mysql3306

[[email protected] 3306]# vi /etc/init.d/mysql3306

將如下內容

#basedir=...

#datadir=...

修改為:

basedir=/mysql/3306

datadir=/mysql/3306/data

--MySQLDB2 節點例項

[[email protected] 3306]# cp support-files/mysql.server /etc/init.d/mysql3306

[[email protected] 3306]# vi /etc/init.d/mysql3306

將如下內容

#basedir=...

#datadir=...

修改為:

basedir=/mysql/3306

相關推薦

MySQL 主從複製 + MySQL Router 部署測試

4個節點 1、MySQLDB1  192.168.1.41  (MySQL 主節點) 2、MySQLDB2  192.168.1.42  (MySQL從節點) 3、MySQLDB3  192.168.1.43  (MySQL從節點) 4、MyS

部署MySQL主從複製與讀寫分離

一、實驗壞境 1.一臺CentOS 7作為客戶端測試,對應的地址為:192.168.80.1202.一臺CentOS 7作為Amoeba前端代理伺服器,對應的地址為:192.168.80.1103.一臺CentOS 7作為mysql主伺服器,對應的地址為:192.168.80.1004.兩臺CentOS 7

mysql 主從復制以及binlog 測試

eba HA 可用 note 性能問題 ash 互為主從 add yum ###mysql查看binlog日誌內容 https://blog.csdn.net/nuli888/article/details/52106910 mysql的binlog日誌位置可通過sho

MySQL主從複製(Replication for Backup)

環境:MySQL5.7,VMware-Workstation-12-Pro,Windows-10,CentOS-7.5,Xshell5 1. 基本概念和操作思路 主從複製能做什麼 資料庫的主從複製,是一臺主資料庫機器(Master)把自己的資料,複製到一臺或多臺從機器(Slaves)上。主從機器的通訊方

MYSQL主從複製+讀寫分離

案例 搭建MYSQL主從複製 這裡mysql伺服器都裝好了的 yum -y install ntp #裝ntp時間同步 vim /etc/ntp.conf #配置檔案 server 127.127.1.0 fudge 127.127.1.0 strat

mysql主從複製讀寫分離之——proxysql應用

一、說明ProxySQL是一個開源的MySQL代理伺服器,這意味著它充當MySQL伺服器和訪問其資料庫的應用程式之間的中介。ProxySQL可以通過在多個數據庫伺服器池之間分配流量來提高效能,並且如果一個或多個數據庫伺服器發生故障,還可以通過自動故障切換到備用資料庫來提高可用性。 系統環境:master1:

MySQL主從複製,並行複製,半同步複製和組複製

主從複製 主從複製過程存在三個執行緒,Master端的I/O執行緒,Slave的I/O執行緒與SQL執行緒。Master端需要開啟binlog日誌,Slave端需要開啟relaylog。 1、Slave端的I/O讀取master.info檔案,獲取binlog檔名和位置點,然後向Mast

MySQL主從複製遇到的錯誤

記錄下配置主從資料庫中遇到的問題: 問題如下: ​​​​​​​show slave status \G 顯現錯誤如下 Error 'Can't drop database 'Springboot'; database doesn't exist' on query. Default dat

windows 下mysql主從複製

準備 1.主伺服器:172.28.92.175 2.從伺服器:172.16.8.94 3.待同步資料庫:share 主從複製 1.首先在兩臺機器上安裝mysql,可以參考我之前的文章 2.在主伺服器上的my.ini裡新增一下內容,重啟服務 replicate-do-db

MYSQL主從複製的簡單實現

系統環境:CENTOS7 MYSQL版本,status;第一行,mysql  Ver 14.14 Distrib 5.7.22, for linux-glibc2.12 (x86_64) using  EditLine wrapper 主庫:192.168.156.75

複習電商筆記-19-mysql主從複製接受和操作

  第五天:MySQL主從複製+Amoeba讀寫分離 思考: 序號 知識點 型別 難度係數 掌握程度  

MySQL 主從複製 主主複製(3)

一.主從複製 1.描述 mysql主從複製實現的原理就是binlog日誌,主節點負責資料庫寫操作,從節點負責讀操作,從節點上不需要使用事務,能夠大大提高資料庫的效能. 準備三臺節點: 192.168.100.193  master 192.168.100.194&nbs

44、mysql主從複製實戰

主從複製的配置 軟體版本 1.雙方的MySQL要一致 2.如果不一致:主的要低於從的 從哪兒開始複製: 1.都從0開始 2.主伺服器已經執行一段時間,並且存在不小的資料集:把主伺服器備份,然後在從伺服器恢復,從主伺服器上備份處的位置開始複製 配置過程: 主伺服器: 1.改s

45、mysql主從複製應用擴充套件

mysql主從複製應用擴充套件 1.主從伺服器的時間要同步(NTP) 建立一個時間伺服器 */5 * * * * /user/sbin/ntpdate ntpserver &> /dev/null 2.如何限制從伺服器只讀(配置在mysqld中) 在從伺服器上啟動read

mysql主從複製例項

第一步:需要在mysql主伺服器的my.conf的配置檔案中修改你server_id和開啟bin-log日誌 第二步:在mysql從伺服器的my.conf配置檔案中修改server_id以及開啟relay-log的中繼日誌和關閉bin-log日誌 第三步,登入mysql主的伺服器然

Linux系統實現MySQL主從複製

Linux系統實現mysql主從複製 1、主從伺服器分別作以下操作: 1.1、版本一致 1.2、初始化表,並在後臺啟動mysql 1.3、修改root的密碼 *2、修改主伺服器master: 1 #vi /etc/my.cnf 2 [mysqld] 3 log-bin=mysql-b

mysql主從複製配置!轉!最簡!親測可用!18年11月21日

轉發地址:https://blog.csdn.net/deeplearnings/article/details/78398526   1、主從伺服器分別作以下操作:   1.1、版本一致   1.2、初始化表,並在後臺啟動mysql   1.3、修改

(二)mysql主從複製搭建

mysql通過什麼實現主從複製? 通過mysql本身自帶的binlog日誌檔案來實現主從複製,mysql會把所有的操作儲存在binlog日誌中,從庫同步主庫中的binlog日誌,從庫得到主庫的操作記錄,從庫再執行記錄,實現了主從複製,資料一致。 主從優勢:資料庫備份  &nbs

MySQL主從複製之ROW+GTID

一、基礎: 1.複製主要有3點好處 1)實現在不同伺服器上的資料分佈,可以將資料讀取進行負載均衡; 2)增強了資料安全性,減少主庫的connections,可以實現資料高可用和故障切換; 3)實現資料庫線上升級 2.二進位制日誌3種格式 1)STATEMENT格式 優點:日誌記錄量相對較小,節約

mysql主從複製介紹

Mysql支援單項、雙向、鏈式級聯、實時、非同步複製,在複製過程中,一臺伺服器充當主伺服器(master),另一個或多個其他的伺服器充當從伺服器(lave)。 複製可以是單向:M-->S,也可以是雙向M<-->M,也可以多M環狀同步等,不推薦雙向、環狀和多主一從複製方式 如果設定了鏈式級