濮阳杆衣贸易有限公司

主頁 > 知識庫 > MySQL主從搭建(多主一從)的實現(xiàn)思路與步驟

MySQL主從搭建(多主一從)的實現(xiàn)思路與步驟

熱門標簽:催天下外呼系統(tǒng) 呂梁外呼系統(tǒng) 武漢電銷機器人電話 北京金倫外呼系統(tǒng) 大豐地圖標注app 南太平洋地圖標注 html地圖標注并導(dǎo)航 400電話辦理服務(wù)價格最實惠 400電話變更申請

背景:

由于最近公司項目好像有點受不住并發(fā)壓力了,優(yōu)化迫在眉睫。由于當前系統(tǒng)是單數(shù)據(jù)庫系統(tǒng)原因,能優(yōu)化的地方也盡力優(yōu)化了但是數(shù)據(jù)庫瓶頸還是嚴重限制了項目的并發(fā)能力。所以就考慮了添加數(shù)據(jù)庫來增大項目并發(fā)能力。

思路:

1: 創(chuàng)建集中庫: 主要就是存儲歷史數(shù)據(jù)。作為查詢使用。

2:創(chuàng)建多個業(yè)務(wù)庫:滿足項目高并發(fā)的能力。

demo環(huán)境:

1: VM ware 虛擬機 - centOS 7

centOS-1: 192.168.194.3 主 100-------業(yè)務(wù)庫

centOS-2: 192.168.194.4 主 200-------業(yè)務(wù)庫

centOS-3: 192.168.194.5 從 300-------相當于集中庫

2:mysql 5.7

步驟

1: 主庫100

設(shè)置my.cnf。

[mysqld]
lower_case_table_names = 1 # 表名不區(qū)分大小寫
server-id = 100
log_bin = mysql-bin  #開始binlog記錄
binlog_format = MIXED 
#每次事務(wù)提交,MySQL都會把binlog刷下去,是最安全但是性能損耗最大的設(shè)置。
#這樣的話,在數(shù)據(jù)庫所在的主機操作系統(tǒng)損壞或者突然掉電的情況下,系統(tǒng)才有可能丟失1個事務(wù)的數(shù)據(jù)
#但是binlog雖然是順序IO,但是設(shè)置sync_binlog=1,多個事務(wù)同時提交,
#同樣很大的影響MySQL和IO性能。按需設(shè)置。
sync_binlog = 1 
# 二進制日志自動刪除/過期的天數(shù)。默認值為0,表示不自動刪除。
expire_logs_days = 7
#binlog_cache_size = 128m
#max_binlog_cache_size = 512m
#max_binlog_size = 256M
# 需要同步庫
binlog-do-db = dev
# 不需要同步庫
binlog-ignore-db = mysql
binlog_ignore_db = information_schema
binlog_ignore_db = performation_schema
binlog_ignore_db = sys
datadir=/var/lib/mysql

設(shè)置slave用戶

# mysql -uroot -p 
# password: xxxxxx
# mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' IDENTIFIED BY 'root1234';
# mysql> flush privileges;
# quit;
# systemctl restart mysqld;
# show master status \G
#*************************** 1. row ***************************
             File: mysql-bin.000001
         Position: 886
     Binlog_Do_DB: dev
 Binlog_Ignore_DB: mysql,information_schema,performation_schema,sys
Executed_Gtid_Set: 
1 row in set (0.00 sec)

2: 主庫200

設(shè)置my.cnf。

[mysqld]
lower_case_table_names = 1 # 表名不區(qū)分大小寫
server-id = 200
log_bin = mysql-bin  #開始binlog記錄
binlog_format = MIXED 
#每次事務(wù)提交,MySQL都會把binlog刷下去,是最安全但是性能損耗最大的設(shè)置。
#這樣的話,在數(shù)據(jù)庫所在的主機操作系統(tǒng)損壞或者突然掉電的情況下,系統(tǒng)才有可能丟失1個事務(wù)的數(shù)據(jù)
#但是binlog雖然是順序IO,但是設(shè)置sync_binlog=1,多個事務(wù)同時提交,
#同樣很大的影響MySQL和IO性能。按需設(shè)置。
sync_binlog = 1 
# 二進制日志自動刪除/過期的天數(shù)。默認值為0,表示不自動刪除。
expire_logs_days = 7
#binlog_cache_size = 128m
#max_binlog_cache_size = 512m
#max_binlog_size = 256M
# 需要同步庫
binlog-do-db =dev
# 不需要同步庫
binlog-ignore-db = mysql
binlog_ignore_db = information_schema
binlog_ignore_db = performation_schema
binlog_ignore_db = sys
datadir=/var/lib/mysql

