(五)使用docker安裝mysql


使用docker安裝mysql

每次使用#sudo 太麻煩,使用su root   命令切換到root賬號,密碼為:vagrant

 

 1、查看docker hub上mysql 鏡像,這個結果是按照一定的星級評價規則排序的

docker search mysql

 

 

2.拉取官方的鏡像,標簽為5.7

docker pull mysql:5.7

 等待下載完成后,我們就可以在本地鏡像列表里查到REPOSITORY為mysql,標簽為5.7的鏡像。

docker images

 

3.配置mysql鏡像實例並啟動

docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7

參數說明:

 docker run : 啟動docker容器

-p 3306:3306 將mysql容器的3306端口映射到linux主機的3306端口,訪問linux的3306就能訪問到mysql的3306

-name mysql : 給當前容器取name 

\   : 換行

-v /mydata/mysql/log:/var/log/mysql \     : 將日志文 件掛載到主機

-v /mydata/mysql/data:/var/lib/mysql \    :將mysql數據掛載到主機

-v /mydata/mysql/conf:/etc/mysql \   :將配置文件掛載到主機

-e MYSQL_ROOT_PASSWORD=root \  :初始化root 用戶的密碼

如果啟動報錯提示:docker: Error response from daemon: Conflict. The container name "/mysql" is already in use by container "09e74756347ca4b3e604eb2b9c26b4f32d391d71e4fb2d64884c911f1e397414". You have to remove (or rename) that container to be able to reuse that name.

出現上述的錯誤,是因為docker容器里面已經存在,如果不需要,則刪除。docker rm fb087642b497(該containerID)
如果想要再次使用,使用

docker restart 鏡像名

 

則可以重啟該container容器。

 

 

 

 使用 docker ps 查看docker中正在運行的容器

docker ps

 

 

 

 使用navicate測試連接當前 mysql服務

 

 4、進入mysql容器

根據上面查出來的mysql容器ID 或者NAMES 並通過以下命令進入mysql容器交互模式

docker exec -it mysql /bin/bash

 

 進入mysql容器內部后,使用 ls 命令查看當前文件目錄

 

 可以發現,當前目錄就是一個完整的linux目錄結構,mysql被安裝到了當前的linux容器中,可以理解為mysql容器就是一個小小的單獨的完整的linux

5、進入mysql

mysql -uroot -p

 

 

 

6.配置數據庫編碼

MySQL的默認編碼是Latin1,不支持中文,所以需要手動修改默認編碼

修改配置文件,配置文件在etc/mysql/mysql.conf.d/mysql.cnf這個文件里頭

由於上面我們已經通過命令“-v /mydata/mysql/conf:/etc/mysql \”將mysql的配置文件掛載到linux的 /mydata/mysql/conf 下,所以我們直接進入l這個目錄進行修改mysql

先cd到  /mydata/mysql/conf 

 

 

 

6.1.在虛擬機/mydata/mysql/conf路徑下創建一個文件命名為:my.cnf

vi /mydata/mysql/conf/my.cnf

6.2 按i鍵進入編輯模式,粘貼以下內容:

[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

 

然后按ESC,左下角就可以進行輸入 :wq保存並退出即可

:w 保存但不退出

:wq 保存並退出

:q 退出

:q! 強制退出,不保存

:e! 放棄所有修改,從上次保存文件開始再編輯命令歷史

 

6.3 然后輸入以下命令重啟mysql即可。

docker restart mysql

 

6.4 驗證mysql容器內部是否已存在配置文件

使用 docker exec -it 交互模式 進入mysql 的/bin/bash 操作台

docker exec -it mysql /bin/bash

 

進入 mysql 內部的/etc/mysql 目錄下

 

 我們可以發現 該目錄下也以存在了一個相同的的my.cnf 配置文件

打開my.cnf文件看一下,此配置文件中的內容跟我們在linux下掛載的配置文件內容是相同的

 

 到此,使用docker安裝mysql及其配置就完成了。

ps:設置docker中mysql開機自啟動:

docker update mysql --restart=always

ps:設置docker中關閉mysql開機自啟動:

docker update mysql --restart=no

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM