1. 程式人生 > >Centos6.5 Mysql5.7 多主一從 (多臺主機上拉取的資料 合併到同一臺數據庫)

Centos6.5 Mysql5.7 多主一從 (多臺主機上拉取的資料 合併到同一臺數據庫)

我也是多文件參考,摸著石頭過河,花了不少時間,不過最終是配置成功(在配置的時候如果遇到錯誤,請自己找度娘解決)

以下是轉過來的部分做了修改:尊重原創,原創無價

#### 解決思路:

1、主資料庫使用Innodb引擎,並設定sql_mode為 NO_AUTO_CREATE_USER

2、從庫開啟多例項,將多個主庫裡面的資料通過主從複製同步到同一個資料目錄。從庫的每個例項對應一個主庫。多個例項使用同一個資料目錄。

3、從庫使用Myisam引擎,關閉從庫預設的innodb引擎,Myisam引擎可以訪問同一個資料的表。

4、設定主庫和從庫的sql_mode都為NO_AUTO_CREATE_USER,只有這樣主庫的innodb引擎的sql同步到從庫的時候才能執行成功。


#### 方案架構圖:

                                             


#### 環境說明:

主庫-1:192.168.1.1

主庫-2:192.168.1.2

從庫-3:192.168.1.3




#### 實現步驟:(Mysql安裝步驟這裡不在描述)

1、主資料庫配置檔案,多個主庫配置檔案除了server-id不能一樣其他都一樣。(基本配置資訊配置好,mysql可以啟動,其他配置需要每一項新增,每新增一次需要啟動mysql,沒有免費的午餐.......)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 [[email protected] ~] #cat /etc/my.cnf [client] port= 3306 socket=  /tmp/mysql .sock [mysqld] port = 3306
basedir =  /usr/local/mysql datadir =  /data/mysql character- set -server = utf8mb4 default-storage-engine  = InnoDB socket =  /tmp/mysql .sock skip-name-resolv = 1 open_files_limit = 65535  back_log = 103 max_connections = 512 max_connect_errors = 100000 table_open_cache = 2048 tmp-table-size   = 32M max-heap-table-size = 32M #query-cache-type  = 0 query-cache-size  = 0 external-locking = FALSE max_allowed_packet = 32M sort_buffer_size = 2M join_buffer_size = 2M thread_cache_size = 51 query_cache_size = 32M tmp_table_size = 96M max_heap_table_size = 96M query_cache_type=1 log-error= /data/logs/mysqld .log slow_query_log = 1 slow_query_log_file =  /data/logs/slow .log long_query_time = 0.1 # BINARY LOGGING # server- id  = 1 log-bin          =  /data/binlog/mysql-bin log-bin-index    = /data/binlog/mysql-bin .index expire-logs-days = 14 sync_binlog = 1 binlog_cache_size = 4M max_binlog_cache_size = 8M max_binlog_size = 1024M log_slave_updates #binlog_format = row  binlog_format = MIXED    // 這裡使用的混合模式複製 relay_log_recovery = 1 #不需要同步的表 replicate-wild-ignore-table=mydb.sp_counter #不需要同步的庫 replicate-ignore-db = mysql,information_schema,performance_schema key_buffer_size = 32M read_buffer_size = 1M read_rnd_buffer_size = 16M bulk_insert_buffer_size = 64M myisam_sort_buffer_size = 128M myisam_max_sort_file_size = 10G myisam_repair_threads = 1 myisam_recover transaction_isolation = REPEATABLE-READ innodb_additional_mem_pool_size = 16M innodb_buffer_pool_size = 5734M innodb_buffer_pool_load_at_startup = 1 innodb_buffer_pool_dump_at_shutdown = 1 innodb_data_file_path = ibdata1:1024M:autoextend innodb_flush_log_at_trx_commit = 2 innodb_log_buffer_size = 32M innodb_log_file_size = 2G innodb_log_files_in_group = 2 innodb_io_capacity = 4000 innodb_io_capacity_max = 8000 innodb_max_dirty_pages_pct = 50 innodb_flush_method = O_DIRECT innodb_file_format = Barracuda innodb_file_format_max = Barracuda innodb_lock_wait_timeout = 10 innodb_rollback_on_timeout = 1 innodb_print_all_deadlocks = 1 innodb_file_per_table = 1 innodb_locks_unsafe_for_binlog = 0 [mysqldump] quick max_allowed_packet = 32M

