真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

mysql主從復(fù)制及讀寫分離(附安裝包)

實(shí)驗(yàn)?zāi)康模?/strong>
在實(shí)際生產(chǎn)環(huán)境中,如果對(duì)數(shù)據(jù)庫(kù)的讀和寫都在同一個(gè)數(shù)據(jù)庫(kù)服務(wù)器中操作,無論在安全性、高可用性,還是高并發(fā)等各個(gè)方面都是完全不能滿足實(shí)際需求的,因此,一般需要通過主從復(fù)制(master-slave)的方式來同步數(shù)據(jù),再通過讀寫分離提升數(shù)據(jù)庫(kù)的并發(fā)負(fù)載能力。
主從復(fù)制
(一)原理
復(fù)制過程中一個(gè)服務(wù)器充當(dāng)主服務(wù)器,而一個(gè)或多個(gè)其它服務(wù)器充當(dāng)從服務(wù)器。主服務(wù)器將更新寫入二進(jìn)制日志文件,并維護(hù)文件的一個(gè)索引以跟蹤日志循環(huán)。從服務(wù)器連接主服務(wù)器時(shí),它通知主服務(wù)器從服務(wù)器在日志中讀取的最后一次成功更新的位置。從服務(wù)器接收從那時(shí)起發(fā)生的任何更新,然后封鎖并等待主服務(wù)器通知新的更新。
(二)MySQL支持的復(fù)制類型

創(chuàng)新互聯(lián)公司成立于2013年,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元烏拉特前做網(wǎng)站,已為上家服務(wù),為烏拉特前各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:13518219792

(1)基于語(yǔ)句的復(fù)制: 在主服務(wù)器上執(zhí)行的SQL語(yǔ)句,在從服務(wù)器上執(zhí)行同樣的語(yǔ)句。MySQL默認(rèn)采用基于語(yǔ)句的復(fù)制,效率比較高。一旦發(fā)現(xiàn)沒法精確復(fù)制時(shí), 會(huì)自動(dòng)選著基于行的復(fù)制。
(2)基于行的復(fù)制:把改變的內(nèi)容復(fù)制過去,而不是把命令在從服務(wù)器上執(zhí)行一遍. 從mysql5.0開始支持
(3)混合類型的復(fù)制: 默認(rèn)采用基于語(yǔ)句的復(fù)制,一旦發(fā)現(xiàn)基于語(yǔ)句的無法精確的復(fù)制時(shí),就會(huì)采用基于行的復(fù)制。

(三)復(fù)制工作過程
mysql主從復(fù)制及讀寫分離(附安裝包)
(1) master將改變記錄到二進(jìn)制日志(binary log)中(這些記錄叫做二進(jìn)制日志事件,binary log events);
(2) slave將master的binary log events拷貝到它的中繼日志(relay log);
(3) slave重做中繼日志中的事件,將更改應(yīng)用到自己的數(shù)據(jù)上。
此外,在master中也有一個(gè)工作線程:和其它MySQL的連接一樣,slave在master中打開一個(gè)連接也會(huì)使得master開始一個(gè)線程。復(fù)制過程有一個(gè)很重要的限制——復(fù)制在slave上是串行化的,也就是說master上的并行更新操作不能在slave上并行操作。

讀寫分離
(一)原理
簡(jiǎn)單來說,讀寫分離就是只在主服務(wù)器上寫,只在從服務(wù)器上讀?;驹硎亲屩鲾?shù)據(jù)庫(kù)處理事務(wù)性查詢,而從數(shù)據(jù)庫(kù)處理select查詢。數(shù)據(jù)庫(kù)復(fù)制被用來把事務(wù)性查詢導(dǎo)致的變更同步到群集中的從數(shù)據(jù)庫(kù)中。
(二)讀寫分離工作過程
基于中間代理層實(shí)現(xiàn):Mysql-Proxy Amoeba'
本實(shí)驗(yàn)中用amoeba實(shí)現(xiàn)
mysql主從復(fù)制及讀寫分離(附安裝包)
實(shí)驗(yàn)拓?fù)洌?/strong>
mysql主從復(fù)制及讀寫分離(附安裝包)
實(shí)驗(yàn)環(huán)境:

