docker拉取MySQL8.0鏡像以及安裝的完整步驟
一、docker安裝MySQL鏡像
搜索images
docker search mysql

我配置了阿里云鏡像加速器,找不到mySQL鏡像.

由于不知道名原因很多國內(nèi)拉取鏡像都下架了docker鏡像導(dǎo)致找不到MySQL鏡像;
拉取MySQL鏡像
docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/mysql:8.0

拉取MySQL鏡像成功。
二、數(shù)據(jù)掛載
創(chuàng)建本地目錄用于掛載mysql數(shù)據(jù)和配置
mkdir -p /root/mysql/data /root/mysql/logs /root/mysql/conf
在/root/mysql/conf中創(chuàng)建 *.cnf 文件
touch my.cnf
創(chuàng)建容器,將數(shù)據(jù),日志,配置文件映射到本機(jī)
docker run -p 3306:3306 --name mysql -v /root/mysql/conf:/etc/mysql/conf.d -v /root/mysql/logs:/logs -v /root/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=yourpassword -d swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/mysql:8.0
docker run:這是創(chuàng)建新容器的 Docker 命令。-p 3306:3306:這將容器內(nèi)部的 MySQL 服務(wù)端口(3306)映射到宿主機(jī)的同一端口,允許您從宿主機(jī)或其他網(wǎng)絡(luò)中的機(jī)器訪問 MySQL 服務(wù)。--name mysql:這為新容器指定了一個(gè)名稱,這里是mysql。-v /root/mysql/conf:/etc/mysql/conf.d:這將宿主機(jī)上的/root/mysql/conf目錄掛載到容器內(nèi)部的/etc/mysql/conf.d目錄,用于存儲 MySQL 配置文件。-v /root/mysql/logs:/logs:這將宿主機(jī)上的/root/mysql/logs目錄掛載到容器內(nèi)部的/logs目錄,用于存儲 MySQL 日志文件。-v /root/mysql/data:/var/lib/mysql:這將宿主機(jī)上的/root/mysql/data目錄掛載到容器內(nèi)部的/var/lib/mysql目錄,用于存儲 MySQL 數(shù)據(jù)文件。這確保了數(shù)據(jù)的持久化,即使容器被刪除,數(shù)據(jù)也不會(huì)丟失。-e MYSQL_ROOT_PASSWORD=yourpassword:這設(shè)置了環(huán)境變量,用于定義 MySQLroot用戶的密碼。請確保使用一個(gè)強(qiáng)密碼來提高安全性。-d swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/mysql:8.0:這指定了容器應(yīng)在后臺運(yùn)行,并使用指定的 MySQL 鏡像。這里的鏡像路徑指向華為云 SWR 上的 MySQL 8.0 鏡像.
檢查MySQL是否啟動(dòng)成功:
docker ps -a

三、DBeaver數(shù)據(jù)庫連接

連接DBeaver常見的報(bào)錯(cuò):
問題一、Public Key Retrieval is not allowed
問題圖片:

原因:
Public Key Retrieval is not allowed:原因是:通常出現(xiàn)在使用 SSL 連接到 MySQL 數(shù)據(jù)庫時(shí)。這個(gè)錯(cuò)誤表明 MySQL 服務(wù)器配置為要求 SSL 連接,但是客戶端(在這種情況下是 DBeaver)沒有提供正確的證書或密鑰。
處理:
找到:allowPublicKeyRetrieval驅(qū)動(dòng)屬性,把false改為true,如圖所示:

再次連接:

問題二、連接MySQL時(shí),報(bào)Access denied for user
報(bào):ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
意味著您嘗試使用MySQL的root用戶登錄,但是提供的密碼不正確,或者root用戶沒有從localhost登錄的權(quán)限。
步驟 1:確保您使用的是正確的密碼
確認(rèn)您記得的root密碼是正確的。如果您不確定密碼是否正確,您可能需要重置它。
在你保證密碼正確情況下,如果出現(xiàn)這個(gè)錯(cuò)誤,可能原因是:之前你執(zhí)行docker掛載MySQL容器,在/root/mysql/data下已經(jīng)有之前緩沖數(shù)據(jù),執(zhí)行的新docker run,由于兩次掛載MySQL容器密碼不一致,導(dǎo)致登錄不成功。

解決方案:刪除/root/mysql/data目錄下文件,執(zhí)行刪除docker掛載MySQL容器后,然后執(zhí)行docker run 掛載MySQL容器;
進(jìn)入容器中的 MySQL:
docker exec -it mysql mysql -u root -p
輸入密碼:*********

