日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Mycat安装与配置

發布時間:2025/3/19 编程问答 12 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Mycat安装与配置 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

關鍵特性

  • 支持SQL92標準
  • 支持MySQL、Oracle、DB2、SQL Server、PostgreSQL等DB的常見SQL語法
  • 遵守Mysql原生協議,跨語言,跨平臺,跨數據庫的通用中間件代理。
  • 基于心跳的自動故障切換,支持讀寫分離,支持MySQL主從,以及galera cluster集群。
  • 支持Galera for MySQL集群,Percona Cluster或者MariaDB cluster
  • 基于Nio實現,有效管理線程,解決高并發問題。
  • 支持數據的多片自動路由與聚合,支持sum,count,max等常用的聚合函數,支持跨庫分頁。
  • 支持單庫內部任意join,支持跨庫2表join,甚至基于caltlet的多表join。
  • 支持通過全局表,ER關系的分片策略,實現了高效的多表join查詢。
  • 支持多租戶方案。
  • 支持分布式事務(弱xa)。
  • 支持XA分布式事務(1.6.5)。
  • 支持全局序列號,解決分布式下的主鍵生成問題。
  • 分片規則豐富,插件化開發,易于擴展。
  • 強大的web,命令行監控。
  • 支持前端作為MySQL通用代理,后端JDBC方式支持Oracle、DB2、SQL Server 、 mongodb 、巨杉。
  • 支持密碼加密
  • 支持服務降級
  • 支持IP白名單
  • 支持SQL黑名單、sql注入攻擊攔截
  • 支持prepare預編譯指令(1.6)
  • 支持非堆內存(Direct Memory)聚合計算(1.6)
  • 支持PostgreSQL的native協議(1.6)
  • 支持mysql和oracle存儲過程,out參數、多結果集返回(1.6)
  • 支持zookeeper協調主從切換、zk序列、配置zk化(1.6)
  • 支持庫內分表(1.6)
  • 集群基于ZooKeeper管理,在線升級,擴容,智能優化,大數據處理(2.0開發版)。

什么是MYCAT

  • 一個徹底開源的,面向企業應用開發的大數據庫集群
  • 支持事務、ACID、可以替代MySQL的加強版數據庫
  • 一個可以視為MySQL集群的企業級數據庫,用來替代昂貴的Oracle集群
  • 一個融合內存緩存技術、NoSQL技術、HDFS大數據的新型SQL Server
  • 結合傳統數據庫和新型分布式數據倉庫的新一代企業級數據庫產品
  • 一個新穎的數據庫中間件產品

一、安裝

  • 上傳Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz包至服務器/mycat/目錄下。(下載鏈接:http://dl.mycat.io/1.6-RELEASE/)
  • 解壓Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz包得到mycat目錄;
  • tar -zxvf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz

    二、配置

    (1)替換server.xml,schema.xml,rule.xml

    server.xml:為mycat服務配置,主要為配置mycat的連接數據庫用戶名、密碼、端口等相關信息;

    schema.xml:主要配置分庫分表相關節點信息;

    rule.xml:主要配置是分庫字段規則。

    (2)啟動

    進入/mycat/mycat/bin文件夾中

    ./mycat start #啟動

    ./mycat stop #停止

    ./mycat restart #重新啟動

    開放3310(連接)與3311(管理端)端口

    /sbin/iptables -I INPUT -p tcp --dport 3310? -j ACCEPT

    /sbin/iptables -I INPUT -p tcp --dport 3311? -j ACCEPT

    (3)設置環境變量,供后續維護方便。

    在/etc/profile增加相應內容

    vim? /etc/profile

    export MYCAT_HOME=/mycat/mycat/

    export PATH=$PATH:$MYCAT_HOME/bin ?

    編輯后source? /etc/profile生效。

  • 客戶端連接:
  • mysql -uXXX-h192.168.XXX.XXX -pXXXXXX-P3310

    (4)驗證:本地使用客戶端能正常連接到Mycat。

    • 全局序列號

    Mycat提供多種方式:本地文件方式、數據庫方式、本地時間戳方式等;根據目前現有的業務邏輯與改動量,決定使用數據庫方式。主要操作流程:

  • 新建一個數據庫節點名稱為:sequencedb,用于專門管理序列。在該庫中創建表:sequence。創建三個函數( 獲取當前 sequence 的值、設置 sequence 值、獲取下一個 sequence 值),函數創建腳本為:
  • DROP FUNCTION IF EXISTS mycat_seq_currval;

    CREATE FUNCTION mycat_seq_currval(seq_name VARCHAR(50)) RETURNS varchar(64)

    BEGIN

    ?? DECLARE? retval? VARCHAR(64);

    ?? SET? retval ='-999999999,null';

    ?? SELECT concat(CAST(current_value AS CHAR),',',CAST(increment AS CHAR)) INTO? retval?

    ?? FROM sequence

    ?? WHERE name = seq_name;

    ?? RETURN? retval ;

    END;

    DROP FUNCTION IF EXISTS mycat_seq_setval;

    CREATE FUNCTION mycat_seq_setval(seq_name VARCHAR(50),value INTEGER) RETURNS varchar(64)

    BEGIN

    ?? UPDATE sequence

    ?? SET current_value = value

    ?? WHERE name = seq_name;

    ?? RETURN mycat_seq_currval(seq_name);

    END;

    DROP FUNCTION IF EXISTS mycat_seq_nextval;

    CREATE FUNCTION mycat_seq_nextval(seq_name VARCHAR(50)) RETURNS varchar(64)

    BEGIN

    ?? UPDATE sequence

    ?? SET current_value = current_value + increment

    ?? WHERE name = seq_name;

    ?? RETURN mycat_seq_currval(seq_name);

    END

  • 在mycat中的conf下的schema.xml中增加序號數據庫配置,配置代碼為:
  • <!--sequence-->

    ?? <dataNode name="seqDn" dataHost="localhostSeq" database="sequencedb" />

    ?? <dataHost name="localhostSeq" maxCon="1000" minCon="10" balance="0"

    ?? ??????? ??????? ??????? writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">

    ??????? <heartbeat>select user();</heartbeat>

    ??????? <writeHost host="hostM1" url="192.168.XX.XX:3306" user="XXX" password="XXXX">?

    ??????? </writeHost>

    ??? </dataHost>

  • 在mycat中的conf下的sequence_db_conf.properties增加配置,配置為:
  • LOCALSERIAL=seqDn

    ...

    注:配置文件中的序列名建議為大寫。

    使用序列方式:next value for MYCATSEQ_XXX(XXX為sequence表中的序列名)。

    總結

    以上是生活随笔為你收集整理的Mycat安装与配置的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。