主機(jī)操作系統(tǒng)IP地址主要軟件
master CentOS-7-x86_64 192.168.37.128 mysql-5.5.24
slave1 CentOS-7-x86_64 192.168.37.131 mysql-5.5.24
slave2 CentOS-7-x86_64 192.168.37.132 mysql-5.5.24
amoeba CentOS-7-x86_64 192.168.37.130 jdk-6u14-linux-x64.bin ;amoeba-mysql-binary-2.2.0.
client CentOS-7-x86_64 192.168.37.130 ---

實(shí)驗(yàn)安裝包:
鏈接:https://pan.baidu.com/s/1bHbR0fPzmVrZf5rGB3UNCA 密碼:8tho

實(shí)驗(yàn)過程:
一、時(shí)間同步
主服務(wù)器:
1、安裝ntp,編輯配置文件

   yum install ntp -y                     #如果已安裝忽略此步驟
   vim /etc/ntp.conf                     #末尾添加
   server 127.127.37.0             #本地是時(shí)鐘源
   fudge 127.127.37.0 stratum 8          #設(shè)置時(shí)間層級(jí)為8/時(shí)鐘可以擴(kuò)散8層

2、開啟服務(wù)

   systemctl start ntpd.service        #開啟服務(wù)
   systemctl stop firewalld.service
   setenforce 0

從服務(wù)器:
3、安裝ntp、ntpdate,開啟服務(wù)

yum install ntp ntpdate -y          #如果已安裝忽略此步驟
systemctl start ntpd.service        
systemctl stop firewalld.service
setenforce 0

4、開啟時(shí)間同步

/usr/sbin/ntpdate 192.168.37.128

mysql主從復(fù)制及讀寫分離(附安裝包)
二、主從復(fù)制
5、在三臺(tái)服務(wù)器上手工編譯安裝mysql5.5(操作過程概述如下)
//安裝環(huán)境

yum install gcc gcc-c++ make cmake ncurses-devel bison libaio-devel

//解壓安裝包

mkdir /opt/abc
mount.cifs //192.168.37.1/SHARE /opt/abc
tar zxvf /opt/abc/mysql-5.5.24.tar.gz -C /opt/

//編譯安裝

cd /opt/mysql-5.5.24
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DSYSCONFDIR=/etc \
-DMYSQL_DATADIR=/home/mysql/ \
-DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_SSL=system \
-DMYSQL_TCP_PORT=3306 \
-DENABLE_DOWNLOADS=1 \
-DWITH_SSL=bundled

make && make install

//mysql配置文件復(fù)制

cp support-files/my-medium.cnf /etc/my.cnf
cp support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig --level 35 mysqld on

//環(huán)境變量設(shè)置

echo "PATH=$PATH:/usr/local/mysql/bin/" >> /etc/profile
. /etc/profile #(注意:"."后面有空格)

//創(chuàng)建管理用戶mysql
useradd -s /sbin/nologin mysql
chown -R mysql.mysql /usr/local/mysql

//數(shù)據(jù)初始化

/usr/local/mysql/scripts/mysql_install_db \
--user=mysql \
--ldata=/var/lib/mysql \
--basedir=/usr/local/mysql \
--datadir=/home/mysql

//讓系統(tǒng)識(shí)別mysql

ln -s /var/lib/mysql/mysql.sock /home/mysql/mysql.sock
vi /etc/init.d/mysqld
basedir=/usr/local/mysql
datadir=/home/mysql

//開啟服務(wù)

service mysqld start

6、主服務(wù)器:
//編輯配置文件

vim /etc/my.cnf
service mysqld restart
mysql

mysql主從復(fù)制及讀寫分離(附安裝包)
//給從服務(wù)器授權(quán)

mysql>grant replication slave on . to 'myslave'@'192.168.37.%' identified by '123456'; #授權(quán)給myslave用戶
#replication 復(fù)制
mysql>flush privileges; #刷新權(quán)限
mysql>show master status; #查看主服務(wù)器日志文件

mysql主從復(fù)制及讀寫分離(附安裝包)

7、從服務(wù)器:
//編輯配置文件

vim /etc/my.cnf
service mysqld restart
注意:此處啟動(dòng)失敗,可重新加載環(huán)境變量,或者查看進(jìn)程是否被占用,重新啟動(dòng)即可
mysql

mysql主從復(fù)制及讀寫分離(附安裝包)
mysql主從復(fù)制及讀寫分離(附安裝包)
//從服務(wù)器同步主服務(wù)器
slave1:
注意:指定主服務(wù)器(操作前查看主服務(wù)器日志文件位置,會(huì)不斷變化)
mysql主從復(fù)制及讀寫分離(附安裝包)

