您好,登錄后才能下訂單哦!
本文主要給大家介紹Centos7 MYSQL 讀寫分離實驗流程分享,其所涉及的東西,從理論知識來獲悉,有很多書籍、文獻可供大家參考,從現實意義角度出發,億速云累計多年的實踐經驗可分享給大家。
MySQL是一個關系型數據庫管理系統,由瑞典MySQL AB 公司開發,目前屬于 Oracle 旗下產品。MySQL 是最流行的關系型數據庫管理系統之一,在 WEB 應用方面,MySQL是最好的 RDBMS (Relational Database Management System,關系數據庫管理系統) 應用軟件。
MySQL是一種關系數據庫管理系統,關系數據庫將數據保存在不同的表中,而不是將所有數據放在一個大倉庫內,這樣就增加了速度并提高了靈活性。
MySQL所使用的 SQL 語言是用于訪問數據庫的最常用標準化語言。MySQL 軟件采用了雙授權政策,分為社區版和商業版,由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,一般中小型網站的開發都選擇 MySQL 作為網站數據庫。
3臺mysql云服務器 (本次使用的是3臺5.7版本的mysql)
一臺 centos 服務器 (用作安裝 amoeba)
amoeba安裝包 java環境包
systemctl stop firewalld.service
setenforce 0
yum install ntp -y
vim /etc/ntp.conf
在配置文件中添加
server 127.127.100.0 ##本地是時鐘源
fudge 127.127.100.0 stratum 8 ##設置時間層級為8
service ntpd start ##開啟服務
/usr/sbin/ntpdate 192.168.100.100 ##進行時間同步
vim /etc/my.cnf
在[mysqld] 下添加
server-id=1
log-bin=master-bin ##主服務器日志文件
log-slave-updates=true ##從服務器更新二進制日志
service mysqld restart
mysql -u root -p ##進入mysql數據庫
GRANT REPLICATION SLAVE ON *.* TO 'myslave'@'192.168.100.%' IDENTIFIED BY '123456'; ## 給予回應從服務器的權限
FLUSH PRIVILEGES; ##刷新數據
show master status;
+-------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+-------------------+----------+--------------+------------------+
| master-bin.000002 | 339 | | |
+-------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
vim /etc/my.cnf
在 [mysqld]下添加
server-id=11
relay-log=relay-log-bin ##從主服務器上同步日志文件記錄到本地
relay-log-index=slave-relay-bin.index ##定義relay-log的位置和名稱
## 第二臺從服務器的 serverid不能相同
service mysqld restart ##重啟服務
mysql -u root -p ##進入mysql數據庫
change master to master_host='192.168.100.100',master_user='myslave',master_password='123456',master_log_file='master-bin.000002',master_log_pos=339; ##配置主服務器
start slave; ##開啟同步
show slave status \G; ##查看同步狀態
在主服務器上
create database test;
在從服務器上
show databases;
能看到test 則說明成功
推薦使用java 1.6的環境包
cp jdk-6u14-linux-x64.bin /usr/local/
/usr/local/jdk-6u14-linux-x64.bin
一直往下 接著輸入 yes , 再按 enter
稍等一會 配置完成java環境
mv jdk1.6.0_14/ /usr/local/jdk1.6
vim /etc/profile
在最后添加
export JAVA_HOME=/usr/local/jdk1.6
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/lib:$JAVA_HOME/jre/bin/:$PATH:$HOME/bin
export AMOEBA_HOME=/usr/local/amoeba
export PATH=$PATH:$AMOEBA_HOME/bin
source /etc/profile ##使配置生效
mkdir /usr/local/amoeba ##創建amoeba服務器位置
tar zxvf amoeba-mysql-binary-2.2.0.tar.gz -C /usr/local/amoeba/ ##解壓amoeba
chmod -R 755 /usr/local/amoeba ##給予amoeba權限
/usr/local/amoeba/bin/amoeba
##顯示amoeba start|stop說明安裝成功
在三臺mysql上添加權限開放給amoeba訪問
grant all on *.* to test@'192.168.100.%' identified by '123.com';
回到amoeba服務器
cd /usr/local/amoeba
vim conf/amoeba.xml
---30行--
##用戶名
<property name="user">amoeba</property>
----32行---------
##密碼
<property name="password">123456</property>
---117-去掉注釋-
<property name="defaultPool">master</property> ##默認池
<property name="writePool">master</property> ##寫入池
<property name="readPool">slaves</property> ##讀取池
vi conf/dbServers.xml
--23-- mysql服務器的通用數據庫名稱--
<property name="schema">mysql</property>
--26-29--去掉注釋--
<property name="user">test</property>
<property name="password">123.com</property>
-----42-主服務器地址---
<dbServer name="master" parent="abstractServer">
<property name="ipAddress">192.168.100.100</property>
--52-從服務器主機名-
<dbServer name="slave1" parent="abstractServer">
--55-從服務器地址-
<property name="ipAddress">192.168.100.101</property>
將從服務器的6行復制 并配置 slave2 和其ip地址
-----63-從服務器地址池---
<dbServer name="slaves" virtual="true">
<poolConfig
--末尾--
<property name="poolNames">slave1,slave2</property>
</poolConfig>
/usr/local/amoeba/bin/amoeba start& ##開啟服務
netstat -anpt | grep java
看到8066 表示服務開啟成功
看到主從服務器的地址 表示連接數據庫成功
在一臺已經安裝mysql服務器的電腦上
mysql -u amoeba -p123456 -h 192.168.100.100 -P8066
## 通過amoeba 登錄
--在主服務器上--
create database zzz;
create table test (id int(10),name varchar(10),address varchar(20));
--在兩臺從服務器上--
stop slave; ##關閉同步
--在主服務器上--
use zzz;
insert into test values('1','abc','this_is_master');
--在從服務器1上--
use zzz;
insert into test values('2','abc','this_is_slave1');
--在從服務器2上--
use zzz;
insert into test values('3','abc','this_is_slave2');
------在客戶端上測試----第一次會向從服務器1讀數據-第二次會各從2讀取
select * from test;
一次顯示id為2的數據 一次顯示id為3的數據
-------------在通過客戶端連接數據庫后寫入的數據只有主會記錄,然后同步給從-從服務器不會記錄,從而實現了讀寫分離。----
insert into test values('5','abc','this_is_client');
--在主服務器上可以看到寫入的數據--
select * from test;
可以看到id 為 1 和 5的數據
--在從服務器上--
start slave; 開啟同步
--在客戶端--
select * from test;
一次會顯示 id為 1 2 5 的數據
一次會顯示 id 為 1 3 5 的數據
看了以上Centos7 MYSQL 讀寫分離實驗流程分享介紹,希望能給大家在實際運用中帶來一定的幫助。本文由于篇幅有限,難免會有不足和需要補充的地方,大家可以繼續關注億速云行業資訊板塊,會定期給大家更新行業新聞和知識,如有需要更加專業的解答,可在官網聯系我們的24小時售前售后,隨時幫您解答問題的。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。