簡體   English   中英

/etc/mysql/my.cnf更改后,MySQL容器崩潰,如何重新編輯?

[英]MySQL container crash after /etc/mysql/my.cnf change, how to edit back?

我更改了一些mysql配置設置並設置了錯誤的內容,現在Docker容器不斷重新啟動,並且找不到在主機文件系統中進行編輯的my.cnf文件。 我嘗試了aufs / diff文件夾,但到目前為止找不到它。 還嘗試了:

find / -name my.cnf -exec nano {} \;

但是它不會顯示我更改過的文件。 我試圖將config.v2.json更改為啟動/bin/bash而不是mysqld並重新啟動了docker,但它使用正式的mysql容器映像啟動了mysqld (由於主管或其他原因?)。

我正在為您的問題看到兩種可能的解決方案:

繞過MySQL映像的ENTRYPOINT

通過運行docker images查找映像名稱,然后運行:

docker run -it --entrypoint="/bin/sh" OPTIONS image

這將帶您進入容器內的bash,然后從那里可以執行要查找my.cnf文件的所有命令。 盡管我不知道是否可以從那里編輯文件,但是保存並嘗試再次運行它會起作用。 我沒試過

刪除舊圖像並使用正確的方法編輯my.cnf文件

通過運行以下內容找到您的映像名稱: docker images ,然后通過運行docker rmi <image_name>將其刪除

MySQL Dockerhub上檢查文檔以獲取默認的MySQL映像,這很簡單,我引用:

使用自定義MySQL配置文件MySQL啟動

配置在文件/etc/mysql/my.cnf中指定,該文件又包括在/etc/mysql/conf.d目錄中找到的以.cnf結尾的所有文件。 該目錄中文件的設置將增加和/或覆蓋/etc/mysql/my.cnf中的設置。 如果要使用自定義的MySQL配置,則可以在主機上的目錄中創建備用配置文件,然后將該目錄位置安裝為mysql容器中的/etc/mysql/conf.d。

如果/my/custom/config-file.cnf是自定義配置文件的路徑和名稱,則可以像這樣啟動mysql容器(請注意,此命令僅使用自定義配置文件的目錄路徑):

$ docker run --name some-mysql -v /my/custom:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag

這將啟動一個新的容器some-mysql,其中MySQL實例使用來自/etc/mysql/my.cnf和/etc/mysql/conf.d/config-file.cnf的組合啟動設置,后者的設置優先。

從那時起,如果您在主機上創建my.cnf文件,那么您將再也不會遇到此問題,因為您可以根據需要多次編輯該文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM