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

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

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

瀏覽:261日期: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久久,三上悠亚国产精品一区二区三区
成人国产精品| 99xxxx成人网| 欧美精品激情| 国产一区二区三区久久 | 亚洲福利精品| 国产欧美日韩综合一区在线播放| 综合视频一区| 亚洲成av在线| 在线手机中文字幕| 久久精品一区二区三区中文字幕| 麻豆一区在线| 中文字幕一区二区三区四区久久| 欧美亚洲三区| 蜜桃久久av| 亚洲高清二区| 亲子伦视频一区二区三区| 精品久久国产一区| 久久午夜影院| 国产精品日本一区二区三区在线 | 亚洲一区资源| 美女精品一区二区| 国产欧美高清视频在线| 亚洲精品在线二区| 日本亚洲视频在线| 免费黄网站欧美| 亚洲综合图色| 日韩视频一区二区三区在线播放免费观看 | 欧美国产视频| 国产精品婷婷| 亚洲尤物在线| 一区在线视频观看| 久久精品亚洲人成影院 | 午夜性色一区二区三区免费视频| 久久国内精品自在自线400部| 高清一区二区| 美女网站视频一区| 亚洲美洲欧洲综合国产一区| 日本午夜免费一区二区| 国产精品亚洲片在线播放| 久久青青视频| 视频一区视频二区中文字幕| 国产精品一线天粉嫩av| 国产综合色区在线观看| 中文字幕一区二区三区日韩精品| 欧美片第1页| 国产午夜精品一区二区三区欧美| 久久视频一区| 亚洲有吗中文字幕| 国产情侣久久| 久久婷婷亚洲| 日韩高清不卡在线| 国内精品亚洲| 国产精品婷婷| 精品少妇一区| 久久国产成人| 成人在线视频中文字幕| 麻豆成人在线| 韩国一区二区三区视频| 在线亚洲免费| 久久精品理论片| 亚洲欧美激情诱惑| 国产 日韩 欧美 综合 一区| 免费日韩av| 精品国产aⅴ| 日韩中文字幕麻豆| 超碰超碰人人人人精品| 欧美亚洲三级| 日韩午夜高潮| 欧美久久天堂| 国产精品毛片aⅴ一区二区三区| 日韩欧美三区| 日韩成人亚洲| 国产亚洲高清一区| 免费看的黄色欧美网站| 国产精品蜜芽在线观看| 日韩在线观看一区二区三区| 国内亚洲精品| 成午夜精品一区二区三区软件| 国产精品99一区二区三区| 国产视频一区欧美| 韩日一区二区| 日本不卡的三区四区五区| 亚洲二区视频| 国产成人精品三级高清久久91| 视频小说一区二区| 国产毛片久久久| 免费在线观看视频一区| 99精品国产一区二区三区| 你懂的亚洲视频| 欧美综合国产| 99久久亚洲精品蜜臀| 水蜜桃久久夜色精品一区| 国产免费av一区二区三区| 性欧美长视频| 亚洲午夜电影| 国产精品成人a在线观看| 国产美女亚洲精品7777| 亚欧洲精品视频在线观看| 国产一区91| 99久精品视频在线观看视频| 久久99国产精品视频| 日韩国产在线不卡视频| 免费看日韩精品| 亚洲福利一区| 精品亚洲美女网站| 天堂а√在线最新版中文在线| 国户精品久久久久久久久久久不卡| 美女久久久久| 麻豆精品在线观看| 欧美亚洲色图校园春色| 婷婷精品在线| 日韩精品免费观看视频| 伊人久久婷婷| 亚洲精品电影| 在线一区欧美| 久久国产精品99国产| 9国产精品视频| 国产一区导航| 久久香蕉精品| 蜜桃久久精品一区二区| 久久av一区| 免费在线观看一区二区三区| 中文在线一区| 午夜精品亚洲| 国产视频一区免费看| 久久午夜精品| 综合激情五月婷婷| 日韩精品视频网站| 国产午夜精品一区在线观看| 国产精品一区二区三区美女| 国产精品久久久久久久久久久久久久久| 欧美男人天堂| 欧美freesex黑人又粗又大| 午夜av成人| 欧美+日本+国产+在线a∨观看| 国产亚洲一区二区三区啪| 亚洲日本国产| 欧美一区在线观看视频| 国产精品一区二区精品视频观看| 午夜国产欧美理论在线播放| 国产高清久久| 免费不卡在线视频| 欧美日本不卡| 久久99影视| 麻豆国产91在线播放| 成人精品高清在线视频| 精品国模一区二区三区| 尤物在线精品| 日韩精品91亚洲二区在线观看| 婷婷中文字幕一区| 国产精品av一区二区| 蜜臀91精品一区二区三区| 欧美日韩黄网站| 欧美激情综合| 成人羞羞视频播放网站| 国产一级一区二区| 91精品美女| 亚洲深夜视频| 中文日韩欧美| 国产日韩中文在线中文字幕| 97在线精品| 视频精品一区二区| 国产精品第十页| 久久国产成人午夜av影院宅| 免费看欧美美女黄的网站| 国产精品三级| 99久久激情| 日韩高清在线观看一区二区| 国产精品久久久久久妇女| 日韩欧美一区二区三区在线观看 | 欧美日韩一二| 亚洲在线免费| 日本免费在线视频不卡一不卡二| 日韩中文字幕亚洲一区二区va在线| 丁香六月综合| 鲁大师影院一区二区三区| 欧美一区激情| 91看片一区| 婷婷成人av| 久久夜夜操妹子| 综合一区av| 91亚洲成人| 四虎成人精品一区二区免费网站| 免费日韩av片| 欧美日韩夜夜| 国产一区观看| 国产九九精品| 国产一级久久| 国模大尺度视频一区二区| 模特精品在线| 国产videos久久| 一区二区三区四区日韩| 在线天堂中文资源最新版| 蜜臀va亚洲va欧美va天堂| 精品国产黄a∨片高清在线| 在线亚洲激情| 福利一区二区| 日本aⅴ免费视频一区二区三区| 日韩精品亚洲专区| 成人午夜网址|