設(shè)置slave用戶

# mysql -uroot -p 
# password: xxxxxx
# mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' IDENTIFIED BY 'root1234';
# mysql> flush privileges;
# quit;
# systemctl restart mysqld;
# show master status \G
#*************************** 1. row ***************************
             File: mysql-bin.000001
         Position: 154
     Binlog_Do_DB: dev
 Binlog_Ignore_DB: mysql,information_schema,performation_schema,sys
Executed_Gtid_Set: 
1 row in set (0.00 sec)

3: 從庫300

設(shè)置my.cnf。

[mysqld]
lower_case_table_names = 1 # 表名不區(qū)分大小寫 
server-id = 300
master_info_repository = table
relay_log_info_repository = table 
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock  
symbolic-links=0 
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

設(shè)置主庫信息

# mysql -uroot -p 
# password: xxxxxx
# 設(shè)置主庫信息
# mysql> CHANGE MASTER TO  
# ->MASTER_HOST='192.168.194.3',
# ->MASTER_PORT=3306, MASTER_USER='slave', 
# ->MASTER_PASSWORD='root1234',
# ->MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=886 for channel '100';
# mysql> CHANGE MASTER TO  
# ->MASTER_HOST='192.168.194.4',
# ->MASTER_PORT=3306, MASTER_USER='slave', 
# ->MASTER_PASSWORD='root1234',
# ->MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=154  for channel '200';
# 設(shè)置主庫信息
# mysql> flush privileges;
# start slave;
# mysql>show slave status \G  

標識同步成功

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

測試。

隨意主庫:創(chuàng)建表,插入一條數(shù)據(jù)。

CREATE TABLE `t_user`  (
  `id` varchar(32) NOT NULL COMMENT '主鍵ID',
  `name` varchar(32) CHARACTER SET utf8mb4 NULL COMMENT '用戶名稱',
  `code` varchar(32) CHARACTER SET utf8mb4 NULL COMMENT '用戶編碼',
  `phone_number` varchar(300) CHARACTER SET utf8mb4 NULL COMMENT '電話號碼',
  `create_date` datetime NULL COMMENT '創(chuàng)建時間',
  `update_date` datetime NULL COMMENT '修改時間',
  PRIMARY KEY (`id`)
) COMMENT = '用戶信息表';
INSERT INTO t_user (`id`, `name`, `code`, `phone_number`, `create_date`, `update_date`) 
VALUES ('userId_4', '張三', '123456789', '123456789632', '2020-04-27 22:05:00', '2020-04-27 22:05:00');

從庫查詢

SELECT * FROM t_user;
------+--------+----------+--------------+---------------------+-------------+
| id       | name   | code     | phone_number | create_date  | update_date |
+-------+--------+----------+--------------+---------------------+----------+
| userId_4 | 張三 |123456789|123456789632|2020-04-27 22:05:00|2020-04-27 22:05:00 

總結(jié)

到此這篇關(guān)于MySQL主從搭建(多主一從)的實現(xiàn)思路與步驟的文章就介紹到這了,更多相關(guān)MySQL主從搭建內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Mysql多主一從數(shù)據(jù)備份的方法教程
  • Centos7 Mysql 5.6 多主一從 解決方案與詳細配置
  • MySQL8.0.18配置多主一從

標簽:徐州 迪慶 自貢 龍巖 南充 無錫 西寧 麗水

巨人網(wǎng)絡(luò)通訊聲明:本文標題《MySQL主從搭建(多主一從)的實現(xiàn)思路與步驟》,本文關(guān)鍵詞  MySQL,主從,搭建,多主,一,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《MySQL主從搭建(多主一從)的實現(xiàn)思路與步驟》相關(guān)的同類信息!
  • 本頁收集關(guān)于MySQL主從搭建(多主一從)的實現(xiàn)思路與步驟的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    罗源县| 晋城| 竹北市| 克什克腾旗| 阿巴嘎旗| 额济纳旗| 朝阳县| 临漳县| 曲沃县| 马山县| 滨州市| 黑河市| 红河县| 弥渡县| 班戈县| 安阳县| 老河口市| 宝应县| 澄城县| 拜泉县| 绥化市| 兰溪市| 姜堰市| 华阴市| 无锡市| 霍州市| 江陵县| 连南| 岑巩县| 吉木萨尔县| 安阳市| 汕头市| 偏关县| 藁城市| 涞源县| 安吉县| 班戈县| 凤阳县| 绩溪县| 永吉县| 丹巴县|