2、從庫配置檔案。多個從庫配置檔案除了server-id不能一樣其他都一樣。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 [[email protected] ~]# cat /etc/my.cnf [client] port= 3306 socket= /tmp/mysql.sock [mysqld_multi] # 指定相關命令的路徑 mysqld     =  /usr/local/mysql/bin/mysqld_safe mysqladmin =  /usr/local/mysql/bin/mysqladmin ##複製主庫1的資料## [mysqld2] port = 3306 basedir = /usr/local/mysql datadir = /data/mysql character-set-server = utf8mb4 #指定例項1的sock檔案和pid檔案 socket = /tmp/mysql.sock pid-file=/data/mysql/mysql.pid skip-name-resolv = 1 open_files_limit = 65535  back_log = 103 max_connections = 512 max_connect_errors = 100000 table_open_cache = 2048 tmp-table-size   = 32M max-heap-table-size = 32M query-cache-size  = 0 external-locking = FALSE max_allowed_packet = 32M sort_buffer_size = 2M join_buffer_size = 2M thread_cache_size = 51 query_cache_size = 32M tmp_table_size = 96M max_heap_table_size = 96M query_cache_type=1 #指定第一個例項的錯誤日誌和慢查詢日誌路徑 log-error=/data/logs/mysqld.log slow_query_log = 1 slow_query_log_file = /data/logs/slow.log long_query_time = 0.1 # BINARY LOGGING# # 指定例項1的binlog和relaylog路徑為/data/binlog目錄 # 每個從庫和每個例項的server_id不能一樣。 server-id = 2 log-bin          = /data/binlog/mysql-bin log-bin-index    =/data/binlog/mysql-bin.index relay_log = /data/binlog/mysql-relay-bin relay_log_index = /data/binlog/mysql-relay.index master-info-file = /data/mysql/master.info relay_log_info_file = /data/mysql/relay-log.info read_only = 1 expire-logs-days = 14 sync_binlog = 1 #需要同步的庫,如果不設定,默認同步所有庫。 #replicate- do -db = xxx #不需要同步的表 replicate-wild-ignore-table=mydb.sp_counter #不需要同步的庫 replicate-ignore-db = mysql,information_schema,performance_schema binlog_cache_size = 4M max_binlog_cache_size = 8M max_binlog_size = 1024M log_slave_updates =1 #binlog_format = row  binlog_format = MIXED relay_log_recovery = 1 key_buffer_size = 32M read_buffer_size = 1M read_rnd_buffer_size = 16M bulk_insert_buffer_size = 64M myisam_sort_buffer_size = 128M myisam_max_sort_file_size = 10G myisam_repair_threads = 1 myisam_recover #設定預設引擎為Myisam,下面這些引數一定要加上。 default -storage-engine=MyISAM default -tmp-storage-engine=MYISAM #關閉innodb引擎 skip-innodb innodb = OFF disable-innodb #設定sql_mode模式為NO_AUTO_CREATE_USER sql_mode = NO_AUTO_CREATE_USER #關閉innodb引擎 loose-skip-innodb loose-innodb-trx=0  loose-innodb-locks=0  loose-innodb-lock-waits=0  loose-innodb-cmp=0  loose-innodb-cmp-per-index=0 loose-innodb-cmp-per-index-reset=0 loose-innodb-cmp-reset=0  loose-innodb-cmpmem=0  loose-innodb-cmpmem-reset=0  loose-innodb-buffer-page=0  loose-innodb-buffer-page-lru=0  loose-innodb-buffer-pool-stats=0  loose-innodb-metrics=0  loose-innodb-ft- default -stopword=0  loose-innodb-ft-inserted=0  loose-innodb-ft-deleted=0  loose-innodb-ft-being-deleted=0  loose-innodb-ft-config=0  loose-innodb-ft-index-cache=0  loose-innodb-ft-index-table=0  loose-innodb-sys-tables=0  loose-innodb-sys-tablestats=0  loose-innodb-sys-indexes=0  loose-innodb-sys-columns=0  loose-innodb-sys-fields=0  loose-innodb-sys-foreign=0  loose-innodb-sys-foreign-cols=0     ##複製主庫2的資料## [mysqld3] port = 3307 basedir = /usr/local/mysql datadir = /data/mysql character-set-server = utf8mb4 #指定例項2的sock檔案和pid檔案 socket = /tmp/mysql3.sock pid-file=/data/mysql/mysql3.pid skip-name-resolv = 1 open_files_limit = 65535  back_log = 103 max_connections = 512 max_connect_errors = 100000 table_open_cache = 2048 tmp-table-size   = 32M max-heap-table-size = 32M query-cache-size  = 0 external-locking = FALSE max_allowed_packet = 32M sort_buffer_size = 2M join_buffer_size = 2M thread_cache_size = 51 query_cache_size = 32M tmp_table_size = 96M max_heap_table_size = 96M query_cache_type=1 log-error=/data/logs/mysqld3.log slow_query_log = 1 slow_query_log_file = /data/logs/slow3.log long_query_time = 0.1 # BINARY LOGGING # # 這裡一定要注意,不能把兩個例項的binlog和relaylog放到同一個目錄, # 這裡指定例項2的binlog日誌為/data/binlog2目錄 # 每個從庫和每個例項的server_id不能一樣。 server-id = 22 log-bin          = /data/binlog2/mysql-bin log-bin-index    =/data/binlog2/mysql-bin.index relay_log = /data/binlog2/mysql-relay-bin relay_log_index = /data/binlog2/mysql-relay.index master-info-file = /data/mysql/master3.info relay_log_info_file = /data/mysql/relay-log3.info read_only = 1 expire-logs-days = 14 sync_binlog = 1 #不需要複製的庫 replicate-ignore-db = mysql,information_schema,performance_schema binlog_cache_size = 4M max_binlog_cache_size = 8M max_binlog_size = 1024M log_slave_updates =1 #binlog_format = row  binlog_format = MIXED relay_log_recovery = 1 key_buffer_size = 32M read_buffer_size = 1M read_rnd_buffer_size = 16M bulk_insert_buffer_size = 64M myisam_sort_buffer_size = 128M myisam_max_sort_file_size = 10G myisam_repair_threads = 1 myisam_recover #設定預設引擎為Myisam default -storage-engine=MyISAM default -tmp-storage-engine=MYISAM #關閉innodb引擎 skip-innodb innodb = OFF disable-innodb #設定sql_mode模式為NO_AUTO_CREATE_USER sql_mode = NO_AUTO_CREATE_USER #關閉innodb引擎,下面這些引數一定要加上。 loose-skip-innodb loose-innodb-trx=0  loose-innodb-locks=0  loose-innodb-lock-waits=0  loose-innodb-cmp=0  loose-innodb-cmp-per-index=0 loose-innodb-cmp-per-index-reset=0 loose-innodb-cmp-reset=0 