change master to master_host='192.168.37.128',master_user='myslave',master_password='123456',master_log_file='master-bin.000005',master_log_pos=107;
start slave; #開啟主從復(fù)制
show slave status \G; #看到兩個(gè)yes

mysql主從復(fù)制及讀寫分離(附安裝包)
slave2:

change master to master_host='192.168.37.128',master_user='myslave',master_password='123456',master_log_file='master-bin.000005',master_log_pos=828;
start slave; #開啟主從復(fù)制
show slave status \G; #看到兩個(gè)yes

mysql主從復(fù)制及讀寫分離(附安裝包)
8、測(cè)試主從復(fù)制:主服務(wù)器上create database aaa,查看從服務(wù)器上是否存在數(shù)據(jù)庫(kù)aaa
mysql主從復(fù)制及讀寫分離(附安裝包)
mysql主從復(fù)制及讀寫分離(附安裝包)

三、Amoeba安裝(識(shí)別java語(yǔ)言)與配置
9、首先關(guān)閉防火墻

systemctl stop firewalld.service
setenforce 0

10、共享jdk安裝包,復(fù)制到/usr/local目錄下

mkdir /opt/abc
mount.cifs //192.168.37.1/SHARE /opt/abc
cd /opt/abc
cp jdk-6u14-linux-x64.bin /usr/local

11、執(zhí)行jdk文件

./jdk-6u14-linux-x64.bin

mysql主從復(fù)制及讀寫分離(附安裝包)
12、使系統(tǒng)識(shí)別jdk文件,其工作目錄全部放到/usr/local下

mv jdk1.6.0_14/ /usr/local/jdk1.6

13、環(huán)境變量修改,系統(tǒng)可以運(yùn)用安裝文件的命令

vim /etc/profile
mysql主從復(fù)制及讀寫分離(附安裝包)
source /etc/profile #刷新,使環(huán)境變量生效

14、安裝amoeba

mkdir /usr/local/amoeba #新建目錄
cd /opt/abc
tar zxvf amoeba-mysql-binary-2.2.0.tar.gz -C /usr/local/amoeba/ #解壓安裝包到新建目錄下
chmod -R 755 /usr/local/amoeba/ #保證755權(quán)限

15、開啟amoeba

/usr/local/amoeba/bin/amoeba

mysql主從復(fù)制及讀寫分離(附安裝包)

16、在三臺(tái)服務(wù)器上添加權(quán)限,開放給amoeba訪問

mysql>grant all on . to test@'192.168.37.%' identified by '123.com';
mysql>flush privileges;

17、配置代理服務(wù)器amoeba

vim /usr/local/amoeba/conf/amoeba.xml #配置文件

mysql主從復(fù)制及讀寫分離(附安裝包)
mysql主從復(fù)制及讀寫分離(附安裝包)

vim conf/dbServers.xml #數(shù)據(jù)庫(kù)配置文件
26行
"test" 用test身份讀取mysql數(shù)據(jù)
29行
123.com
42--主服務(wù)器地址


192.168.37.128
50--從服務(wù)器


192.168.37.131
64行--服務(wù)器池

slave1,slave2

18、開啟amoeba,查看端口

/usr/local/amoeba/bin/amoeba start&
netstat -ntap | grep java

四、客戶機(jī)測(cè)試(此處客戶機(jī)與amoeba同用一臺(tái)虛擬機(jī))
19、簡(jiǎn)易安裝mysql

yum install mysql -y

20、登錄mysql,進(jìn)行如下操作

mysql -u amoeba -p123456 -h 192.168.37.130 -P8066

mysql主從復(fù)制及讀寫分離(附安裝包)

21、從服務(wù)器:(作測(cè)試使用,實(shí)際生產(chǎn)環(huán)境不會(huì)停掉)

stop slave;

主服務(wù)器:只負(fù)責(zé)寫入,amoeba讀不到

insert into info values(1,'zhangsan',99);

slave1:

insert into info values(2,'lisi',88);

slave2:

insert into info values(3,'wangwu',77);

mysql主從復(fù)制及讀寫分離(附安裝包)
在客戶機(jī)查看:
mysql主從復(fù)制及讀寫分離(附安裝包)

至此,實(shí)驗(yàn)已全部完成!


文章題目:mysql主從復(fù)制及讀寫分離(附安裝包)
URL標(biāo)題:http://weahome.cn/article/gjdjps.html

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部