目錄
?文章來源地址http://www.zghlxwxcb.cn/news/detail-543183.html
1. Docker部署Mysql
1.1 Mysql容器
1.1.1 創(chuàng)建Mysql容器
1.1.2 進(jìn)入Mysql容器并登錄Mysql
1.1.3 持久化數(shù)據(jù)
?1.2 遠(yuǎn)程登錄Mysql
1.2.1 修改root加密方式
1.2.2?在容器啟動時配置加密方式為mysql_native_password
?1.3 Mysql編碼
1.3.1 Mysql編碼問題
?1.3.2 Mysql編碼問題解決辦法
送書活動
?文章來源:http://www.zghlxwxcb.cn/news/detail-543183.html
Docker是一種流行的容器化平臺,可以簡化應(yīng)用程序的部署和管理。在本博客中,我們將探討如何使用Docker部署兩個廣泛使用的數(shù)據(jù)庫:MySQL。我們將提供詳細(xì)的步驟和相應(yīng)的命令,以幫助您輕松地在Docker容器中設(shè)置和運行這個數(shù)據(jù)庫。
1. Docker部署Mysql
1.1 Mysql容器
1.1.1 創(chuàng)建Mysql容器
首先我們拉取mysql鏡像,要在Docker中部署MySQL數(shù)據(jù)庫,我們首先需要創(chuàng)建一個MySQL容器??梢允褂靡韵旅顒?chuàng)建一個MySQL 8..0.24版本的容器:
docker run -d --name mysql-container -e MYSQL_ROOT_PASSWORD=123456 -p 3307:3306 mysql:8.0.24
此命令會創(chuàng)建一個名為mysql-container的容器,將MySQL的root用戶密碼設(shè)置為123456,并將宿主機的3307端口映射到容器的3306端口。
1.1.2 進(jìn)入Mysql容器并登錄Mysql
docker exec -it mysql-container mysql -u root -p
此命令將打開MySQL的命令行客戶端,并要求您輸入MySQL root用戶的密碼如下圖:
?然后我們就可以在這里進(jìn)行數(shù)據(jù)庫操作。
1.1.3 持久化數(shù)據(jù)
為了在容器重新啟動后保留MySQL數(shù)據(jù),可以將數(shù)據(jù)目錄映射到宿主機的目錄。在創(chuàng)建容器時,可以添加以下參數(shù):
-v /docker/mysql/config/my.cnf:/etc/my.cnf #宿主機目錄:mysql容器目錄
-v /docker/mysql/data:/var/lib/mysql
這里可以進(jìn)行數(shù)據(jù)卷掛載,卷就是目錄或文件,存在于一個或多個容器中,由docker掛載到容器,但不屬于聯(lián)合文件系統(tǒng),因此能夠繞過Union File System提供一些用于持續(xù)存儲或共享數(shù)據(jù)的特性,卷的設(shè)計目的就是數(shù)據(jù)的持久化,完全獨立于容器的生存周期,因此Docker不會在容器刪除時刪除其掛載的數(shù)據(jù)卷。數(shù)據(jù)卷可在容器之間共享或重用數(shù)據(jù)并且卷中的更改可以直接實時生效,數(shù)據(jù)卷的生命周期一直持續(xù)到?jīng)]有容器使用它為止。如下圖:
?
?1.2 遠(yuǎn)程登錄Mysql
在Mysql 8.x版本當(dāng)我們在云服務(wù)器上創(chuàng)建dockier容器后,嘗試遠(yuǎn)程登錄Docker容器內(nèi)數(shù)據(jù)庫的時候會遇見如下圖問題:
?這是什么原因呢?
出現(xiàn)1251的主要原因是由于mysql版本的問題,mysql8.0版本,與mysql8.0以下版本的加密方式不同,導(dǎo)致錯誤產(chǎn)生。
MySql 8.0.11 換了新的身份驗證插件(caching_sha2_password),而原來的身份驗證插件為(mysql_native_password)。? 而客戶端工具Navicat Premium12 中找不到新的身份驗證插件(caching_sha2_password),因此報上面的錯,所以我們將mysql用戶使用的 登錄密碼加密規(guī)則還原成 mysql_native_password,即可登陸成功。
1.2.1 修改root加密方式
運行下面的命令:
mysql -u root -p #登陸mysql
use mysql; # 切換mysql數(shù)據(jù)庫
select host, user, authentication_string, plugin from user; #查看root用戶登錄加密方式
如下圖:
?然后我們改變加密命令
alter user 'root'@'%' identified with mysql_native_password by '123456';
?然后再次查看root用戶登錄的加密方式
select host, user, authentication_string, plugin from user; #查看root用戶登錄加密方式