相關推薦

Centos6.5 Mysql5.7 主機資料 合併同一臺數

我也是多文件參考,摸著石頭過河,花了不少時間,不過最終是配置成功(在配置的時候如果遇到錯誤,請自己找度娘解決) 以下是轉過來的部分做了修改:尊重原創,原創無價 #### 解決思路: 1、主資料庫使用Innodb引擎,並設定sql_mode為 NO_AUTO_CREATE_USER 2、從

MySQL5.7源複製同步配置

MySQL5.7多主一從(多源複製)同步配置(抄襲) 原文地址:https://my.oschina.net/u/2399373/blog/2878650 多主一從,也稱為多源複製,資料流向: 主庫1 -> 從庫s 主庫2 -> 從庫s 主庫n -> 從庫s 應用場

MySQL 5.7 源複製同步配置

下載網站:www.SyncNavigator.CN   客服QQ1793040 ----------------------------------------------------------     關於HKROnline

centos6.5 MySQL5.7 叢 同步資料 --------同步的資料不再同一個資料庫是分開的

                    宣告:在做的時候出現的錯誤請檢視百度,解決,大體思路是這

centos6.5 hadoop2.7 _64位鍵安裝腳本】有問題加我Q直接問

生效 tracker 路徑 開始 cat func iyu 安裝腳本 load #!/bin/bash#@author:feiyuanxing 【既然笨到家,就要努力到家】#@date:2017-01-05#@E-Mail:[email protected]#@TA

Mysql 資料備份

Mysql 多主一從資料備份 概述 對任何一個數據庫的操作都自動應用到另外一個數據庫,始終保持兩個資料庫中的資料一致。 這樣做有如下幾點好處: 可以做災備,其中一個壞了可以切換到另一個。 可以做負載均衡,可以將請求分攤到其中任何一臺上,提高網站吞吐量。 對於異地熱備,尤其適合災備。

