国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

項(xiàng)目實(shí)現(xiàn)讀寫分離操作(mysql)

這篇具有很好參考價(jià)值的文章主要介紹了項(xiàng)目實(shí)現(xiàn)讀寫分離操作(mysql)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

讀寫分離

1.問(wèn)題說(shuō)明

項(xiàng)目實(shí)現(xiàn)讀寫分離操作(mysql)

2.讀寫分離

項(xiàng)目實(shí)現(xiàn)讀寫分離操作(mysql)

Master(主庫(kù))----(數(shù)據(jù)同步)—> Slave(從庫(kù)) Mysql主從復(fù)制

  • mysql主從復(fù)制

    1. 介紹

      • mysql主從復(fù)制是一個(gè)異步的復(fù)制過(guò)程,底層是基于mysql數(shù)據(jù)庫(kù)自帶的二進(jìn)制日志功能。就是一臺(tái)或多臺(tái)mysql數(shù)據(jù)庫(kù)(Slave,即從庫(kù))從另一臺(tái)mysql數(shù)據(jù)庫(kù)(Master,即主庫(kù))進(jìn)行日志的復(fù)制然后再解析日志并應(yīng)用到自身,最終現(xiàn)實(shí)從庫(kù)的數(shù)據(jù)和主庫(kù)的數(shù)據(jù)保持一致。mysql主從復(fù)制是mysql數(shù)據(jù)庫(kù)自帶功能,無(wú)需借助第三方工具
      • mysql復(fù)制過(guò)程分成三步:
        • Master將改變記錄二進(jìn)制日志(binary log)
        • Slave將Master的binary log拷貝到它的中繼日志(relay log)
        • Slave重做中繼日志中的事件,將改變應(yīng)用到自己的數(shù)據(jù)庫(kù)中
        • 項(xiàng)目實(shí)現(xiàn)讀寫分離操作(mysql)
    2. 配置

      • 配置–前置條件

        提前準(zhǔn)備好兩臺(tái)服務(wù)器,分別安裝mysql并啟動(dòng)服務(wù)成功

        • 主庫(kù)Master 服務(wù)器ip
        • 從庫(kù)Slave 服務(wù)器ip
      • 配置-主庫(kù)Master

        第一步:修改MySQL數(shù)據(jù)庫(kù)的配置文件 /etc/my.cnf

        [mysqld]

        log-bin=mysql-bin #[必須]啟用二進(jìn)制日志

        server-id = 100 #[必須]服務(wù)器–ID

        第二步:重啟mysql服務(wù)

        systemctl restart mysqld

        第三步:登錄mysql數(shù)據(jù)庫(kù),執(zhí)行下面sql

        GRANT REOLICATION SLAVE ON *.* to 'xiaoming'@'%' identified by 'Root@123456';
        
        • ==注:==上面sql的作用是創(chuàng)建一個(gè)用戶xiaoming。密碼Root@123456,并且給xiaoming用戶授予REPLICATION SLAVE權(quán)限,常用于建立復(fù)制時(shí)所需要用到的用戶權(quán)限,也就是Slave必須被Master授權(quán)具有該權(quán)限的用戶,才能通過(guò)該用戶復(fù)制。

        報(bào)錯(cuò)-----解決如下:

        mysql> GRANT REOLICATION SLAVE ON *.* to 'xiaoming'@'%' identified by 'Root@123456';
        ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'REOLICATION SLAVE ON *.* to 'xiaoming'@'%' identified by 'Root@123456'' at line 1
        
        mysql> create user xiaoming identified by 'Root@123456'
            -> ;
        Query OK, 0 rows affected (0.00 sec)
        
        mysql> grant replication slave on *.* to xiaoming
            -> ;
        Query OK, 0 rows affected (0.00 sec)
        

        第四步:登錄mysql數(shù)據(jù)庫(kù),執(zhí)行下面sql,記錄下結(jié)果中File和Position的值

        show master status;
        

        、項(xiàng)目實(shí)現(xiàn)讀寫分離操作(mysql)

        ==注意:==上面sql的作用是查看Master的狀態(tài),執(zhí)行完此sql后不要再執(zhí)行任何操作

      • 配置–從庫(kù)Slave

        第一步:修改MySQL數(shù)據(jù)庫(kù)的配置文件/etc/my.cnf

        server-id = 101  #[必須]服務(wù)器--ID
        

        第二步:重啟mysql服務(wù)

        systemctl restart mysqld
        

        第三步:登錄MySQL數(shù)據(jù)庫(kù),執(zhí)行下面sql

        change master to 
        master_host='(主庫(kù)ip地址)',master_user='xiaoming',master_password='Root@123456',master_log_file='mysql-bin.000001',master_log_pos=603;
        
        start slave;
        

        ==注意:==如果報(bào)a running slave io thread的錯(cuò)!那么我們需要使用 stop slave;來(lái)停止這個(gè)異常

        第四步:登錄mysql數(shù)據(jù)庫(kù),執(zhí)行下面sql,查看從數(shù)據(jù)庫(kù)的狀態(tài)

        show slave status;
        

      項(xiàng)目實(shí)現(xiàn)讀寫分離操作(mysql)

  • 讀寫分離案例

    • 背景

      背景

      面對(duì)日益增加的系統(tǒng)訪問(wèn)量,數(shù)據(jù)庫(kù)的吞吐量面臨著巨大瓶頸。對(duì)于同一時(shí)刻有大量并發(fā)讀操作和較少寫操作類型的應(yīng)用系統(tǒng)來(lái)說(shuō),將數(shù)據(jù)庫(kù)拆分為主庫(kù)和從庫(kù),主庫(kù)負(fù)責(zé)處理事務(wù)性的增刪改操作,從庫(kù)負(fù)責(zé)處理查詢操作,能夠有效的避免由數(shù)據(jù)更新導(dǎo)致的行鎖,使得整個(gè)系統(tǒng)的查詢性能得到極大的改善