?
?然后我們重新使用客戶端登錄系統(tǒng)顯示登錄成功。
1.2.2?在容器啟動時配置加密方式為mysql_native_password
代碼-e identified=mysql_native_password
,配置了加密方式。
docker run -d --name mysql-container -e MYSQL_ROOT_PASSWORD=123456 -p 3307:3306 -e identified=mysql_native_password mysql:8.0.24
?
?1.3 Mysql編碼
1.3.1 Mysql編碼問題
當(dāng)我們使用客戶端連接成功我們的docker容器后,然后進(jìn)行創(chuàng)建數(shù)據(jù)庫,創(chuàng)建表格然后添加數(shù)據(jù)如下:
CREATE DATABASE /*!32312 IF NOT EXISTS*/`project` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci */ /*!80016 DEFAULT ENCRYPTION='N' */;
USE `project`;
/*Table structure for table `user` */
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` BIGINT NOT NULL AUTO_INCREMENT,
`username` VARCHAR(20) DEFAULT NULL,
`password` VARCHAR(20) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=INNODB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
/*Data for the table `user` */
INSERT INTO `user`(`id`,`username`,`password`) VALUES (1,'張三','123'),(2,'lisi','456');
然后在我們的docker容器內(nèi)查詢mysql數(shù)據(jù)如下圖:
?然后我們發(fā)現(xiàn)了亂碼問題,亂碼一般都是因為編碼引起的,所以我們來查一下數(shù)據(jù)庫的編碼
?1.3.2 Mysql編碼問題解決辦法
1.修改my.cnf文件
cd /etc/mysql/ #進(jìn)入my.cnf文件中的目錄
vim my.cnf #編輯my.cnf文件
2.出現(xiàn)bash: vim: command not found
提示,需要安裝一下vim,使用如下命令
apt-get update
apt-get install vim -y
重新執(zhí)行vim命令。
3.?在 my.cnf文件中[mysql] 下面添加? default-character-set=utf8mb4,然后 :wq 退出。沒有 [mysql] 的話就寫一個。
如下圖:
?
然后看一下mysql的字符集,已經(jīng)變成 utf8mb4 了,這樣就可以解決中文亂碼問題了。
?查看表格數(shù)據(jù)
?至此我們的問題得到了成功解決。
?
送書活動
Python自動化辦公應(yīng)用大全(ChatGPT版):從零開始教編程小白一鍵搞定煩瑣工作(上下冊)
本書簡介:
本書全面系統(tǒng)地介紹了Python語言在常見辦公場景中的自動化解決方案。全書分為5篇21章,內(nèi)容包括Python語言基礎(chǔ)知識,Python讀寫數(shù)據(jù)常見方法,用Python自動操作Excel,用Python自動操作Word?與?PPT,用Python自動操作文件和文件夾、郵件、PDF?文件、圖片、視頻,用Python進(jìn)行數(shù)據(jù)可視化分析及進(jìn)行網(wǎng)頁交互,借助ChatGPT輕松進(jìn)階Python辦公自動化。?
本書適合各層次的信息工作者,既可作為初學(xué)Python的入門指南,又可作為中、高級自動化辦公用戶的參考手冊。書中大量的實例還適合讀者直接在工作中借鑒。
?
本書特色:
?
★方式新穎?詳細(xì)介紹了如何用?ChatGPT?來補充學(xué)習(xí)知識點,以及如何快速生成所需的代碼,零基礎(chǔ)人員學(xué)習(xí)編程的成本進(jìn)一步降低。
★內(nèi)容豐富?以Excel數(shù)據(jù)處理與分析為重點,延展到?Word、PPT、郵件、圖片、視頻、音頻、本地文件管理、網(wǎng)頁交互等現(xiàn)代辦公所需要處理的各種形式的數(shù)據(jù)。
★案例實用?用大量易借鑒的案例幫助用戶學(xué)會在各個場景中使用自動化技術(shù)。
★作者權(quán)威?Excel?Home團(tuán)隊策劃,多位微軟全球最有價值專家(MVP)通力打造,確保每個案例都實用,對編程小白友好。
讓沒有編程經(jīng)驗的普通辦公人員也能駕馭?Python,實現(xiàn)多個場景的辦公自動化,提升效率!
?
作者簡介:
Excel?Home是微軟在線社區(qū)聯(lián)盟成員,全球華語Excel資源網(wǎng)站,擁有大量原創(chuàng)技術(shù)文章、視頻教程、加載宏及模板。Excel?Home是一個學(xué)習(xí)氛圍濃厚的技術(shù)交流社區(qū),中國大陸及中國港臺各行各業(yè)身懷絕技的Office高手都匯聚于此,目前已有三百多萬辦公人士選擇成為它的注冊會員。?Excel?Home已精心編寫并出版Office領(lǐng)域的圖書60余種,截至2020年春節(jié),圖書銷量累計達(dá)200多萬冊。
當(dāng)當(dāng)鏈接:《Python自動化辦公應(yīng)用大全(ChatGPT版):從零開始教編程小白一鍵搞定煩瑣工作(上下冊)》(Excel Home)【簡介_書評_在線閱讀】 - 當(dāng)當(dāng)圖書
?關(guān)注博主、點贊、收藏、
評論區(qū)評論 “ 人生苦短,我愛python”
??即可參與送書活動!
? ? ? ? ? ? ? ? ? ? ? ? ? ?開獎時間:2023-07-17 21:00:00? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
?
?
?
到了這里,關(guān)于Docker部署Mysql數(shù)據(jù)庫詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!