天天看點

centos安裝mysql8_Docker 快速安裝 Mysql

centos安裝mysql8_Docker 快速安裝 Mysql

本篇文章主要記錄 Docker 安裝 Mysql 的指令和過程。在開始之前,你需要在電腦上安裝 Docker 環境,可參考

在 CentOS 系統上安裝 Docker Engine

在 Ubuntu 上安裝 Docker Engine

本教程适應于 CentOS 與 Ubuntu 系統。

配置阿裡雲鏡像加速

Docker 鏡像源在國外,國内通路速度非常慢,要想獲得更高的下載下傳速度需要配置國内鏡像源。

進入阿裡雲鏡像加速配置頁面 https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors (需要登入)擷取你賬号下的加速位址

通過修改 daemon 配置檔案

/etc/docker/daemon.json

來使用加速器

如下是 CentOs、Ubuntu 系統的配置指令,請将鏡像加速位址(代碼中的不可用)換成你自己的位址 罒ω罒

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://kwli5l3lxi5a0mx.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
           

檢視其它系統的鏡像加速配置請查閱阿裡雲鏡像加速文檔

Docker 安裝 Mysql

進入 https://hub.docker.com/ 查找需要安裝的鏡像,選擇合适的版本

如搜尋 mysql 顯示 https://hub.docker.com/_/mysql?tab=tags

直接複制指令即可

$ docker pull mysql:8
           

拉取鏡像成功後可檢視本地拉取的鏡像

$ docker images
           

快速安裝一般不需要挂載配置,如需挂載配置檔案,需要檢視目前版本 Mysql 的配置檔案路徑及檔案名。

建立測試容器執行個體并啟動

$ docker run -p 3306:3306 --name mysqltest -e MYSQL_ROOT_PASSWORD=root -d mysql:8
​
           

參數說明:

- p 3306:3306 : 将容器的 3306 端口映射到主機的 3306 端口
- e MYSQL_ROOT_PASSWORD=root : 設定 mysql 登入密碼
- d 背景運作容器,并傳回容器 id
mysql:8 我運作的鏡像名,也可替換成鏡像 id
           

進入 Mysql 容器

$ docker exec -it mysqltest bash
           

确定 Docker 内 MySQL 檔案相關路徑

# 查找Docker内,MySQL配置檔案my.cnf的位置
mysql --help | grep my.cnf
# 若找不到 my.cnf,使用 whereis 指令查找相關配置路徑
whereis mysql
           

建立本地路徑并挂載 Docker 内資料

先執行

exit

退出 mysql 容器

建立本地檔案夾,可自己規劃路徑

$ mkdir -p /root/docker/mysql/conf
           

将測試容器裡 MySQL 的配置檔案複制到該路徑。日後需改配置,直接在挂載路徑的配置檔案上修改即可  

$ docker cp mysqltest:/etc/mysql/my.cnf /root/docker/mysql/conf
           

删除測試容器,建立新的 docker 容器并啟動

$ docker run -p 3306:3306 --name mysql 
-e MYSQL_ROOT_PASSWORD=root 
-v /root/docker/mysql/conf/my.cnf:/etc/mysql/my.cnf 
-d mysql:8 
           

參數說明:

- p 3306:3306 : 将容器的 3306 端口映射到主機的 3306 端口
- v /dockerData/mysql/conf:/etc/mysql : 将配置檔案挂載到主機
- e MYSQL_ROOT_PASSWORD=root : 設定 mysql 登入密碼
- d 背景運作容器,并傳回容器 id
mysql:8 我運作的鏡像名,也可替換成鏡像 id
           

檢視是否啟動成功

我們可以采用

docker ps

指令檢視是否運作了目标容器。

可以等待一段時間後運作該指令,因為 Docker 容器啟動需要一定的時間。

啟動過程中容器會顯示正在運作,但遇到錯誤時容器會停止。

當我們發現容器不運作後需要進行排錯,我們可以檢視容器的啟動日志來發現錯誤資訊。

# 其中 id 需要替換為容器啟動後傳回的容器 id
$ docke logs id
           

通過檢視錯誤資訊進行網上搜尋進而進行處理。

連接配接 Mysql 資料庫

我們可以在其他電腦上通過資料庫連接配接軟體連接配接 Docker 運作的 Mysql 伺服器。

例如我們可以通過 Navicat 連接配接資料庫,在連接配接之前確定你的 Mysql 容器正常啟動。

報錯:Navicat 不支援 caching_sha_password 加密方式

Mysql 8 安裝後采用 Navicat 進行連接配接可能會報 “navicat 不支援 caching_sha_password 加密方式” 錯誤。采用如下方式解決:

進入容器

$ docker exec -it mysql bash
           

登入 Mysql

$ mysql -uroot -p
           

檢視并選擇資料庫

$ show databases;
$ use mysql
           

修改加密方式并退出 Mysql 和 Mysql 容器

$ select host,user,plugin from user;
$ alter user 'root'@'%' identified with mysql_native_password by 'root';
$ exit;
$ exit;
           

容器内修改配置檔案

若建立容器時沒有挂載相關配置檔案,需要到容器内部進行配置檔案的修改。

進入容器指令:

$ docker exec -it 容器名/容器id bash
           

Docker 容器預設沒有安裝 vim ,需要進行手動安裝,按照系統執行如下指令即可。

Ubuntu 系統

$ apt-get update
$ apt install vim 
           

CentOs 系統

$ yum -y install vim*
           

主控端與容器之間檔案拷貝

在實際操作中,我們常常需要在主控端與容器之間進行檔案的複制。

從主控端複制到容器

$ docker cp 主控端本地路徑 容器名字/ID:容器路徑
​
$ docker cp /root/123.cnf mysql:/etc/mysql
           

從容器複制到主控端

$ docker cp 容器名字/ID:容器路徑 主控端本地路徑
​
$ docker cp mysql:/etc/mysql/my.cnf /root
​
           
如果本文對你有幫助,歡迎點贊分享~