日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

解決Docker之mysql容器數據庫更改不生效的問題

瀏覽:265日期:2023-10-24 13:56:27

用官方的mysql 鏡像需要修改一些內容,比如配置文件的修改,DB數據文件的目錄等,更改之后如果重新運行容器,改過的文件就無效了,新生成的容器不會有之前改變的內容

第一種是修改官方下載的鏡像,修改之后 提交一個新的鏡像文件 docker commit -m 等新生成的鏡像信息,

第二種MYSQL的DB數據,容器關閉后 如果用 docker restart 重啟同一容器,那么數據是正常的,如果重新docker run 容器那么數據就不會顯示,因為每個容器都有一個文件地址

這就需要把數據文件掛載出來,供其它容器讀取,

在docker中啟動mysql容器,在mysql容器中對數據庫的更改(如創建數據庫,更改數據等),在commit后再次進入容器發現之前的更改全部沒有保存

1.后臺運行mysql容器,設置容器名稱為mysql:

[root@localhost ~]# docker run --name=mysql -p 3306:3306 -d owenchen1992/mysql

f80791a0daf194fdba94f16a9d89ebec8ba8fbd8af28d3ea8b599b9d705f85ba

2.進入容器bash和mysql,創建一個數據庫TEST_DB,并驗證TEST_DB創建成功:

[root@localhost ~]# docker exec -it mysql bash root@f80791a0daf1:/# mysql -uroot -p show databases; create database TEST_DB;

3.退出容器,并commit更改到鏡像: 這個數據其實是在宿主機上修改,不是mysql鏡像的東西。所以不生效

mysql> exitByeroot@f80791a0daf1:/# exitexit[root@localhost ~]# docker commit mysql owenchen1992/mysql

4.重新啟動容器并進入bash和mysql,發現之前創建的TEST_DB不見了,說明之前的更改無效:

[root@localhost ~]# docker container stop mysqlmysql[root@localhost ~]# docker container rm mysql mysql[root@localhost ~]# docker run --name=mysql -p 3306:3306 -d owenchen1992/mysqla1a1b4174caaadda0ec4b01b9fe5f92d6b3464d85284042274f71aebde0915dd[root@localhost ~]# docker exec -it mysql bashroot@a1a1b4174caa:/# mysql -uroot -pEnter password: Welcome to the MySQL monitor. Commands end with ; or g.Your MySQL connection id is 3Server version: 5.7.20 MySQL Community Server (GPL) mysql> show databases;+--------------------+| Database |+--------------------+| information_schema || mysql || performance_schema || sys |+--------------------+4 rows in set (0.00 sec)

問題原因:

在mysql的Dockerfile中有這樣一行:

VOLUME /var/lib/mysql

這意味在容器中的目錄/var/lib/mysql的所有修改會對應到宿主機的某個位置,可以通過命令查看具體對應的宿主機目錄:docker inspect containerID/name. 當運行docker commit時,容器中的/var/lib/mysql目錄的更改并不會提交到鏡像中,但這些更改是隨時與宿主機對應的目錄同步的。

當重新啟動commit后的鏡像時,container會重新在宿主機中創建一個目錄來保存其數據更新,因此并不是原先的宿主機目錄,所以新開啟的容器看不到之前的數據更改。

解決方法:

我們已經知道了問題發生的原因,就不難解決這個問題了,步驟如下:

可以直接去這個目錄下查看為每個容器生成的數據目錄

1.找到mysql容器對應的宿主機目錄'/var/lib/docker/volumes/8496bbf33782bdadc027cdcf23197e5ebc36d11deb69ee833d63b557b3a7183d/_data':

[root@localhost ~]# docker inspect mysql[...... 'Source': '/var/lib/docker/volumes/8496bbf33782bdadc027cdcf23197e5ebc36d11deb69ee833d63b557b3a7183d/_data', 'Destination': '/var/lib/mysql',......]

把之前的創建容器運行的步驟再執行一步,運行新的容器,然后建一張TEST表,先關閉容器后刪除容器服務

4.后臺運行容器新的容器,并將宿主機對應的目錄掛載到容器的/var/lib/mysql目錄下并開啟讀寫權限(關鍵步驟):

[root@localhost ~]# docker run --name=mysql -p 3306:3306 -v /var/lib/docker/volumes/8496bbf33782bdadc027cdcf23197e5ebc36d11deb69ee833d63b557b3a7183d/_data:/var/lib/mysql:rw -d owenchen1992/mysql

