在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

配置MySQL主從復(fù)制和讀寫分離

馬哥Linux運(yùn)維 ? 來源:博客園varlemon ? 2024-10-23 11:44 ? 次閱讀

實(shí)驗(yàn)環(huán)境

序號(hào) 主機(jī)名 IP地址 備注
1 mysql-master 192.168.204.201 MySQL主庫
2 mysql-slave 192.168.204.202 MySQL從庫
3 appserver 192.168.204.111 應(yīng)用服務(wù)器

78a241d8-90b7-11ef-a511-92fbcf53809c.png

安裝配置MySQL數(shù)據(jù)庫

1.使用yum安裝mysql和mysql-server

yum install -y mariadb mariadb-server

2.啟動(dòng)mysql服務(wù)

systemctl start mariadb
systemctl enable mariadb

3.查看啟動(dòng)狀態(tài)

systemctl status mariadb
netstat -anpt | grep "mysql" --color

78b6a164-90b7-11ef-a511-92fbcf53809c.png

4.允許3306端口通過防火墻

firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload

78d0e2a4-90b7-11ef-a511-92fbcf53809c.png

5.設(shè)置MySQL密碼

mysql_secure_installation

6.在mysql-master上創(chuàng)建數(shù)據(jù)庫

使用root用戶登錄MySQL

mysql -uroot -p123456

創(chuàng)建數(shù)據(jù)庫并添加數(shù)據(jù)

create database db_test;
show databases;
use db_test;

create table if not exists user_info(
    username varchar(16) not null,
    password varchar(32) not null,
    realname varchar(16) default '',
    primary key (username)
)default charset=utf8;
show tables;

insert into user_info(username, password, realname) values
('10001', '123456', '小明'),
('10002', '123456', '小紅'),
('10003', '123456', '小王'),
('10004', '123456', '小張'),
('10005', '123456', '小李');

select * from user_info where 1;

78e9d052-90b7-11ef-a511-92fbcf53809c.png

在mysql-master上授權(quán)數(shù)據(jù)庫訪問權(quán)限

GRANT all ON db_test.* TO 'admin'@'%' identified BY '123456';
flush privileges;

在mysql-slave、appserver上登錄mysql-master數(shù)據(jù)庫

mysql -h 192.168.204.201 -uroot -p123456

78fa0fb2-90b7-11ef-a511-92fbcf53809c.png

在mysql-master上撤銷數(shù)據(jù)庫訪問權(quán)限

REVOKE all ON db_test.* FROM 'admin'@'%';
flush privileges;

配置master和slave兩臺(tái)mysql服務(wù)器的主從復(fù)制

1.在master數(shù)據(jù)庫上啟用binlog日志,建立從庫賬號(hào)rep

查看binlog日志狀態(tài)

show variables like 'log_bin';

79125d1a-90b7-11ef-a511-92fbcf53809c.png

更改my.cnf配置文件

cp /usr/share/mysql/my-medium.cnf /etc/my.cnf

792b3858-90b7-11ef-a511-92fbcf53809c.png

重啟MySQL,查看binlog日志

systemctl restart mariadb
mysql -uroot -p123456 -e "show variables like 'log_bin';"
mysql -uroot -p123456 -e "show master status;"

79418248-90b7-11ef-a511-92fbcf53809c.png

記住此處File和Position的值

建立從庫賬號(hào)

grant replication slave on *.* to rep@'192.168.204.202' identified by '123456';
show grants for rep@'192.168.204.%';

7960ff88-90b7-11ef-a511-92fbcf53809c.png

2.在master數(shù)據(jù)庫上備份現(xiàn)有數(shù)據(jù)庫

對(duì)master數(shù)據(jù)庫鎖表

flush tables with read lock;

備份master數(shù)據(jù)庫

mysqldump -uroot -p123456 --all-databases | gzip > /root/database_`date '+%Y-%m-%d'`.sql.gz

將備份文件拷貝至slave

scp database_*.sql.gz root@192.168.204.202:/root

3. 配置slave數(shù)據(jù)庫,在slave上恢復(fù)數(shù)據(jù)庫

配置slave數(shù)據(jù)庫server-id,關(guān)閉binlog日志

cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
# vim /etc/my.cnf

#log-bin=mysql-bin
#binlog_format=mixed
server-id       = 2

79764d70-90b7-11ef-a511-92fbcf53809c.png

4.重啟slave的mysql

重啟mysql服務(wù)

systemctl restart mariadb

查看log_bin和server_id的值

show variables like 'log_bin';
show variables like 'server_id';

798b6188-90b7-11ef-a511-92fbcf53809c.png

