欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

mysql是否需要容器化深入分析

 更新時間:2023年09月06日 14:24:40   作者:氣宇軒昂的麻辣香鍋  
這篇文章主要為大家介紹了mysql是否需要容器化深入解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

正文

在容器化的時代,當然一切皆可容器化。在docker官網(wǎng)首頁赫然有下面這幾個大字。足以知道docker的優(yōu)勢。那么且問,mysql適合跑在docker中嗎?

當然,這個問題有人說可以,也有人說不可以。下面我們就正反都來看下各自的觀點。

1. 不可以容器化  

大部分人的理由有兩個:

其一,數(shù)據(jù)安全性不能保障

在容器或者docker出現(xiàn)故障時,不易恢復。即使使用數(shù)據(jù)卷掛載(volume)也會在容器故障時產生數(shù)據(jù)問題,共享的數(shù)據(jù)卷且對宿主機也會有損傷。即數(shù)據(jù)的持久化和完整性不能保證。docker適合無狀態(tài)的服務,不適合有數(shù)據(jù)狀態(tài)的mysql。

其二,影響mysql性能

mysql我們常用來讀寫,那么IO性能就會受docker影響,最終瓶頸出現(xiàn)在寫(在做了掛載情況下);且如果物理機其他應用占用過多資源,也會影響到容器。

當然,以上的問題,也都有對應的解決方案,但時也足夠復雜;對研發(fā)力量不足的企業(yè)來說,如果盲目容器化的話,可能會撿了芝麻,丟了西瓜?! ?/p>

2. 可以容器化  

有的小伙伴就會說了,同樣是服務,業(yè)務服務都是跑在docker中的,數(shù)據(jù)庫服務有何不可?

我只要配置下數(shù)據(jù)卷掛載,解決掉數(shù)據(jù)持久化問題,基本上就問題不大了。

比如:

docker run -p 3306:3306 --name mysql 
-v /mydata/mysql/log:/var/log/mysql 
-v /mydata/mysql/data:/var/lib/mysql 
-v /mydata/mysql/conf:/etc/mysql
-e TZ=Asia/Shanghai -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

亦或是docker官方給的mysql容器化的配置sample

services:
  backend:
    build: backend
    ports:
      - 8080:8080
    secrets:
      - db-password
  db:
    # We use a mariadb image which supports both amd64 & arm64 architecture
    image: mariadb:10.6.4-focal
    # If you really want to use MySQL, uncomment the following line
    #image: mysql:8.0.27
    restart: always
    secrets:
      - db-password
    volumes:
      - db-data:/var/lib/mysql
    environment:
      - MYSQL_DATABASE=example
      - MYSQL_ROOT_PASSWORD_FILE=/run/secrets/db-password
    expose:
      - 3306
      - 33060   
volumes:
  db-data:
secrets:
  db-password:
    file: db/password.txt

兩個例子都是通過-v把mysql相關目錄數(shù)據(jù)做好掛載,那么在容器出現(xiàn)故障或者被刪除時,能夠保證相關數(shù)據(jù)在宿主機中存在。讓數(shù)據(jù)恢復成為了可能性。注意!是可能性

當然還有docker天然的優(yōu)勢:  

  • 簡化部署,可移植性高 
  • 保證環(huán)境一致性
  • 這兩個優(yōu)勢 就足以促使很多人去做容器化部署。(估計大家都被手動部署,遷移,多環(huán)境問題搞得頭大過)

小結

兩種觀點或者是叫兩種方案沒有對錯。也不應該有爭論。而應該實事求是,根據(jù)當前的業(yè)務發(fā)展,研發(fā)力量來決策。如果沒有那個技術力量,就老老實實部署在物理機上,成本和風險更小。只是“萬事開頭難”而已。如果有實力,有技術,那么需要設計出一個好的架構方案;比如需要考慮鏡像管理,監(jiān)控,容器災備,存儲擴展,k8s等。技術的潮流一定是容器化,serverless化。作為技術人們要擁抱變化,要去踏浪,否則只會被淹沒在歷史的浪潮里。