centOS6.5 MySQL5.7.24安裝

選擇MySQL5.7的安裝包下載完成後上床至Linux伺服器 使用命令tar -zxvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz解壓安裝包後再使用命令: cp -Rf /usr/mysql/mysql-5.7.24-lin

基於SymmetricDS的資料庫同步方案

團隊最近有個資料同步的需求,大致是兩臺或以上的資料庫(MariaDB)伺服器走VPN通道與一臺資料庫進行資料同步,先不關心VPN通道通迅的問題,對於這種多主一從的資料同步需求,也曾嘗試通過MySQL本身的複製功能配置實現,但貌似不管是MySQL還是MariaDB目前都還沒有

MySQL5.7架構搭建基於GTID方式

系統:Centos6.5資料庫IP:192.168.0.103、192.168.0.104資料庫埠:都是3306搭建MySQL步驟 略(詳見:https://blog.csdn.net/xiaoyi23000/article/details/53200205)1、在103節點

MySQL5.7.17主從複製搭建()教程詳解

mysql> stop slave; #暫停從庫 mysql>CHANGE MASTER TO MASTER_HOST='192.168.0.120',MASTER_USER='repl', MASTER_PASSWORD='[email protected]',MASTER_LOG_

mysql 兩環境搭建5.7.24

## 搭建說明 * 兩主一從,從本質上說,只不過是機器 master-a 和 master-b 互為主從機(熱備),然後通過 **keepalived** 進行高可用配置,使得在同一時間內只會有一臺對外提供服務,實現單寫機制,另一個機器 slave 則作為 master-a 的從機存在(冷備)。 *

mysql之 mysql 5.6不停機主從搭建基於GTID復制

從庫 creat 不停機 event rep ply copy from end 環境說明:版本 version 5.6.25-log 主庫ip: 10.219.24.25從庫ip:10.219.24.22os 版本: centos 6.7已安裝熱備軟件:xtrabacku

mysql之 mysql 5.6不停機雙搭建活躍雙基於日誌點復制

stat 5.6 create 文件夾 eat ima send spec tar 環境說明:版本 version 5.6.25-log 主1庫ip: 10.219.24.25主2庫ip: 10.219.24.22從1庫ip:10.219.24.26os 版本: cento

基於centos6mysql5.7.13主從部署

linux mysql5.7.13 安裝 部署基於centos6的mysql5.7.13主從部署(一)一、實驗環境:兩臺主機安裝Centos6.7 32位操作系統;兩臺Linux安裝同一版本的MySQL,這裏使用mysql5.7.13;mysql1的IP:192.168.100.129mysql2的IP:1

使用實例進行主從復制實踐案例

主從復制 案列環境:多實例10.0.0.52 330610.0.0.52 33073306---->3307復制---->3309 ---->3008復制3306<---->3307 架構實踐:3306---->33071開啟主庫binlog,配置server-id[

mysql之 mysql 5.6不停機主從搭建基於日誌點複製

環境說明: 版本 version 5.6.25-log  主庫ip: 10.219.24.25 從庫ip:10.219.24.22 os 版本: centos 6.7 已安裝熱備軟體:xtrabackup  防火牆已關 補充: 主從複製原理: http://blog.

伺服器使用Docker設定三哨兵redis完整

本來應該續之前那篇部落格[Docker配置redis哨兵模式——多伺服器·上](https://www.cnblogs.com/lan-blue/articles/13929427.html)寫一個下篇的,但是忽然意識到應該將必要的環境打包為一個基礎映象,在此基礎上建立與redis有關的映象,這樣既能夠快速打

基於centos6mysql5.7.13主從部署

linux mysql主從 部署基於centos6的mysql5.7.13主從部署(二)一、部署主mysql說明:mysql1是主機,mysql2是備機。創建庫[[email protected]/* */ ~]# mysql -uroot -p123456mysql> create da

基於centos6mysql5.7.13主從部署

linux mysql主從 部署基於centos6的mysql5.7.13主從部署(三) 主從測試登入(主)mysql1[[email protected]/* */ ~]# mysql -uroot -p123456mysql> unlock tables; #解鎖,對應上一章節的表的

mysql兩配置

mysqld_multi管理多個數據庫實例 數據庫兩主一從同步 三臺服務器:主機192.168.11.126,192.168.11.127,從:192.168.11.128準備同步的庫:192.168.11.126 ,account_db,192.168.11.127,game_db;首先在各自服務器