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
4個節點
1、MySQLDB1 192.168.1.41 (MySQL 主節點)
2、MySQLDB2 192.168.1.42 (MySQL從節點)
3、MySQLDB3 192.168.1.43 (MySQL從節點)
4、MyS 一、實驗壞境
1.一臺CentOS 7作為客戶端測試,對應的地址為:192.168.80.1202.一臺CentOS 7作為Amoeba前端代理伺服器,對應的地址為:192.168.80.1103.一臺CentOS 7作為mysql主伺服器,對應的地址為:192.168.80.1004.兩臺CentOS 7 eba HA 可用 note 性能問題 ash 互為主從 add yum ###mysql查看binlog日誌內容
https://blog.csdn.net/nuli888/article/details/52106910
mysql的binlog日誌位置可通過sho 環境:MySQL5.7,VMware-Workstation-12-Pro,Windows-10,CentOS-7.5,Xshell5
1. 基本概念和操作思路
主從複製能做什麼
資料庫的主從複製,是一臺主資料庫機器(Master)把自己的資料,複製到一臺或多臺從機器(Slaves)上。主從機器的通訊方
案例
搭建MYSQL主從複製
這裡mysql伺服器都裝好了的
yum -y install ntp #裝ntp時間同步
vim /etc/ntp.conf #配置檔案
server 127.127.1.0
fudge 127.127.1.0 strat 一、說明ProxySQL是一個開源的MySQL代理伺服器,這意味著它充當MySQL伺服器和訪問其資料庫的應用程式之間的中介。ProxySQL可以通過在多個數據庫伺服器池之間分配流量來提高效能,並且如果一個或多個數據庫伺服器發生故障,還可以通過自動故障切換到備用資料庫來提高可用性。
系統環境:master1:
主從複製
主從複製過程存在三個執行緒,Master端的I/O執行緒,Slave的I/O執行緒與SQL執行緒。Master端需要開啟binlog日誌,Slave端需要開啟relaylog。 1、Slave端的I/O讀取master.info檔案,獲取binlog檔名和位置點,然後向Mast
記錄下配置主從資料庫中遇到的問題:
問題如下:
show slave status \G
顯現錯誤如下
Error 'Can't drop database 'Springboot'; database doesn't exist' on query. Default dat
準備
1.主伺服器:172.28.92.175
2.從伺服器:172.16.8.94
3.待同步資料庫:share
主從複製
1.首先在兩臺機器上安裝mysql,可以參考我之前的文章 2.在主伺服器上的my.ini裡新增一下內容,重啟服務
replicate-do-db
系統環境:CENTOS7
MYSQL版本,status;第一行,mysql Ver 14.14 Distrib 5.7.22, for linux-glibc2.12 (x86_64) using EditLine wrapper
主庫:192.168.156.75
第五天:MySQL主從複製+Amoeba讀寫分離
思考:
序號
知識點
型別
難度係數
掌握程度
一.主從複製
1.描述
mysql主從複製實現的原理就是binlog日誌,主節點負責資料庫寫操作,從節點負責讀操作,從節點上不需要使用事務,能夠大大提高資料庫的效能.
準備三臺節點:
192.168.100.193 master
192.168.100.194&nbs
主從複製的配置
軟體版本
1.雙方的MySQL要一致
2.如果不一致:主的要低於從的
從哪兒開始複製:
1.都從0開始
2.主伺服器已經執行一段時間,並且存在不小的資料集:把主伺服器備份,然後在從伺服器恢復,從主伺服器上備份處的位置開始複製
配置過程:
主伺服器:
1.改s
mysql主從複製應用擴充套件
1.主從伺服器的時間要同步(NTP)
建立一個時間伺服器
*/5 * * * * /user/sbin/ntpdate ntpserver &> /dev/null
2.如何限制從伺服器只讀(配置在mysqld中)
在從伺服器上啟動read
第一步:需要在mysql主伺服器的my.conf的配置檔案中修改你server_id和開啟bin-log日誌
第二步:在mysql從伺服器的my.conf配置檔案中修改server_id以及開啟relay-log的中繼日誌和關閉bin-log日誌
第三步,登入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
轉發地址:https://blog.csdn.net/deeplearnings/article/details/78398526
1、主從伺服器分別作以下操作: 1.1、版本一致 1.2、初始化表,並在後臺啟動mysql 1.3、修改
mysql通過什麼實現主從複製?
通過mysql本身自帶的binlog日誌檔案來實現主從複製,mysql會把所有的操作儲存在binlog日誌中,從庫同步主庫中的binlog日誌,從庫得到主庫的操作記錄,從庫再執行記錄,實現了主從複製,資料一致。
主從優勢:資料庫備份 &nbs 一、基礎:
1.複製主要有3點好處
1)實現在不同伺服器上的資料分佈,可以將資料讀取進行負載均衡;
2)增強了資料安全性,減少主庫的connections,可以實現資料高可用和故障切換;
3)實現資料庫線上升級
2.二進位制日誌3種格式
1)STATEMENT格式
優點:日誌記錄量相對較小,節約 Mysql支援單項、雙向、鏈式級聯、實時、非同步複製,在複製過程中,一臺伺服器充當主伺服器(master),另一個或多個其他的伺服器充當從伺服器(lave)。
複製可以是單向:M-->S,也可以是雙向M<-->M,也可以多M環狀同步等,不推薦雙向、環狀和多主一從複製方式
如果設定了鏈式級 相關推薦
MySQL 主從複製 + MySQL Router 部署測試
部署MySQL主從複製與讀寫分離
mysql 主從復制以及binlog 測試
MySQL主從複製(Replication for Backup)
MYSQL主從複製+讀寫分離
mysql主從複製讀寫分離之——proxysql應用
MySQL主從複製,並行複製,半同步複製和組複製
MySQL主從複製遇到的錯誤
windows 下mysql主從複製
MYSQL主從複製的簡單實現
複習電商筆記-19-mysql主從複製接受和操作
MySQL 主從複製 主主複製(3)
44、mysql主從複製實戰
45、mysql主從複製應用擴充套件
mysql主從複製例項
Linux系統實現MySQL主從複製
mysql主從複製配置!轉!最簡!親測可用!18年11月21日
(二)mysql主從複製搭建
MySQL主從複製之ROW+GTID
mysql主從複製介紹