国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 服務器 > Web服務器 > 正文

docker官方mysql鏡像自定義配置詳解

2024-09-01 13:55:59
字體:
來源:轉載
供稿:網友

之前為了節省安裝時間,所以用官方mysql docker鏡像啟動mysql。

通過

 

復制代碼代碼如下:
$ docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d daocloud.io/mysql:tag

 

some-mysql 指定了該容器的名字,my-secret-pw 指定了 root 用戶的密碼,tag 參數指定了你想要的 MySQL 版本

這樣數據是沒有持久化的 所以在啟動參數中需要掛載本地目錄

于是這樣數據庫一直跑著,但是由于最近程序需要支持emoji表情,不得不將mysql的字符集更改。

 

復制代碼代碼如下:
$ docker run --name some-mysql -v /my/own/datadir:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d daocloud.io/mysql:tag

 

這時候就可以掛載自定義配置文件,官方文檔說明

當 MySQL 服務啟動時會以 /etc/mysql/my.cnf 為配置文件,本文件會導入 /etc/mysql/conf.d 目錄中所有以 .cnf 為后綴的文件。這些文件會拓展或覆蓋 /etc/mysql/my.cnf 文件中的配置。因此你可以創建你自己需要的配置文件并掛載至 MySQL 容器中的 /etc/mysql/conf.d 目錄。

所以最簡單改變數據庫配置的方式就是在宿主機上新建配置文件,改成utf8mb4

[client]default-character-set=utf8mb4[mysqld]character-set-client-handshake = FALSEcharacter-set-server = utf8mb4collation-server = utf8mb4_unicode_ci[mysql]default-character-set=utf8mb4

隨后將文件復制到相應docker容器文件夾下

docker cp /home/my.cnf(宿主機文件路徑) [容器id]:/etc/mysql/mysql.conf.d

最后使用docker stop和start命令重啟容器就實現了加載自定義配置。

由Docker的MySQL官方鏡像配置的容器無法啟動問題

我使用的是MySQL的Docker鏡像。先創建并啟動鏡像:

# docker run --name mysql-b /> -p 33002:3306 -v /zc/mysql/datadir-b:/var/lib/mysql /> -e MYSQL_ROOT_PASSWORD='123456' -d mysql:latest

正常啟動,沒有問題。通常我們使用MySQL的時候,需要設置參數。要設置參數,我們先得進入容器的bash,進行操作:

docker exec -it mysql-b bash

MySQL的默認配置文件是 /etc/mysql/my.cnf 文件。如果想要自定義配置,建議向 /etc/mysql/conf.d 目錄中創建 .cnf 文件。新建的文件可以任意起名,只要保證后綴名是 cnf 即可。新建的文件中的配置項可以覆蓋 /etc/mysql/my.cnf 中的配置項。因為 MySQL 的 Docker 官方鏡像沒有提供 vim 編輯器,所以我用cat命令生成文件并添加內容:

# cat >test.cnf <<EOF[mysqldump]user=rootpassword='123456'[mysqld]max_allowed_packet=8Mlower_case_table_names=1character_set_server=utf8max_connections=900max_connect_errors=600default-character-set=utf8EOF

退出后,停止容器,再重新啟動容器,發現容器無法啟動。

解決方法

刪除原來那個不能啟動的容器。重新創建一個新的容器。問題的關鍵在于原來的 test.cnf 文件有錯誤。找到原來配置文件的最后一行:

default-character-set=utf8

把這一行刪除。添加配置文件的時候保證沒有這一行就可以了。

問題原因

MySQL 的官方 Docker 鏡像里面,在標簽 latest 下,[mysqld] 這一配置段上并沒有 default-character-set 這一配置項。 
如果你要查看所有的配置項,可以使用如下命令,利用管道將輸出的幫助都放到 help.txt 文件里面:

docker run -it --rm mysql:tag --verbose --help > help.txt

其中 tag 表示鏡像的標簽,比如 latest 和 5.6。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到服務器教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 邹平县| 厦门市| 新化县| 吴川市| 元江| 宜章县| 康平县| 怀仁县| 勐海县| 丁青县| 天等县| 新沂市| 衢州市| 布尔津县| 石狮市| 宾阳县| 麻阳| 广汉市| 若尔盖县| 扎兰屯市| 屏南县| 水富县| 隆回县| 二连浩特市| 固安县| 霍城县| 新安县| 科技| 泸溪县| 大英县| 平罗县| 搜索| 虎林市| 贡山| 秀山| 镇远县| 集贤县| 古蔺县| 凤庆县| 洛扎县| 勐海县|