以上就是mysql是否需要容器化深入解析的詳細內容,更多關于mysql容器化的資料請關注腳本之家其它相關文章!

相關文章

  • mysql 數(shù)據(jù)類型轉換的實現(xiàn)

    mysql 數(shù)據(jù)類型轉換的實現(xiàn)

    這篇文章主要介紹了mysql 數(shù)據(jù)類型轉換的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-02-02
  • 解析SQL Server 視圖、數(shù)據(jù)庫快照

    解析SQL Server 視圖、數(shù)據(jù)庫快照

    在程序開發(fā)過程中,任何一個項目都離不開數(shù)據(jù)庫,這篇文章給大家詳細介紹SQL Server 視圖、數(shù)據(jù)庫快照相關內容,需要的朋友可以參考下
    2015-08-08
  • mysql中IFNULL,IF,CASE的區(qū)別介紹

    mysql中IFNULL,IF,CASE的區(qū)別介紹

    本文將詳細介紹mysql中IFNULL,IF,CASE的區(qū)別,需要了解的朋友可以參考下
    2012-11-11
  • MySQL覆蓋索引的使用示例

    MySQL覆蓋索引的使用示例

    如果一個索引包含(或覆蓋)所有需要查詢的字段的值,稱為‘覆蓋索引’。這篇文章主要給大家介紹了關于MySQL覆蓋索引的相關資料,需要的朋友可以參考下
    2021-01-01
  • CentOs7安裝部署Sonar環(huán)境的詳細過程(JDK1.8+MySql5.7+sonarqube7.8)

    CentOs7安裝部署Sonar環(huán)境的詳細過程(JDK1.8+MySql5.7+sonarqube7.8)

    這篇文章主要介紹了CentOs7安裝部署Sonar環(huán)境(JDK1.8+MySql5.7+sonarqube7.8),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-06-06
  • Mysql中關于Incorrect string value的解決方案

    Mysql中關于Incorrect string value的解決方案

    在對mysql數(shù)據(jù)庫中插入數(shù)據(jù)的時候,直接插入中文是沒有問題的!但是用預編譯語句時,用流對數(shù)據(jù)進行處理總報incorrect string value這個異常。本篇文章教給你解決方法
    2021-09-09
  • MySQL高可用解決方案MMM(mysql多主復制管理器)

    MySQL高可用解決方案MMM(mysql多主復制管理器)

    MySQL本身沒有提供replication failover的解決方案,通過MMM方案能實現(xiàn)服務器的故障轉移,從而實現(xiàn)mysql的高可用。MMM不僅能提供浮動IP的功能,如果當前的主服務器掛掉后,會將你后端的從服務器自動轉向新的主服務器進行同步復制,不用手工更改同步配置
    2017-09-09
  • MySQL命令行導出與導入數(shù)據(jù)庫

    MySQL命令行導出與導入數(shù)據(jù)庫

    這篇文章主要為大家詳細介紹了利用命令行MySQL導出數(shù)據(jù)庫與導入數(shù)據(jù)庫的例子,感興趣的小伙伴們可以參考一下
    2016-06-06
  • MySQL系列之九 mysql查詢緩存及索引

    MySQL系列之九 mysql查詢緩存及索引

    緩存SELECT操作或預處理查詢的結果集和SQL語句,當有新的SELECT語句或預處理查詢語句請求,先去查詢緩存,判斷是否存在可用的記錄集,判斷標準:與緩存的SQL語句,是否完全一樣,區(qū)分大小寫
    2021-07-07
  • MySQL中查詢的有關英文字母大小寫問題的分析

    MySQL中查詢的有關英文字母大小寫問題的分析

    這篇文章主要介紹了MySQL中查詢的有關英文字母大小寫問題的分析,作者從多個角度進行了實驗,需要的朋友可以參考下
    2015-05-05

最新評論