5.將數(shù)據(jù)恢復(fù)至slave

gzip -d /root/database_*.sql.gz
mysql -uroot -p123456 < /root/database_*.sql
mysql -uroot -p123456 -e "show databases;"

79a1ccfc-90b7-11ef-a511-92fbcf53809c.png

6.在slave數(shù)據(jù)庫上配置復(fù)制參數(shù)

在slave上配置復(fù)制參數(shù)
將MASTER_LOG_FILE和MASTER_LOG_POS的值替換成上述master上查詢的值

change master to
MASTER_HOST='192.168.204.201',
MASTER_USER='rep',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-bin.000002',
MASTER_LOG_POS=245;

79c29f72-90b7-11ef-a511-92fbcf53809c.png

在slave上配置啟用復(fù)制

start slave;

79da9a8c-90b7-11ef-a511-92fbcf53809c.png

在slave上查看復(fù)制狀態(tài)

show slave status G;

79fe27cc-90b7-11ef-a511-92fbcf53809c.png

兩個(gè)均為Yes即可

重啟master和slave的mysql服務(wù)

systemctl restart mariadb

在master上為數(shù)據(jù)庫db_test增加記錄,在slave查看同步情況

-- mysql-master
insert into db_test.user_info (username, password, realname) values ('20001', '123456', 'Tom');
select * from db_test.user_info where 1;

7a1388e2-90b7-11ef-a511-92fbcf53809c.png

-- mysql-slave
select * from db_test.user_info where 1;

7a31212c-90b7-11ef-a511-92fbcf53809c.png

已經(jīng)實(shí)現(xiàn)了主從復(fù)制

在appserver上配置mysql讀寫分離

1.在appserver上安裝mysql-proxy

從https://downloads.mysql.com/archives/proxy/下載mysql-proxy

cd ~
wget https://downloads.mysql.com/archives/get/file/mysql-proxy-0.8.5-linux-sles11-x86-64bit.tar.gz
tar -xzvf mysql-proxy-0.8.5-linux-sles11-x86-64bit.tar.gz
cp -r mysql-proxy-0.8.5-linux-sles11-x86-64bit /usr/local/mysql-proxy

2.在appserver上配置mysql-proxy

創(chuàng)建主配置文件

cd /usr/local/mysql-proxy
mkdir lua        #創(chuàng)建腳本存放目錄
mkdir logs       #創(chuàng)建日志目錄
cp share/doc/mysql-proxy/rw-splitting.lua ./lua/  #復(fù)制讀寫分離配置文件
cp share/doc/mysql-proxy/admin-sql.lua ./lua/     #復(fù)制管理腳本
vim /etc/mysql-proxy.cnf     #創(chuàng)建配置文件

主配置文件內(nèi)容

使用前,請(qǐng)去掉注釋

#vim /etc/mysql-proxy.cnf

[mysql-proxy]
user=root #運(yùn)行mysql-proxy用戶
admin-username=myproxy #主從mysql共有的用戶
admin-password=123456 #用戶的密碼
proxy-address=127.0.0.1:3306 #mysql-proxy運(yùn)行ip和端口,不加端口默認(rèn)4040
proxy-read-only-backend-addresses=192.168.204.202 #指定后端從slave讀取數(shù)據(jù)
proxy-backend-addresses=192.168.204.201 #指定后端master寫入數(shù)據(jù)
proxy-lua-script=/usr/local/mysql-proxy/lua/rw-splitting.lua #指定讀寫分離配置文件位置
admin-lua-script=/usr/local/mysql-proxy/lua/admin-sql/lua #指定管理腳本
log-file=/usr/local/mysql-proxy/logs/mysql-proxy.log #日志位置
log-level=info #定義log日志級(jí)別,由高到低分別(error|warning|info|message|debug)

修改權(quán)限

chmod 660 /etc/mysql-proxy.cnf

3.在appserver上修改讀寫分離配置文件

vim /usr/local/mysql-proxy/lua/rw-splitting.lua

修改以下內(nèi)容

--- config
--
-- connection pool
if not proxy.global.config.rwsplit then
        proxy.global.config.rwsplit = {
                min_idle_connections = 1,  -- 默認(rèn)超過4個(gè)連接數(shù)時(shí)才開始讀寫分離
                max_idle_connections = 1,  -- 默認(rèn)為8

                is_debug = false
        }
end

7a613826-90b7-11ef-a511-92fbcf53809c.png

4.在appserver上啟動(dòng)mysql-proxy

啟動(dòng)

/usr/local/mysql-proxy/bin/mysql-proxy --defaults-file=/etc/mysql-proxy.cnf --daemon

查看進(jìn)程

