Mycat 讀寫分離
讀寫分離一般有兩種方式實作 1,應用層程式實作 2, 中間件層實作 mycat屬于中間件實作.mycat是基于java語言開發的.在應用時需Java環境支持.
中間件實作讀寫分離的優點:
架構設計更靈活 可以在程式上實作一些高級控制 可以依靠些技術手段提高mysql性能 對業務代碼影響小同時也安全
了解mycat
一個徹底開源的,面向企業應用開發的大資料庫集群
支持事務,ACID 可代替mysql的加強版資料庫
一個可以視為MySQL集群的企業級資料庫
一個融合記憶體快取技術.nosql技術,HDFS大資料的新型sql server
結合傳統資料庫和新型分布式資料倉庫的新一代企業級資料庫產品
通過實驗 掌握服務的安裝于配置
準備實驗環境:
角色: 主機名 IP地址
mycat和ntp服務器 mysql-node 192.168.122.10
主庫服務器 master cong11 192.168.122.15
從庫服務器slave cong12 192.168.122.14
從庫服務器slave cong13 192.168.122.25
1, 關閉防火墻,selinux 修改主機名,做hosts系結
Vim /etc/hosts 修改此檔案(末尾添加)并 scp 到其他服務器
192.168.122.10 mysql-node
192.168.122.15 cong11
192.168.122.14 cong12
192.168.122.25 cong13
2, 在mysql-node服務器上部署NTP服務,為其他服務器提供時間校對.
安裝 NTP:
Yum -y install ntp (本地yum源先掛載光碟)
NTP配置:
Vim /etc/ntp.conf (修改此組態檔)尾部添加
Server 127.127.1.0 (和本地系統時間同步)
Fudge 127.127.1.0
啟動ntp服務
Systemctl start ntpd
其他服務器 安裝 ntpdate b包 ,使用ntpdate IP地址 同步時間
可做計劃任務 沒隔10分鐘同步一次
3, 配置主從復制
Cong11主服務器配置
創建實驗資料庫 HA (需先部署好MySQL,然后登錄mysql)
mysql> create database HA;
mysql> use HA;
mysql> create table T1(id int,name varchar(20));
mysql> insert into T1 values(1,'Tom1');
創建主從同步的授權用戶:
mysql> grant replication slave on *.* to 'slave'@'192.168.30.%' identified by "123456";
mysql> flush privileges;
修改組態檔 /etc/my.cnf 末尾添加
Server-id=1
Log-bin=/data/mysql/log/mysql-bin-master
Binlog-do-db=HA
Sync-binlog=1
Binlog-format=mixed
重新啟動mysql
Systemctl restart mysqld (使組態檔生效)
匯出資料庫
Mysqldump -uroot -p123456 HA >HA.sql (匯出的資料庫檔案默認在家目錄)
為保證資料一致性 將匯出的檔案 scp 到其他服務器
Scp /rootHA.sql [email protected]:~
Scp /root/HA.sql [email protected]:~
并在兩個從服務器上先創建HA庫,然后倒入資料庫檔案
Mysql> create database HA;
Mysql>use HA;
Mysql>source /root/HA.sql
配置從服務器
修改組態檔/etc/my.cnf 末尾添加
Server-id=2
Relay-log=/data/mysql/log/relay-log-bin
Relay-log-index-/data/mysql/log/slave-relay-bin.index
Replicate-ignore-db=HA
重啟mysql服務使組態檔生效
Systemctl restart mysqld
主從配置
Mysql> change master to master_host=’192.168.122.15’,master_user=’slave’,master_log_file=’mysql-bin-master.000001’,mater_log_pos=154;
在主庫服務器上執行 show master status\G; 獲取后兩項引數
Nysql> show master status\G;
在mysql-node 上部署mycat
將下載好的安裝包解壓到指定目錄 /usr/local 下
Tar -zxvf Mycat-server-1.6.6.1-release-20181031195535-linux.tar.gz -C /usr/local/
因需java環境支持所以也需安裝 jdk
Tar -zxvf jdk-8u171-linux-x64.tar.gz -C /usr/local/
修改組態檔 /etc/profile 檔案 末尾添加
JAVA_HOME=/usr/local/jdk1.8.0_171
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar
export PATH JAVA_HOME CLASSPATH
source /etc/profile 使組態檔生效
執行java -version 如果顯示Java版本資訊則jdk部署完成
將/usr/local/mycat/bin/* 檔案軟鏈接到PATH 環境變數包含的路徑中
Ln -s usr/local/mycat/bin/* /usr/local/bin/
在 /usr/local/mycat/conf/server.xml 檔案中配置mycatl用戶賬號權限資訊修改如下:
編輯mycatl schema.xml 組態檔 /usr/local/mycat/conf/schema.xml
修改結果如下:
給所用mysql root遠程登錄的權限
mysql> grant all on *.* to root@'192.168.30.%' identified by '123456';
mysql>flush privileges; (主庫上操作)
啟動mycat服務
Mycat start
Netstat -anput |grep 8066 如8066埠已被mycat監聽則服務正常啟動
Mysql-node 服務其上安裝 mariadb包以用來登錄mycat
mysql -u mycatroot -p123456 -h 192.168.122.10-P 8066
mysql>show databases; 如果查詢正確則服務配置完成.
uj5u.com熱心網友回復:
上個主題帖是6年前的了
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/14175.html
標籤:GAE
下一篇:華為云服務器居然宕機了!!
