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

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

mysql怎么在線分離 mysql數(shù)據(jù)庫分離數(shù)據(jù)

mysql讀寫分離原理是什么?要如何操作?

在老版本的MySQL 3.22中,MySQL的單表限大小為4GB,當(dāng)時的MySQL的存儲引擎還是ISAM存儲引擎。但是,當(dāng)出現(xiàn)MyISAM存儲引擎之后,也就是從MySQL 3.23開始,MySQL單表最大限制就已經(jīng)擴大到了64PB了(官方文檔顯示)。也就是說,從目前的技術(shù)環(huán)境來看,MySQL數(shù)據(jù)庫的MyISAM存儲 引擎單表大小限制已經(jīng)不是有MySQL數(shù)據(jù)庫本身來決定,而是由所在主機的OS上面的文件系統(tǒng)來決定了。\x0d\x0a\x0d\x0a而MySQL另外一個最流行的存儲引擎之一Innodb存儲數(shù)據(jù)的策略是分為兩種的,一種是共享表空間存儲方式,還有一種是獨享表空間存儲方式。\x0d\x0a當(dāng)使用共享表空間存儲方式的時候,Innodb的所有數(shù)據(jù)保存在一個單獨的表空間里面,而這個表空間可以由很多個文件組成,一個表可以跨多個文件存在,所 以其大小限制不再是文件大小的限制,而是其自身的限制。從Innodb的官方文檔中可以看到,其表空間的最大限制為64TB,也就是說,Innodb的單 表限制基本上也在64TB左右了,當(dāng)然這個大小是包括這個表的所有索引等其他相關(guān)數(shù)據(jù)。\x0d\x0a而當(dāng)使用獨享表空間來存放Innodb的表的時候,每個表的數(shù)據(jù)以一個單獨的文件來存放,這個時候的單表限制,又變成文件系統(tǒng)的大小限制了。

專注于為中小企業(yè)提供成都網(wǎng)站設(shè)計、成都做網(wǎng)站服務(wù),電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)市南免費做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了上千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。

mysql主從庫與讀寫分離

一.mysql主從庫與讀寫分離的實現(xiàn)理論

二.mysql配置

1.準(zhǔn)備兩臺服務(wù)器安裝mysql(也可以在一臺中裝兩個mysql修改端口號避免沖突)

2.分別連接mysql

3.配置mysql

1.配置主庫 monster

打開binary log

2.配置從庫

主庫授權(quán)

賬號repl后面的是從庫的ip地址 mysql是賬號repl的密碼

刷新

后面master_log_pos=0 表示從零開始同步 master_log_file 是上面SHOW MASTER STATUS 下面的file文件

在從庫中開啟主從跟蹤

查看從庫狀態(tài)

從庫中終止主從同步 stop slave

查看 my.cnf 文件 把 server -id=1 的字段刪除 保留server-id=2 修改后保存 重啟mysql 重新連接 開啟主從同步start slave

查看從庫狀態(tài) 發(fā)現(xiàn)沒有錯誤 到此主從同步配置已經(jīng)完成.

SpringBoot項目中實現(xiàn)MySQL讀寫分離

但我們仔細觀察我們會發(fā)現(xiàn),當(dāng)我們的項目都是用的單體數(shù)據(jù)庫時,那么就可能會存在如下問題:

為了解決上述提到的兩個問題,我們可以準(zhǔn)備兩 (多) 臺MySQL,一臺主( Master )服務(wù)器,一臺從( Slave )服務(wù)器,主庫的 數(shù)據(jù)變更 (寫、更新、刪除這些操作) ,需要 同步 到從庫中 (主從復(fù)制) 。而用戶在訪問我們項目時,如果是 寫操作 (insert、update、delete),則直接操作 主庫 ;如果是 讀操作 (select) ,則直接操作從庫,這種結(jié)構(gòu)就是 讀寫分離 啦。

在這種讀寫分離的結(jié)構(gòu)中,從庫是可以有多個的

MySQL主從復(fù)制是一個 異步 的復(fù)制過程,底層是基于Mysql數(shù)據(jù)庫自帶的 二進制日志 功能。就是一臺或多臺MySQL數(shù)據(jù)庫(slave,即 從庫 )從另一臺MySQL數(shù)據(jù)庫(master,即 主庫 )進行日志的復(fù)制,然后再解析日志并應(yīng)用到自身,最終實現(xiàn) 從庫 的數(shù)據(jù)和 主庫 的數(shù)據(jù)保持一致。MySQL主從復(fù)制是 MySQL數(shù)據(jù)庫自帶功能,無需借助第三方工具。

