最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2021年05月13日 15:49:58   作者:A.Wang  
通過MySQL主從配置,可以實現(xiàn)讀寫分離減輕數(shù)據(jù)庫壓力,最近正好遇到這個功能,所以這篇文章主要給大家介紹了關(guān)于MySQL主從搭建(多主一從)的實現(xiàn)思路與步驟,需要的朋友可以參考下

背景:

由于最近公司項目好像有點受不住并發(fā)壓力了,優(yōu)化迫在眉睫。由于當(dāng)前系統(tǒng)是單數(shù)據(jù)庫系統(tǒng)原因,能優(yōu)化的地方也盡力優(yōu)化了但是數(shù)據(jù)庫瓶頸還是嚴(yán)重限制了項目的并發(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-------相當(dāng)于集中庫

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 
# 二進(jìn)制日志自動刪除/過期的天數(shù)。默認(rèn)值為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 
# 二進(jìn)制日志自動刪除/過期的天數(shù)。默認(rèn)值為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  

標(biāo)識同步成功

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)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Mysql5.7.18版本(二進(jìn)制包安裝)自定義安裝路徑教程詳解

    Mysql5.7.18版本(二進(jìn)制包安裝)自定義安裝路徑教程詳解

    這篇文章主要介紹了Mysql5.7.18版本(二進(jìn)制包安裝)自定義安裝路徑教程詳解,需要的朋友可以參考下
    2017-07-07
  • MySQL中的批量修改、插入操作數(shù)據(jù)庫

    MySQL中的批量修改、插入操作數(shù)據(jù)庫

    在平常的項目中,我們會需要批量操作數(shù)據(jù)庫的時候,例如:批量修改,批量插入,那我們不應(yīng)該使用 for 循環(huán)去操作數(shù)據(jù)庫,這樣會導(dǎo)致我們反復(fù)與數(shù)據(jù)庫發(fā)生連接和斷開連接,影響性能和增加操作時間,所以可以使用SQL 批量修改的方式去操作數(shù)據(jù)庫,感興趣的朋友一起學(xué)習(xí)下吧
    2023-09-09
  • MySQL execute、executeUpdate、executeQuery三者的區(qū)別

    MySQL execute、executeUpdate、executeQuery三者的區(qū)別

    這篇文章主要介紹了MySQL execute、executeUpdate、executeQuery三者的區(qū)別的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • MySQL存儲過程未執(zhí)行的問題排查過程

    MySQL存儲過程未執(zhí)行的問題排查過程

    文章講述了對 MySQL 存儲過程未執(zhí)行的問題排查過程,先后排查了數(shù)據(jù)庫版本升級、用戶權(quán)限不足,最終發(fā)現(xiàn)是存儲過程創(chuàng)建時的 SQL 模式導(dǎo)致,即使之后去掉該模式,存儲過程內(nèi)部仍沿用舊模式,重新創(chuàng)建存儲過程后問題解決,需要的朋友可以參考下
    2025-02-02
  • MySQL into_Mysql中replace與replace into用法案例詳解

    MySQL into_Mysql中replace與replace into用法案例詳解

    這篇文章主要介紹了MySQL into_Mysql中replace與replace into用法案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • MySQL存儲文本和圖片的方法

    MySQL存儲文本和圖片的方法

    今天小編就為大家分享一篇關(guān)于MySQL存儲文本和圖片的方法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • mysql和oracle默認(rèn)排序的方法 - 不指定order by

    mysql和oracle默認(rèn)排序的方法 - 不指定order by

    這篇文章主要介紹了mysql和oracle默認(rèn)排序的方法 - 不指定order by。具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • Mysql使用函數(shù)json_extract處理Json類型數(shù)據(jù)的方法實例

    Mysql使用函數(shù)json_extract處理Json類型數(shù)據(jù)的方法實例

    在日常業(yè)務(wù)開發(fā)中通常mysql數(shù)據(jù)庫中某個字段會需要存儲json格式字符串,下面這篇文章主要給大家介紹了關(guān)于Mysql使用函數(shù)json_extract處理Json類型數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下
    2022-09-09
  • MySQL數(shù)據(jù)庫手冊DATABASE操作與編碼(小白入門篇)

    MySQL數(shù)據(jù)庫手冊DATABASE操作與編碼(小白入門篇)

    這篇文章主要介紹了MySQL數(shù)據(jù)庫手冊DATABASE操作與編碼的小白入門篇,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • Mac Mysql數(shù)據(jù)庫中文亂碼問題解決

    Mac Mysql數(shù)據(jù)庫中文亂碼問題解決

    這篇文章主要介紹了Mac Mysql數(shù)據(jù)庫中文亂碼問題解決的相關(guān)資料,需要的朋友可以參考下
    2016-10-10

最新評論

新源县| 磐安县| 潼南县| 无极县| 深水埗区| 青龙| 岫岩| 衡东县| 潼南县| 义乌市| 泸溪县| 会泽县| 藁城市| 乐昌市| 慈利县| 东阳市| 海淀区| 凉城县| 六安市| 民乐县| 永清县| 阿勒泰市| 玉溪市| 和政县| 土默特右旗| 镇赉县| 阜平县| 平顺县| 岳池县| 海南省| 桑日县| 宝鸡市| 同江市| 米易县| 龙井市| 都安| 神池县| 云南省| 哈尔滨市| 江陵县| 喀喇沁旗|