項(xiàng)目實(shí)現(xiàn)讀寫分離操作(mysql)

  • sharding-JDBC介紹

    Sharding-JDBC定位為輕量級(jí)java框架,在java的JDBC層提供額外服務(wù)。它使用客戶端直連數(shù)據(jù)庫(kù),以jar包形式提供服務(wù),無(wú)需額外部署和依賴,可理解為增強(qiáng)版的JDBC驅(qū)動(dòng),完全兼容JDBC和各種ORM框架

    使用sharding-JDBC可以在程序中輕松的實(shí)現(xiàn)數(shù)據(jù)庫(kù)讀寫分離。

    • 適用于任何基于JDBC的ORM框架:JPA,Hibernate,MyBatis,Spring JDBC Template或直接使用JDBC。
    • 支持任何第三方的數(shù)據(jù)庫(kù)連接池,如:DBCP,C3P0,BoneCP,Druid,HikariCP等。
    • 支持任意實(shí)現(xiàn)JDBC規(guī)范的數(shù)據(jù)庫(kù),目前支持MySQL,Oracle,SQLServer,PostgreSQL以及任何遵循SQL92標(biāo)準(zhǔn)的數(shù)據(jù)庫(kù)
    <dependency>
                <groupId>org.apache.shardingsphere</groupId>
                <artifactId>sharding-jdbc-spring-boot-starter</artifactId>
                <version>4.0.0-RC1</version>
    </dependency>
    
  • 入門案例

    使用sharding-JDBC實(shí)現(xiàn)讀寫分離步驟:

    1. 導(dǎo)入maven坐標(biāo)

      <dependency>
                  <groupId>org.apache.shardingsphere</groupId>
                  <artifactId>sharding-jdbc-spring-boot-starter</artifactId>
                  <version>4.0.0-RC1</version>
              </dependency>
      
    2. 在配置文件中配置讀寫分離規(guī)則

      spring:
        shardingsphere:
          datasource:
            names:
              master,slave
            # 主數(shù)據(jù)源
            master:
              type: com.alibaba.druid.pool.DruidDataSource
              driver-class-name: com.mysql.cj.jdbc.Driver
              url: jdbc:mysql://(主庫(kù)ip地址):3306/rw?characterEncoding=utf-8
              username: root
              password: root
            # 從數(shù)據(jù)源
            slave:
              type: com.alibaba.druid.pool.DruidDataSource
              driver-class-name: com.mysql.cj.jdbc.Driver
              url: jdbc:mysql://127.0.0.1:3306/rw?characterEncoding=utf-8
              username: root
              password: 12345678
          masterslave:
            # 讀寫分離配置
            load-balance-algorithm-type: round_robin #輪詢
            # 最終的數(shù)據(jù)源名稱
            name: dataSource
            # 主庫(kù)數(shù)據(jù)源名稱
            master-data-source-name: master
            # 從庫(kù)數(shù)據(jù)源名稱列表,多個(gè)逗號(hào)分隔
            slave-data-source-names: slave
          props:
            sql:
              show: true #開啟SQL顯示,默認(rèn)false
        main:
          allow-bean-definition-overriding: true
      
    3. 在配置文件中配置允許bean定義覆蓋配置項(xiàng)

      main:
          allow-bean-definition-overriding: true
      
  • 功能測(cè)試

    查詢功能測(cè)試(操作Slave)

項(xiàng)目實(shí)現(xiàn)讀寫分離操作(mysql)

插入數(shù)據(jù)功能測(cè)試(操作Master)

項(xiàng)目實(shí)現(xiàn)讀寫分離操作(mysql)

  • 項(xiàng)目實(shí)現(xiàn)讀寫分離文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-448474.html

    • 數(shù)據(jù)庫(kù)環(huán)境準(zhǔn)備(主從復(fù)制)
    • 代碼改造
    • 功能測(cè)試

到了這里,關(guān)于項(xiàng)目實(shí)現(xiàn)讀寫分離操作(mysql)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • mysql進(jìn)階2——prosysql實(shí)現(xiàn)mysql讀寫分離

    mysql進(jìn)階2——prosysql實(shí)現(xiàn)mysql讀寫分離

    基本了解: 實(shí)現(xiàn)數(shù)據(jù)庫(kù)讀寫分離的中間件很多,比如Mycat、Cobar、Atlas、TDDL、Proxysql等等。 ProxySQL 可以靈活配置路由規(guī)則,不僅可以實(shí)現(xiàn)最簡(jiǎn)單的讀寫分離,還可以將讀/寫都分散到多個(gè)不同的組,以及實(shí)現(xiàn)分庫(kù) sharding (分表sharding的規(guī)則比較難寫,但也能實(shí)現(xiàn))。 這種模式的讀

    2024年02月15日
    瀏覽(14)
  • Spring Boot項(xiàng)目?jī)?yōu)雅實(shí)現(xiàn)讀寫分離

    Spring Boot項(xiàng)目?jī)?yōu)雅實(shí)現(xiàn)讀寫分離

    ??歡迎來(lái)到架構(gòu)設(shè)計(jì)專欄~Spring Boot項(xiàng)目?jī)?yōu)雅實(shí)現(xiàn)讀寫分離 ☆* o(≧▽≦)o *☆嗨~我是IT·陳寒?? ?博客主頁(yè):IT·陳寒的博客 ??該系列文章專欄:架構(gòu)設(shè)計(jì) ??其他專欄:Java學(xué)習(xí)路線 Java面試技巧 Java實(shí)戰(zhàn)項(xiàng)目 AIGC人工智能 數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí) ??文章作者技術(shù)和水平有限,如果文中

    2024年02月05日
    瀏覽(24)
  • MariaDB MaxScale實(shí)現(xiàn)mysql8讀寫分離

    MariaDB MaxScale實(shí)現(xiàn)mysql8讀寫分離

    MaxScale 是干什么的? MaxScale是maridb開發(fā)的一個(gè)mysql數(shù)據(jù)中間件,其配置簡(jiǎn)單,能夠?qū)崿F(xiàn)讀寫分離,并且可以根據(jù)主從狀態(tài)實(shí)現(xiàn)寫庫(kù)的自動(dòng)切換,對(duì)多個(gè)從服務(wù)器能實(shí)現(xiàn)負(fù)載均衡。 MaxScale 實(shí)驗(yàn)環(huán)境 中間件 192.168.142.139 MaxScale 22.08.4 主服務(wù)器 192.168.142.146 mysql 8.0.30 從服務(wù)器 192.16

    2024年03月09日
    瀏覽(22)
  • 使用ProxySql實(shí)現(xiàn)Mysql的讀寫分離 詳細(xì)安裝步驟 親測(cè)可行

    使用ProxySql實(shí)現(xiàn)Mysql的讀寫分離 詳細(xì)安裝步驟 親測(cè)可行

    主機(jī)ip 說(shuō)明 192.168.168.109 ProxySql 192.168.168.77 mysql master(主) 192.168.168.78 mysql slave(從) ? 在192.168.168.109機(jī)器上操作 在192.168.168.109機(jī)器上操作 報(bào)錯(cuò) 在192.168.168.109機(jī)器上操作 在192.168.168.109機(jī)器上操作 在192.168.168.109機(jī)器上操作 在192.168.168.109機(jī)器上操作 管理員登錄 ProxySQL 前提也需

    2024年01月18日
    瀏覽(40)
  • 分庫(kù)分表之基于Shardingjdbc+docker+mysql主從架構(gòu)實(shí)現(xiàn)讀寫分離(二)

    分庫(kù)分表之基于Shardingjdbc+docker+mysql主從架構(gòu)實(shí)現(xiàn)讀寫分離(二)

    ??????? 說(shuō)明:如果實(shí)現(xiàn)了docker部署mysql并完成主從復(fù)制的話再繼續(xù),本篇文章主要說(shuō)明springboot配置實(shí)現(xiàn)Shardingjdbc進(jìn)行讀寫分離操作。 如果沒(méi)實(shí)現(xiàn)docker部署mysql實(shí)現(xiàn)主從架構(gòu)的話點(diǎn)擊我 application.yml配置設(shè)置連接池全局屬性 shardingjdbc讀寫分離配置(qiyu-db-sharding.yaml) 同時(shí)這

    2024年02月15日
    瀏覽(25)
  • 分庫(kù)分表之基于Shardingjdbc+docker+mysql主從架構(gòu)實(shí)現(xiàn)讀寫分離 (三)

    分庫(kù)分表之基于Shardingjdbc+docker+mysql主從架構(gòu)實(shí)現(xiàn)讀寫分離 (三)

    ??????? 本篇主要說(shuō)明: ??????????????? 1. 因?yàn)檫@個(gè)mysql版本是8.0,所以當(dāng)其中一臺(tái)mysql節(jié)點(diǎn)掛掉之后,主從同步,甚至雙向數(shù)據(jù)同步都失效了,所以本篇主要記錄下當(dāng)其中的節(jié)點(diǎn)掛掉之后如何再次生效。 另外推薦大家使用mysql5.7的版本,這樣當(dāng)其他節(jié)點(diǎn)失效后就不

    2024年02月14日
    瀏覽(21)
  • 基于k8s搭建mysql5.7主從集群實(shí)現(xiàn)讀寫分離

    基于k8s搭建mysql5.7主從集群實(shí)現(xiàn)讀寫分離

    一,準(zhǔn)備工作 1,擁有一個(gè)運(yùn)行中的k8s集群 2,擁有一個(gè)ceph分布式存儲(chǔ)集群,此mysql集群基于ceph塊存儲(chǔ),部署方案可參考我前面的rook部署ceph方案 二,集群搭建 1,創(chuàng)建存儲(chǔ)類storageclass ? ? ? 將此 StorageClass 定義保存為 storageclass.yaml : 創(chuàng)建存儲(chǔ)類 ? 2,MySQL 部署包含一個(gè) Con

    2024年02月08日
    瀏覽(24)
  • python 實(shí)現(xiàn)對(duì)MySQL 主從復(fù)制與讀寫分離 --2023博客之星候選--城市賽道

    在Python中,可以使用 pymysql 庫(kù)來(lái)實(shí)現(xiàn)對(duì)MySQL主從復(fù)制和讀寫分離的代碼封裝。以下是一個(gè)簡(jiǎn)單的示例: 在上述示例中,創(chuàng)建了一個(gè)名為 MySQLReplication 的類,該類用于封裝主從數(shù)據(jù)庫(kù)連接和執(zhí)行查詢的功能。在類的初始化方法中,傳入主數(shù)據(jù)庫(kù)和從數(shù)據(jù)庫(kù)的配置信息,并創(chuàng)建連

    2024年02月11日
    瀏覽(25)
  • 第100講:MHA+Atlas實(shí)現(xiàn)MySQL主從復(fù)制讀寫分離分布式集群

    第100講:MHA+Atlas實(shí)現(xiàn)MySQL主從復(fù)制讀寫分離分布式集群

    Atlas是由 Qihoo 360, Web平臺(tái)部基礎(chǔ)架構(gòu)團(tuán)隊(duì)開發(fā)維護(hù)的一個(gè)基于MySQL協(xié)議的數(shù)據(jù)中間層項(xiàng)目。它是在mysql-proxy 0.8.2版本的基礎(chǔ)上,對(duì)其進(jìn)行了優(yōu)化,增加了一些新的功能特性。 Atlas是一個(gè)位于應(yīng)用程序與MySQL之間中間件。在后端DB看來(lái),Atlas相當(dāng)于連接它的客戶端,在前端應(yīng)用看來(lái)

    2024年02月21日
    瀏覽(24)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包