天天看點

windows使用docker運作mysql等工具(二)安裝運作mysql

今天接着上一篇的内容繼續來學習安裝運作mysql。建議先閱讀第一篇: windows安裝docker

一 檢視mysql版本

如果想知道mysql鏡像具體有哪幾個版本,需要去docker hub檢視。

位址如下:

https://hub.docker.com/r/library/

二 拉取mysql鏡像

指令如下:

docker pull 鏡像名稱:版本号           

打開指令視窗輸入

docker pull mysql:8.0           

等待幾分鐘就完成了,然後輸入以下指令檢視鏡像

docker images           

三 啟動mysql服務

docker run --name mysql8.0 -e MYSQL_ROOT_PASSWORD=123456 -d -p 23306:3306 mysql:8.0           

解釋一下上面的指令的具體含義

docker run  // 啟動容器 
--name mysql8.0  // 指定容器名稱為mysql8.0
-e MYSQL_ROOT_PASSWORD=123456  // 配置環境變量,指定root使用者的密碼為123456
-d  // 是否背景啟動,預設false
-p 23306:3306  // 将3306端口映射出來為23306進行通路
mysql:8.0  // 鏡像名稱           

四 允許用戶端進行登入

第三步完成後一個docker容器就算起來了,我們用用戶端連接配接資料庫發現報錯了。

windows使用docker運作mysql等工具(二)安裝運作mysql

主要原因是mysql伺服器要求的認證插件版本與用戶端不一緻造成的。

使用指令 docker exec -it mysql8.0 /bin/bash 進入容器,然後登入mysql服務,指令如下:mysql -uroot -p 123456,登入成功後,use mysql ,使用sqlselect user,plugin from user 檢視認證插件。

可以看到root使用者使用的plugin是caching_sha2_password,mysql官方網站有如下說明:

windows使用docker運作mysql等工具(二)安裝運作mysql

意思是說caching_sha2_password是8.0預設的認證插件,必須使用支援此插件的用戶端版本。兩種方式一種是更新用戶端,另一種是修改插件認證為 mysql_native_password,我們看一下第二種。

// 第一:修改root的密碼為'root',摒棄原來的舊密碼。第二:使用mysql_native_password對新密碼進行編碼。
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
// 重新整理權限
FLUSH PRIVILEGES;            

這樣就完成了,用戶端可以正常登入。

五 docker常用指令

1.docker images // 檢視鏡像
2.docker run 鏡像名稱   // 生成一個正在運作的容器執行個體
3.docker stop 容器名稱   // 停止容器
4.docker rm 容器名稱  // 删除容器
5.docker start 容器名稱  // 啟動容器
6.docker restart 容器名稱  //重新開機容器
7.docker rmi 鏡像名稱  // 删除鏡像
8.docker exec -it 容器名稱 /bin/bash  // 進入容器
9.docker ps  // 顯示正在運作的所有容器
10.docker ps -a  // 顯示所有容器(包括已經停止的)
11.docker pull 鏡像名稱:版本号  // 拉取鏡像