1. 程式人生 > >在CentOS7.4下Docker安裝mysql

在CentOS7.4下Docker安裝mysql

A.下載映象(下載前注意看我上篇部落格中設定映象伺服器地址,否則下載很慢或可能失敗)
輸入命令systemctl start docker確保docker服務已啟動。
輸入命令docker pull mysql/mysql-server:5.7.21來下載指定版本的mysql優化版映象。
輸入命令docker images來檢視所有映象。
B.持久資料和配置更改和初始化指令碼
Docker容器如果被刪除或者損壞了,那麼資料和配置就沒拉。
檢視官方說明https://dev.mysql.com/doc/refman/5.7/en/docker-mysql-more-topics.html
官網文章說有兩種方法儲存資料和配置。其中一種方法是在執行容器時繫結容器之外的主機目錄和配置檔案路徑。這樣即時容器被刪除但容器之外的檔案還在。
以下這些文字直接引用的官方的:
下面命令將建立一個MySQL社群伺服器容器並繫結資料目錄和伺服器配置檔案和初始化指令碼:
docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir,dst=/var/lib/mysql \
--mount type=bind,src=/path-on-host-machine/scripts,dst=/docker-entrypoint-initdb.d \
-d mysql/mysql-server:tag
該命令使:
B1.主機的 path-on-host-machine/my.cnf檔案繫結到/etc/my.cnf(容器內的伺服器配置檔案)
B2主機的path-on-host-machine/datadir目錄 繫結到/var/lib/mysql(容器內的資料目錄)。
B3.主機的path-on-host-machine/script目錄繫結到/docker-entrypoint-initdb.d目錄下。(在資料庫建立後將立即執行script目錄下的指令碼)
繫結安裝必須滿足以下條件:
資料目錄 path-on-host-machine/datadir 必須已經存在。要進行伺服器初始化,目錄必須為空。
配置檔案 path-on-host-machine/my.cnf 必須已經存在,並且必須包含使用使用者啟動伺服器的規範:
[mysqld]
user=mysql

大概瞭解了這些說明後,就開始試試吧。

輸入cd / 進入根目錄。
輸入 ls 檢視根目錄檔案列表。
輸入mkdir -p /mydocker/mysql 一次性在根目錄下面建立好mydocker和子目錄mysql兩個資料夾。(mkdir -p或者--parents 若路徑中的某些目錄尚不存在,將自動建立不存在的目錄,即一次可以建立多個目錄)
輸入cd /mydocker/mysql進入mysql目錄。
輸入mkdir config建立config目錄,輸入mkdir data建立data目錄。
輸入cd config進入config 目錄。
輸入vi my.cnf建立my.cnf檔案。
輸入i進入編輯模式,輸入如下內容:
[mysqld]
user=mysql
也還可以接著輸入如下內容設定字元編碼(可防止中文亂碼問題等)
character-set-server=utf8mb4
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
(--引用自百度知道:MySQL在5.5.3之後增加了這個utf8mb4的編碼,mb4就是most bytes 4的意思。專門用來相容四位元組的unicode。utf8mb4是utf8的超集。utf8應付日常使用完全沒有問題,那為什麼還要使用utf8mb4呢?Emoji 表情(Emoji 是一種特殊的 Unicode 編碼,常見於 ios 和 android 手機上)和一些不常用的漢字,以及任何新增的 Unicode 字元等等,無法使用MySQL原有的 utf8字符集儲存)