netstat -anpt | grep 3306

7a77ad72-90b7-11ef-a511-92fbcf53809c.png

5.在mysql-master和mysql-slave上分別給myproxy授權(quán)

在mysql-master和mysql-slave上授權(quán)給mysql-proxy

grant all on *.* to 'myproxy'@'192.168.204.%' identified by '123456';
flush privileges;

6.在appserver上連接mysql-proxy,測(cè)試讀寫分離

在appserver上通過mysql-proxy操作數(shù)據(jù)庫

mysql -h 127.0.0.1 -umyproxy -p123456 -e "select * from db_test.user_info where 1;"
mysql -h 127.0.0.1 -umyproxy -p123456 -e "insert into db_test.user_info (username, password, realname) values ('30001', '123456', 'Jack');"
mysql -h 127.0.0.1 -umyproxy -p123456 -e "select * from db_test.user_info where 1;"

7a8d337c-90b7-11ef-a511-92fbcf53809c.png

在mysql-master上查詢

mysql -uroot -p123456 -e "select * from db_test.user_info where 1;"

7ab42478-90b7-11ef-a511-92fbcf53809c.png

在mysql-master上查詢

mysql -uroot -p123456 -e "select * from db_test.user_info where 1;"

7ad663b2-90b7-11ef-a511-92fbcf53809c.png

經(jīng)驗(yàn)證,已實(shí)現(xiàn)讀寫分離

鏈接:https://www.cnblogs.com/connect/p/mysql-master-slave-copy-and-read-write-separation.html

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    13

    文章

    9730

    瀏覽量

    87469
  • 數(shù)據(jù)庫
    +關(guān)注

    關(guān)注

    7

    文章

    3905

    瀏覽量

    65884
  • MySQL
    +關(guān)注

    關(guān)注

    1

    文章

    849

    瀏覽量

    27672

原文標(biāo)題:配置MySQL主從復(fù)制和讀寫分離

