當前位置:首頁 » 數據倉庫 » mysql資料庫讀寫
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

mysql資料庫讀寫

發布時間: 2023-08-06 12:51:42

㈠ SpringBoot項目中實現Mysql讀寫分離

但我們仔細觀察我們會發現,當我們的項目都是用的單體資料庫時,那麼就可能會存在如下問題:

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

在這種讀寫分離的結構中,從庫是可以有多個的

MySQL主從復制是一個 非同步 的復制過程,底層是基於Mysql資料庫自帶的 二進制日誌 功能。就是一台或多台MySQL資料庫(slave,即 從庫 )從另一台MySQL資料庫(master,即 主庫 )進行日誌的復制,然後再解析日誌並應用到自身,最終實現 從庫 的數據和 主庫 的數據保持一致。MySQL主從復制是 MySQL資料庫自帶功能,無需藉助第三方工具。

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

在環境搭建之前,我們需要准備好兩台伺服器,如果生活富裕使用的是兩台雲伺服器的時候記得要開放安全組,即防火牆;如果是比狗子我生活好點但也是用的虛擬機的話,記得別分這么多內存啟動藍屏了(別問怎麼知道的)

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

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

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

登錄進去MySQL之後才能夠執行下面的命令,因為這是SQL命令,Linux不認識這玩意是啥。

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

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

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

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

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

登錄進去MySQL之後才能夠執行下面的命令,因為這是SQL命令

參數說明:

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

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

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

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

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

在資料庫中操作時,一定要注意當前所在的資料庫是哪個,作為一個良好的實踐:在SQL語句前加 USE dbname 。

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

使用Sharding-JDBC可以在程序中輕松的實現資料庫 讀寫分離

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

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

在pom.xml文件中導入ShardingJDBC的依賴坐標

在application.yml中增加數據源的配置

這時我們就可以對我們項目中的配置進行一個測試,下面分別調用一個更新介面和一個查詢介面,通過查看日誌中記錄的數據源來判斷是否能夠按照我們預料中的跑。

搞定!!!程序正常按照我們預期的成功跑起來了,成功藉助ShardingJDBC在我們項目中實現了資料庫的讀寫分離。

㈡ ABPLC如何採集讀寫MYSQL資料庫

通過資料庫網關連接羅克韋爾1756-L72的乙太網埠標簽方式採集數據,將數據存入MySQL資料庫,以下描述具體的操作步驟。PLC數據MQTT多主題發布/訂閱西門子PLC數據採集到資料庫

網關模塊安裝在設備側,不用電腦軟體,隨設備上電啟動自動運行,保證設備數據採集與設備運行同步,簡單高效的完成了數據採集;已批量用於多種行業的智能工廠,大大提高MES等工業互聯網項目的實施效率。IGT-DSER帶有兩種數據緩存功能:

1. 高頻次採集數據緩存,打包後一次性上報到資料庫;

2. 斷網、伺服器維護上報異常時,將數據緩存,待故障解除後重新上報到資料庫

網關支持西門子、三菱、歐姆龍、施耐德等幾乎所有的PLC品牌,通過以上參數軟體自行切換即可;關於網關模塊的詳細介紹可查看CSDN的這篇文章,或者到這里下載PDF手冊。以下是詳細的操作步驟:


首先用Navicat連接伺服器資料庫,建立一個數據表,名稱為'abplcdata',數據表設計視圖如下:

然後在PC上運行網關的參數設置軟體,網線連接IGT-DSER網關的網口1,先配置網路參數(默認IP:192.168.1.244,確認PC的網口與網關默認IP同網段),通過『工具』->『搜索在線網關』,搜索到網關後,修改IP地址等參數,具體如下:


網口1.PLC設備末段IP設置為0表示有多台同系列同網段的PLC,每台PLC的IP地址在PLC數據地址表裡面配置,後面有描述;設置完成後通過『參數』->『參數寫入到網關』,下載參數,會有以下提示:

點『是(Y)』即可,參數下載成功後將網關斷電,網口1接入PLC的交換機網路,同時修改PC的網口參數為PLC同網段,重新搜索網關讀取參數後,通過『功能』->『數據上報與下載』進入數據服務配置頁面,選擇SQL遠程資料庫,配置資料庫地址、PLC標簽的參數;


配置完成後要下載參數,通過『工具』->『重啟網關』,重啟後,網關即進入工作狀態,通過讀取參數可查看網關的實際數據,雙擊配置表對應的數據序號可查看數據值,如下圖:

序號001是日期時間,取自網關的RTC時鍾;002和003是PLC的控制器二維數組;004、005和006是控制器一維數組;007為程序變數,字元串類型;008是程序數組;009是控制器變數,BOOL類型;

設備/站號欄目的數值9,表示PLC的IP地址(192.168.0.9)末段(前三段與網關的網口1相同),如果需要增加另外的同系列同網段PLC,在這里設置對應的IP末段地址即可,不同的PLC對應不同的數據表,或者不同的記錄行;

需要注意配置表『數據地址』欄是PLC的數據標簽,不能錯誤,否則讀不到數據,所以最好是通過PLC的編程軟體從PLC導出CSV文件,然後復制到配置表,如下圖:

再打開Navicat查看資料庫中的數據,如下圖:

這樣就完成了數據採集,沒間隔5秒網關會自動上報一次數據,這個周期可以調整,也可以設置成觸發模式,根據數據變化上報數據;

相關資源:利用PLC實現數據採集_plc數據採集並存入資料庫,plc數據採集-專業...

————————————————

版權聲明:本文為CSDN博主「肉褚」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。

原文鏈接:https://blog.csdn.net/weixin_42302872/article/details/113655413

㈢ mysql讀寫分離原理是什麼要如何操作

利用mysql proxy來實現的。

MySQL Proxy最強大的一項功能是實現「讀寫分離(Read/Write Splitting)」。基本的原理是讓主資料庫處理事務性查詢,而從資料庫處理SELECT查詢。資料庫復制被用來把事務性查詢導致的變更同步到集群中的從資料庫。當然,主伺服器也可以提供查詢服務。使用讀寫分離最大的作用無非是環境伺服器壓力。