欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

主頁 > 知識庫 > 解決Docker之mysql容器數據庫更改不生效的問題

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

熱門標簽:新鄉牧野400電話申請 高德地圖標注足跡怎么打標 電銷智能機器人試用 企業辦理400電話收費標準 智能電銷機器人真的有用么 激光標記地圖標注 百度地圖底圖標注 撫州市城區地圖標注 中國地圖標注上各個省

用官方的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> exit
Bye
root@f80791a0daf1:/# exit
exit
[root@localhost ~]# docker commit mysql owenchen1992/mysql

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

[root@localhost ~]# docker container stop mysql
mysql
[root@localhost ~]# docker container rm mysql 
mysql
[root@localhost ~]# docker run --name=mysql -p 3306:3306 -d owenchen1992/mysql
a1a1b4174caaadda0ec4b01b9fe5f92d6b3464d85284042274f71aebde0915dd
[root@localhost ~]# docker exec -it mysql bash
root@a1a1b4174caa:/# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server 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%'; 即可查看到修改后的相應信息

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

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

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

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

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=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake

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

保存好

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

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

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

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

標簽:西安 辛集 延安 忻州 臨汾 邯鄲 海西 南通

巨人網絡通訊聲明:本文標題《解決Docker之mysql容器數據庫更改不生效的問題》,本文關鍵詞  解決,Docker,之,mysql,容器,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《解決Docker之mysql容器數據庫更改不生效的問題》相關的同類信息!
  • 本頁收集關于解決Docker之mysql容器數據庫更改不生效的問題的相關信息資訊供網民參考!
  • 推薦文章
    欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    日韩欧美黄色网址| 久久久久国色av免费看影院| 亚洲精品成a人| av电影天堂一区二区在线| 人妻互换一区二区激情偷拍| 欧美一卡二卡在线观看| 亚洲成人一区在线| 在线播放第一页| 欧美精品一二三四| 性做久久久久久免费观看欧美| 亚洲精品久久久久久| 欧美日韩中文字幕一区二区| 亚洲另类春色国产| 精品人妻一区二区三| 欧美中文字幕一区二区三区| 亚洲精品精品亚洲| 无码人妻久久一区二区三区蜜桃| 欧美在线不卡视频| 亚洲成人在线网站| 无码精品一区二区三区在线播放| 日韩一区二区在线观看视频播放| 日本不卡视频一二三区| av男人的天堂av| 国产欧美一区二区三区鸳鸯浴 | 99视频在线精品| 色哟哟亚洲精品| 一区二区三区在线观看网站| 国产调教打屁股xxxx网站| 欧美肥胖老妇做爰| 日韩高清不卡一区| 性の欲びの女javhd| 国产嫩草影院久久久久| 不卡视频在线观看| 欧美亚洲国产一区二区三区| 五月激情六月综合| 亚洲第一综合网| 国产精品久久久久一区二区三区共| jvid福利写真一区二区三区| 欧美性做爰猛烈叫床潮| 丝袜诱惑制服诱惑色一区在线观看| aaaaa一级片| 国产婷婷一区二区| 99国产麻豆精品| 欧美一区二区久久| 国产一区二区三区香蕉| 色婷婷av一区二区三区软件| 香蕉加勒比综合久久| 亚洲v国产v欧美v久久久久久| 中文字幕第一区| 在线观看一区二区三区视频| 日韩亚洲国产中文字幕欧美| 国产成人午夜精品影院观看视频 | 成人一二三区视频| 欧美三级韩国三级日本一级| 日本欧美韩国一区三区| 三上悠亚在线观看视频| 亚洲主播在线播放| 亚洲欧美va天堂人熟伦| 亚洲蜜臀av乱码久久精品| 捆绑凌虐一区二区三区| 国产精品水嫩水嫩| 国产十八熟妇av成人一区| 久久综合九色综合97_久久久 | 国产一区在线观看视频| 一本色道久久综合狠狠躁的推荐 | 波多野结衣喷潮| 亚洲亚洲精品在线观看| 99久久99久久精品免费| 一区二区三区国产精品| 人妻aⅴ无码一区二区三区| 亚洲欧美欧美一区二区三区| 亚洲最大免费视频| 日本一区二区三区dvd视频在线| 极品白嫩的小少妇| 国产欧美一区二区在线观看| 中文字幕人妻一区| 国产精品不卡在线| 香蕉网在线播放| 亚洲精品菠萝久久久久久久| 在线视频第一页| 亚洲福利视频导航| 日本午夜在线观看| 久久精品久久精品| 精品视频一区二区三区免费| 国产不卡视频一区| 欧美mv日韩mv亚洲| 91亚洲一线产区二线产区| 中文文精品字幕一区二区| 给我免费观看片在线电影的| 亚洲天堂成人在线观看| 亚洲第一综合网| 午夜精品视频一区| 91久久奴性调教| 国产成人在线视频免费播放| 日韩精品专区在线影院重磅| 欧美图片自拍偷拍| 亚洲免费看黄网站| 福利视频第一页| 久久精品国产久精国产爱| 6080亚洲精品一区二区| 91麻豆.com| 一区在线观看视频| 乱老熟女一区二区三区| 激情综合网最新| 欧美变态口味重另类| 91传媒理伦片在线观看| 樱桃视频在线观看一区| 色综合久久中文字幕综合网| 国产一区二区三区四| 2023国产精品| 精品人妻少妇嫩草av无码| 首页综合国产亚洲丝袜| 欧美欧美欧美欧美| av电影中文字幕| 亚洲精品老司机| 日本福利一区二区| 99久久综合99久久综合网站| 国产精品久久久一区麻豆最新章节| 超碰人人干人人| 国产综合色产在线精品| 久久综合丝袜日本网| 亚洲精品国产91| 美日韩黄色大片| 日韩美一区二区三区| 国产伦精品一区二区三区妓女| 视频在线观看国产精品| 天天干中文字幕| 能看毛片的网站| 奇米精品一区二区三区在线观看一| 欧美日韩不卡在线| 免费在线观看成年人视频| 欧美一二三区精品| 成人h动漫精品| 国产精品成人一区二区艾草 | 色婷婷综合视频在线观看| 成人开心网精品视频| 自拍偷拍欧美激情| 欧美在线制服丝袜| 韩国三级视频在线观看| 视频在线观看91| 日韩精品一区二区在线观看| 亚洲综合网在线观看| 久久精品国产**网站演员| 久久久久久久久岛国免费| 999精品久久久| av激情成人网| 亚洲国产成人av网| 日韩一区二区免费在线电影| 欧美多人猛交狂配| 国产成人一区在线| 最新高清无码专区| 欧美日韩国产另类不卡| 在线免费观看成年人视频| 激情文学综合丁香| 国产精品久久二区二区| 欧美午夜精品理论片a级按摩| 免费黄色a级片| 男男gaygay亚洲| 国产清纯白嫩初高生在线观看91 | 欧美日韩人妻精品一区在线| 日本aⅴ亚洲精品中文乱码| 久久综合九色综合97婷婷| 中文国语毛片高清视频| 91视视频在线直接观看在线看网页在线看| 亚洲综合免费观看高清完整版| 日韩一级高清毛片| 免费黄色国产视频| 91麻豆精品在线观看| 免费成人av在线播放| 欧美极品另类videosde| 日本道精品一区二区三区 | 欧美成人女星排行榜| 日本成人午夜影院| 91原创在线视频| 奇米精品一区二区三区在线观看一 | 国产精品日日摸夜夜摸av| 欧美亚洲综合在线| 偷拍夫妻性生活| 91亚洲午夜精品久久久久久| 日韩精品一二三四| 国产精品免费看片| 国产高清不卡一区二区| 麻豆成人久久精品二区三区红| 色综合中文字幕国产| 少妇性l交大片7724com| 老色鬼精品视频在线观看播放| 中文字幕亚洲区| 91精品国产日韩91久久久久久| 在线观看天堂av| www.四虎精品| 国内精品久久久久影院薰衣草| 一区二区三区成人| 久久久久久久久免费| 欧美色区777第一页| 国产在视频线精品视频| 日本性生活一级片| 久久综合成人精品亚洲另类欧美| 色视频一区二区| 国产精品成人无码免费| 久久久无码人妻精品无码|