5.此時進入新開啟的容器,并查看數據庫:發現剛才創建的數據庫TEST_DB沒有因為重新運行容器而消失,問題解決

步驟是,1 新建一張表,2 關掉建表的容器,3重新運行容器,并且掛載數據目錄到/var/lib/mysql下,問題就解決了!

補充知識:docker環境下使用mysql出現編碼格式問題修改編碼格式的方法

方法一(適用于單機器修改)

首先確定mysql服務處于開始狀態

鍵入docker exec -it +服務名 /bin/bash 進入控制臺

鍵入apt-get update 命令

鍵入apt-get install vim (上述兩條命令用于下載vim編輯器),

輸入vim /etc/mysql/mysql.conf.d/mysqld.cnf 命令 進入mysqld.cnf文件

4.使用i打開編輯模式,在文本的最后輸入以下內容:

注意:下面的內容一定不能輸錯,否則會造成配置文件失效

[client]default-character-set=utf8[mysql]default-character-set=utf8[mysqld]character-set-server=utf8

ESC退出,shift+冒號wq保存 退出。

5.進入mysql控制臺

6.輸入show variables like ‘char%’; 即可查看到修改后的相應信息

解決Docker之mysql容器數據庫更改不生效的問題

修改完畢重啟數據庫后:輸入show variables like'char%'即可

解決Docker之mysql容器數據庫更改不生效的問題

出現上述結果說明已經修改成功

方法二(適用于集群搭建)

將配置文件拷貝出原目錄,使用外部文件修改,此方法用于發送文件到多臺服務器進行數據庫默認編碼修改

docker exec -it +服務名 /bin/bash 進入控制臺

輸入cd /etc/mysql/conf.d/ 進入配置文件目錄

輸入pwd獲取文件絕對路徑

輸入cd回退到控制臺,exit退出

輸入docker cp 服務名:/etc/mysql/conf.d/mysql.cnf /usr/soft ( 將docker中的mysql.cnf文件拷貝到linux下的soft文件夾中)

開啟外部編輯器(如notepad++)進行配置文件書寫 如下:

[client]default-character-set=utf8[mysql]default-character-set=utf8[mysqld]init_connect=‘SET collation_connection = utf8_unicode_ci’init_connect=‘SET NAMES utf8’character-set-server=utf8collation-server=utf8_unicode_ciskip-character-set-client-handshake

解決Docker之mysql容器數據庫更改不生效的問題

PS:注意配置文件的內容要有間隔,這一點很重要

保存好

7.docker cp /usr/soft/mysql.cnf 服務名:/etc/mysql/conf.d/ 將修改后的文件拷貝到原來的目錄下覆蓋

8.重啟docker中的mysql服務,然后

9.輸入 show variables like ‘char%’;命令即可查看已經修改好的字符編碼格式