步驟 2:嘗試無密碼登錄(如果root賬戶沒有設(shè)置密碼)
如果root賬戶沒有設(shè)置密碼,或者您不確定是否設(shè)置了密碼,可以嘗試無密碼登錄:
在/root/mysql/conf目錄下,打開my.cnf配置,加上:
--skip-grant-tables
這里不做過多解釋,如需詳情了解操作,各位自行百度一下;
步驟3: root用戶沒有從localhost登錄的權(quán)限
進(jìn)入容器中MySQL:
docker exec -it mysql mysql -u root -p
輸入密碼:*******,登錄到 MySQL 后,
更改密碼:
使用以下命令更改 root 用戶的密碼:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
new_password:輸入自己的密碼;
允許 root 用戶從任何 IP 地址連接:
ALTER USER 'root'@'%' IDENTIFIED BY 'new_password';
替換 'new_password' 為您想要設(shè)置的新密碼。
刷新權(quán)限:
更改密碼后,執(zhí)行以下命令使更改生效:
FLUSH PRIVILEGES;
退出 MySQL:
使用以下命令退出 MySQL 客戶端:
EXIT;
測試新密碼:
為了驗(yàn)證新密碼是否生效,您可以嘗試再次登錄 MySQL:
docker exec -it mysql mysql -u root -p
當(dāng)提示時(shí),輸入您新設(shè)置的密碼。
請注意,將密碼直接包含在命令行中(如 -p'new_password')可能會(huì)因?yàn)橐柺褂貌划?dāng)而導(dǎo)致問題。通常建議在命令行中只使用 -p 參數(shù),然后在提示時(shí)輸入密碼。
使用連接MySQL工具連接服務(wù)器MySQL:

驗(yàn)證用戶身份的插件名稱
SELECT user, host, plugin FROM mysql.user

mysql_native_password:作為MySQL之前的默認(rèn)身份驗(yàn)證插件,很多老版本的客戶端和工具默認(rèn)支持這個(gè)插件。因此,對于一些舊的應(yīng)用程序和庫,mysql_native_password可能會(huì)有更好的兼容性。
caching_sha2_password:從MySQL 8.0開始,它成為了默認(rèn)的身份驗(yàn)證插件。盡管它提供了更高的安全性,但一些舊版客戶端可能不支持該插件。在這種情況下,需要更新客戶端或驅(qū)動(dòng)程序才能兼容。
四、刪除docker鏡像MySQL
查找鏡像
docker images | grep mysql
刪除鏡像
一旦您知道了要?jiǎng)h除的 MySQL 鏡像的名稱或 ID,可以使用以下命令刪除它:
docker image rm 1eba4c9bcaa8
強(qiáng)制刪除命令:docker image rm -f mysql

五、docker刪除容器
暫停正在運(yùn)行MySQL容器
docker stop 343ee69c170d
刪除MySQL容器
docker rm 343ee69c170d

注意:343ee69c170d是docker中MySQL容器ID;

總結(jié)
到此這篇關(guān)于docker拉取MySQL8.0鏡像以及安裝的文章就介紹到這了,更多相關(guān)docker拉取MySQL8.0鏡像及安裝內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL如何創(chuàng)建觸發(fā)器(CREATE TRIGGER)
這篇文章主要介紹了MySQL如何創(chuàng)建觸發(fā)器(CREATE TRIGGER)問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08
mysql中order by與group by的區(qū)別
以下是對mysql中order by與group by的區(qū)別進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過來參考下2013-07-07
如何使用myisamchk和mysqlcheck工具快速修復(fù)損壞的MySQL數(shù)據(jù)庫文件
有時(shí)候數(shù)據(jù)庫突然就壞了很郁悶,用mysqlcheck.exe可以修復(fù)受損數(shù)據(jù)庫2020-01-01
Win10系統(tǒng)下MySQL8.0.16 壓縮版下載與安裝教程圖解
這篇文章主要介紹了Win10系統(tǒng)下MySQL8.0.16 壓縮版下載與安裝教程圖解,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考解決價(jià)值,需要的朋友可以參考下2019-06-06
MySQL常見數(shù)據(jù)類型知識點(diǎn)舉例詳解
這篇文章主要介紹了MySQL數(shù)據(jù)庫中各種數(shù)據(jù)類型,包括整數(shù)類型、浮點(diǎn)數(shù)類型、定點(diǎn)數(shù)類型、字符串類型、日期類型、時(shí)間類型、enum類型和set類型,每種類型都有其特定的用途和特性,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-02-02
Docker部署MySQL8.0從拉取鏡像到配置遠(yuǎn)程訪問完整指南
在開發(fā)測試環(huán)境中,通過Docker部署MySQL 8.0可實(shí)現(xiàn)快速啟動(dòng)、環(huán)境隔離和數(shù)據(jù)持久化,這篇文章主要介紹了Docker部署MySQL8.0從拉取鏡像到配置遠(yuǎn)程訪問的相關(guān)資料,需要的朋友可以參考下2026-05-05