文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    Mysql如何實(shí)現(xiàn)雙向互為主從復(fù)制

    機(jī)器上得到的偏移量如果是基于GTID的主從復(fù)制 不用找binglog 和pos點(diǎn)master_auto_position=1;#加上這個(gè)參數(shù)就可以
    發(fā)表于 06-22 17:48

    MySQL的幾種復(fù)制配置

    MySQL主從復(fù)制、主主復(fù)制、雙主多從配置
    發(fā)表于 04-16 09:50

    基于二進(jìn)制安裝MySQL主從復(fù)制

    二進(jìn)制安裝MySQL實(shí)現(xiàn)主從復(fù)制
    發(fā)表于 03-10 09:43

    mysql主從復(fù)制

    mysql 主從復(fù)制
    發(fā)表于 04-28 14:30

    基于mycat的Mysql主從復(fù)制讀寫分離全攻略

    基于mycat的Mysql主從復(fù)制讀寫分離全攻略
    發(fā)表于 09-08 10:10 ?4次下載
    基于mycat的<b class='flag-5'>Mysql</b><b class='flag-5'>主從復(fù)制</b><b class='flag-5'>讀寫</b><b class='flag-5'>分離</b>全攻略

    利用MySQL進(jìn)行一主一從的主從復(fù)制

    本文講述了如何使用MyBatisPlus+ShardingSphereJDBC進(jìn)行讀寫分離,以及利用MySQL進(jìn)行一主一從的主從復(fù)制
    的頭像 發(fā)表于 07-28 09:47 ?1229次閱讀

    MySQL主從復(fù)制原理詳解

    簡單講,MySQL主從復(fù)制就是數(shù)據(jù)寫入一臺(tái)服務(wù)器(主服務(wù)器)后,同時(shí)還會(huì)額外寫入另外的服務(wù)器(從服務(wù)器)。也就是說數(shù)據(jù)會(huì)寫多份,這樣做的目的主要有兩個(gè):
    的頭像 發(fā)表于 02-06 10:27 ?1274次閱讀

    一個(gè)操作把MySQL主從復(fù)制整崩了

    最近公司某項(xiàng)目上反饋mysql主從復(fù)制失敗,被運(yùn)維部門記了一次大過,影響到了項(xiàng)目的驗(yàn)收推進(jìn),那么究竟是什么原因?qū)е碌哪兀慷?b class='flag-5'>主從復(fù)制的原理又是什么呢?本文就對(duì)排查分析的過程做一個(gè)記錄。
    的頭像 發(fā)表于 05-11 11:14 ?711次閱讀
    一個(gè)操作把<b class='flag-5'>MySQL</b><b class='flag-5'>主從復(fù)制</b>整崩了

    什么是Redis主從復(fù)制

    Redis主從復(fù)制 來自靈魂的拷問:什么是Redis主從復(fù)制? 簡言之就是: 主對(duì)外從對(duì)內(nèi),主可寫從不可寫 主掛了,從不可為主 看下面的圖加深下理解: 對(duì),你沒看錯(cuò),Redis主從復(fù)制沒有動(dòng)態(tài)選舉
    的頭像 發(fā)表于 10-09 15:09 ?604次閱讀
    什么是Redis<b class='flag-5'>主從復(fù)制</b>

    mysql主從復(fù)制三種模式

    MySQL主從復(fù)制是一種常見的數(shù)據(jù)同步方式,它可以實(shí)現(xiàn)將一個(gè)數(shù)據(jù)庫的更改同步到其他多個(gè)數(shù)據(jù)庫的功能。主從復(fù)制可以提高數(shù)據(jù)庫的可用性和性能,以及提供故障恢復(fù)和數(shù)據(jù)備份的支持。在MySQL
    的頭像 發(fā)表于 11-16 14:04 ?1923次閱讀

    mysql如何實(shí)現(xiàn)主從復(fù)制的具體流程

    主從復(fù)制MySQL數(shù)據(jù)庫中常用的數(shù)據(jù)復(fù)制技術(shù)之一,它的主要目的是將一個(gè)數(shù)據(jù)庫服務(wù)器上的數(shù)據(jù)復(fù)制到其他服務(wù)器上,以實(shí)現(xiàn)數(shù)據(jù)的備份、高可用和分布式部署。下面將詳細(xì)介紹
    的頭像 發(fā)表于 11-16 14:10 ?999次閱讀

    mysql主從復(fù)制主要有幾種模式

    MySQL主從復(fù)制MySQL數(shù)據(jù)庫中常用的一種數(shù)據(jù)復(fù)制方式,用于實(shí)現(xiàn)數(shù)據(jù)的備份、負(fù)載均衡、故障恢復(fù)等目的。主從復(fù)制主要有以下幾種模式: 異
    的頭像 發(fā)表于 11-16 14:15 ?1433次閱讀

    mysql主從復(fù)制的原理

    MySQL主從復(fù)制是一種數(shù)據(jù)庫復(fù)制技術(shù),它允許將一個(gè)MySQL數(shù)據(jù)庫的更新操作自動(dòng)復(fù)制到其他MySQL
    的頭像 發(fā)表于 11-16 14:18 ?687次閱讀

    mysql主從復(fù)制 混合類型的復(fù)制

    使用行級(jí)復(fù)制和語句級(jí)復(fù)制。本文將詳細(xì)介紹MySQL主從復(fù)制的概念、原理、配置步驟以及優(yōu)缺點(diǎn),并重點(diǎn)討論混合類型
    的頭像 發(fā)表于 11-16 14:20 ?772次閱讀

    mysql主從復(fù)制數(shù)據(jù)不一致怎么辦

    MySQL主從復(fù)制是一種常用的數(shù)據(jù)復(fù)制技術(shù),用于實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)同步和分布式部署。然而,在實(shí)際應(yīng)用中,主從復(fù)制過程中出現(xiàn)數(shù)據(jù)不一致的情況也是很常見的。本文將從以下幾個(gè)方面介紹
    的頭像 發(fā)表于 11-16 14:35 ?2787次閱讀
    主站蜘蛛池模板: 激情福利网站 | 男女激情做爰叫床声视频偷拍 | 性色a v 一区 | 久久青草91线频免费观看 | 国产一级特黄高清免费大片 | 国产91色综合久久免费分享 | 日日天天干 | 色伊人久久 | 伊人久久大香线蕉资源 | 激情综合网激情 | 欧洲色| 理论视频在线观看 | 免费一级毛片在级播放 | 亚洲aa视频| 久久精品国产免费高清 | 一级毛片真人免费播放视频 | 久久精品国产99国产精品免费看 | 9999毛片免费看 | 亚洲视频免费一区 | 亚洲一区二区影院 | 激情综合五月 | 牛牛a级毛片在线播放 | 国产在线五月综合婷婷 | 在线观看二区三区午夜 | 高清午夜线观看免费 | 国模私拍在线 | 色综合天天 | 亚洲一一在线 | 国内真实实拍伦视频在线观看 | 久久激情综合网 | 天堂自拍 | 成年人污视频 | 亚洲福利一区二区 | 欧美一区二区视频 | 欧美三级免费看 | 一个综合色| 女人张开腿让男人桶免费最新 | 天天操天天舔 | 特黄一级毛片 | xx在线观看| 热久久久|