二進制日志(BINLOG)記錄了所有的 DDL(數(shù)據(jù)定義語言)語句和 DML(數(shù)據(jù)操縱語言)語句,但是不包括數(shù)據(jù)查詢語句。此日志對于災(zāi)難時的數(shù)據(jù)恢復(fù)起著極其重要的作用,MySQL的主從復(fù)制, 就是通過該binlog實現(xiàn)的。默認(rèn)MySQL是未開啟該日志的。

在環(huán)境搭建之前,我們需要準(zhǔn)備好兩臺服務(wù)器,如果生活富裕使用的是兩臺云服務(wù)器的時候記得要開放安全組,即防火墻;如果是比狗子我生活好點但也是用的虛擬機的話,記得別分這么多內(nèi)存啟動藍屏了(別問怎么知道的)

這里就不給大家展示數(shù)據(jù)庫的安裝和防火墻的操作了,這個我感覺網(wǎng)上好多資源都能夠滿足遇到的問題,在搭建主從庫的時候有在網(wǎng)上見到過說MySQL版本要一致的,我也沒太留意直接就在之前的MySQL上操作了,大家可以自己去驗證一下。

服務(wù)器:192.168.150.100(別試了黑不了的,這是虛擬機的ip)

這里有三個方法都能重啟MySQL,最簡單的無疑就是一關(guān)一開:

登錄進去MySQL之后才能夠執(zhí)行下面的命令,因為這是SQL命令,Linux不認(rèn)識這玩意是啥。

這個時候還 不用退出MySQL ,因為下面的命令還是SQL命令,執(zhí)行下面的SQL,可以拿到我們后面需要的兩個重要參數(shù)。

執(zhí)行完這一句SQL之后,==不要再操作主庫!不要再操作主庫!不要再操作主庫!==重要的事情說三遍,因為再操作主庫之后可能會導(dǎo)致紅框中的 兩個屬性值會發(fā)生變化 ,后面如果發(fā)生了錯誤可能就和這里有那么兩毛錢關(guān)系了。

服務(wù)器:192.168.150.101(別試了黑不了的,這也是虛擬機的ip)

這里要注意server-id和主庫以及其他從庫都不能相同,否則后面將會配置不成功。

這里有三個方法都能重啟MySQL,最簡單的無疑就是一關(guān)一開:

登錄進去MySQL之后才能夠執(zhí)行下面的命令,因為這是SQL命令

參數(shù)說明:

這個時候還 不用退出MySQL ,因為下面的命令還是SQL命令,執(zhí)行下面的SQL,可以看到從庫的狀態(tài)信息。通過狀態(tài)信息中的 Slave_IO_running 和 Slave_SQL_running 可以看出主從同步是否就緒,如果這兩個參數(shù)全為 Yes ,表示主從同步已經(jīng)配置完成。

這可能是由于linux 是復(fù)制出來的,MySQL中還有一個 server_uuid 是一樣的,我們也需要修改。 vim /var/lib/mysql/auto.cnf

這應(yīng)該就是各位大牛設(shè)置server_id的時候不小心設(shè)置相同的id了,修改過來就行,步驟在上面的配置中。

這是狗子在操作過程中搞出來的一個錯誤……

出錯的原因是在主庫中刪除了用戶信息,但是在從庫中同步的時候失敗導(dǎo)致同步停止,下面記錄自己的操作(是在進入MySQL的操作且是從庫)。

在數(shù)據(jù)庫中操作時,一定要注意當(dāng)前所在的數(shù)據(jù)庫是哪個,作為一個良好的實踐:在SQL語句前加 USE dbname 。

Sharding-JDBC定位為 輕量級Java框架 ,在Java的JDBC層提供的額外服務(wù)。 它使用客戶端直連數(shù)據(jù)庫,以 jar包 形式提供服務(wù),無需額外部署和依賴,可理解為增強版的JDBC驅(qū)動, 完全兼容JDBC和各種ORM框架 。

使用Sharding-JDBC可以在程序中輕松的實現(xiàn)數(shù)據(jù)庫 讀寫分離 。

Sharding-JDBC具有以下幾個特點:

下面我們將用ShardingJDBC在項目中實現(xiàn)MySQL的讀寫分離。

在pom.xml文件中導(dǎo)入ShardingJDBC的依賴坐標(biāo)

在application.yml中增加數(shù)據(jù)源的配置

這時我們就可以對我們項目中的配置進行一個測試,下面分別調(diào)用一個更新接口和一個查詢接口,通過查看日志中記錄的數(shù)據(jù)源來判斷是否能夠按照我們預(yù)料中的跑。

搞定?。?!程序正常按照我們預(yù)期的成功跑起來了,成功借助ShardingJDBC在我們項目中實現(xiàn)了數(shù)據(jù)庫的讀寫分離。


當(dāng)前題目:mysql怎么在線分離 mysql數(shù)據(jù)庫分離數(shù)據(jù)
標(biāo)題路徑:http://weahome.cn/article/dosidpc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部