以上這篇解決Docker之mysql容器數據庫更改不生效的問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: MySQL 數據庫
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产精品久久777777毛茸茸| 久久精品国产精品亚洲毛片| 成人一区不卡| 91欧美极品| 午夜免费一区| 亚洲福利免费| 成人羞羞在线观看网站| 日韩国产在线观看一区| 日韩一区二区三区高清在线观看| 蜜臀精品一区二区三区在线观看| 视频一区中文字幕国产| 中文字幕成人| 久久黄色影视| 国产中文字幕一区二区三区| 国产传媒在线观看| 九九色在线视频| 欧美亚洲国产激情| 国产一区91| 亚洲毛片一区| 日韩不卡在线观看日韩不卡视频| 中文字幕日韩亚洲| 天堂精品久久久久| 欧美片第1页综合| 国产精品第一| 日韩电影免费网站| 午夜日本精品| 天堂va欧美ⅴa亚洲va一国产| 国产亚洲人成a在线v网站| 欧美黄色一区| 激情亚洲影院在线观看| 欧美精品羞羞答答| 伊人精品久久| 欧美91在线| 久久视频精品| 日日摸夜夜添夜夜添国产精品| 日本不卡的三区四区五区| 国产乱码精品一区二区三区四区 | 不卡中文一二三区| 久久亚洲国产精品一区二区| 日本一不卡视频| 欧美激情综合| 欧美日韩在线网站| 在线精品一区二区| 精品日韩一区| 日韩国产欧美三级| 亚洲欧美日韩国产一区二区| 国产精品二区不卡| 青青国产精品| 久久99伊人| 日韩免费看片| 国产精品sm| 亚洲视频电影在线| 国产一区日韩一区| 精品欠久久久中文字幕加勒比| 免费人成在线不卡| 亚洲v在线看| 精品视频一二| 国产日韩亚洲欧美精品| 久色成人在线| av一区在线| 麻豆国产欧美日韩综合精品二区| 首页欧美精品中文字幕| 四虎4545www国产精品| 麻豆一区二区在线| 欧美日韩午夜| 日本在线视频一区二区| 亚洲免费中文| 欧美69视频| 天堂日韩电影| 天堂中文av在线资源库| 麻豆极品一区二区三区| 日韩高清一区在线 | 在线天堂中文资源最新版| 精品国产黄a∨片高清在线| 久久99蜜桃| 日韩精品免费一区二区三区| 亚洲影视一区| 99久久视频| 国产精品99久久免费观看| 国产精品亚洲人成在99www| 99视频一区| 欧美成人亚洲| 日韩国产激情| xxxxx性欧美特大| 成人午夜亚洲| 成人国产精品| 91一区二区三区四区| 久久av网站| 国产精品a级| 麻豆高清免费国产一区| 国产精品magnet| 嫩草伊人久久精品少妇av杨幂 | 亚洲先锋成人| 久久久精品久久久久久96| sm捆绑调教国产免费网站在线观看| 牛牛精品成人免费视频| 欧美精品99| 国产精品亚洲产品| 国产精品视频一区二区三区综合| 日韩在线观看一区二区| 欧美精品一区二区三区精品| 免费av一区二区三区四区| 久久在线电影| 91精品观看| 国产精品普通话对白| 蜜桃伊人久久| 视频一区日韩精品| 欧美久久精品| 欧美黄页在线免费观看 | 91亚洲国产| 日韩免费一区| 宅男在线一区| 在线免费观看亚洲| 亚洲伊人精品酒店| 日本aⅴ亚洲精品中文乱码| 国产欧美一区二区三区米奇| 国产精品大片| 日韩国产一区| 亚洲电影在线一区二区三区| 久久亚洲欧美| 日本vs亚洲vs韩国一区三区二区| 国产一区 二区| 精品视频在线观看网站| 丝袜诱惑一区二区| 亚洲精品888| 亚洲精品看片| 国产高清精品二区| 青青久久av| 狠狠色综合网| 日韩视频1区| 久久亚洲黄色| 激情视频一区二区三区| 在线日韩成人| 精品国产三区在线| 欧美特黄一级大片| 色综合视频一区二区三区日韩| 久久av网址| 亚洲国内欧美| 日本欧美一区| 日韩深夜视频| 视频一区国产视频| 久久99青青| 亚洲精品国产偷自在线观看| 中文字幕日韩高清在线| 你懂的亚洲视频| 欧美手机在线| 欧美日韩调教| 欧美综合另类| 日韩国产91| 亚洲伦乱视频| 婷婷亚洲精品| 日韩欧美一区二区三区在线视频| 亚洲精品1区| 欧美日本不卡| 欧美成人高清| 国产精品白浆| 婷婷亚洲综合| 国产精品综合色区在线观看| 国产超碰精品| 91嫩草精品| 久久精品高清| 国产亚洲欧美日韩精品一区二区三区 | 视频一区二区三区在线| 国产精品99久久免费观看| 欧美日韩国产免费观看视频| 国产一级成人av| 不卡一区2区| 精品视频在线观看网站| 亚洲视频国产精品| 群体交乱之放荡娇妻一区二区| 青青国产精品| 99亚洲视频| 都市激情国产精品| 91精品美女| 视频精品一区二区| 国产一区二区三区亚洲| 亚洲18在线| 欧美在线观看视频一区| 久久精品国产久精国产爱| 亚洲精品韩国| 亚洲第一精品影视| 精品日产乱码久久久久久仙踪林| 亚洲人妖在线| 九九久久电影| 国产成人精品一区二区三区视频| 亚洲人成网77777色在线播放 | 亚洲午夜久久| 五月激情久久| 欧美韩一区二区| 日韩在线网址| 在线国产一区二区| 国产黄大片在线观看| 久久精品xxxxx| 快she精品国产999| 久久精品国内一区二区三区水蜜桃| 久久国产精品美女| 日韩av黄色在线| 亚洲久久视频| 久久成人亚洲| 久久中文视频|