国产探花免费观看_亚洲丰满少妇自慰呻吟_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武林網。


注:相關教程知識閱讀請移步到服務器教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 浠水县| 探索| 瑞安市| 黔江区| 太仆寺旗| 北票市| 岢岚县| 黎城县| 富源县| 昌黎县| 永兴县| 钦州市| 贵南县| 托克托县| 尉氏县| 万载县| 岳西县| 乐清市| 长泰县| 拜泉县| 延川县| 芮城县| 德钦县| 姜堰市| 上虞市| 韶关市| 策勒县| 临湘市| 巍山| 闻喜县| 建昌县| 遵化市| 崇义县| 鹤峰县| 潮安县| 尚义县| 镇康县| 盐城市| 紫阳县| 英超| 友谊县|