Docker版的MySQL5.7升級到MySQL8.0.13,數(shù)據(jù)遷移
1.備份舊的MySQL5.7的數(shù)據(jù)
記得首先要備份舊的數(shù)據(jù),防止升級失敗導(dǎo)致數(shù)據(jù)丟失。備份的方式有兩種,一種是在宿主機(jī)直接執(zhí)行導(dǎo)出命令,另外一種是先進(jìn)入Docker環(huán)境下進(jìn)行操作。主要的導(dǎo)出命令如下:
#方式一,直接在宿主機(jī)器進(jìn)行數(shù)據(jù)備份 # 0df568 是docker的id ;-uroot -p123456 是用戶名和密碼;dbA dbB是要備份的數(shù)據(jù),--databases 后面可以接多個(gè)數(shù)據(jù)庫名,導(dǎo)出的sql到/root/all-databases3306.sql docker exec -it 0df568 mysqldump -uroot -p123456 --databases dbA dbB > /root/all-databases3306.sql #======================================================================================================================================================== #方式二,先進(jìn)入到docker在執(zhí)行mysqldump,然后再將導(dǎo)出的sql拷貝到宿主 #先進(jìn)入docker docker exec -it 0df568 /bin/bash #可選的 source /etc/profile #執(zhí)行導(dǎo)出命令 mysqldump -uroot -p123456 --databases dbA dbB > /root/all-databases3306.sql #拷貝到宿主機(jī)器 #退出Docker,執(zhí)行exit命令 exit #此時(shí),已經(jīng)在宿主的環(huán)境,執(zhí)行拷貝命令,將sql文件從docker紅拷貝出來 docker cp 0df568:/root/all-databases3306.sql /root/all-databases3306.sql
2.拉取MySQL8.0.13的鏡像,完成安裝
拉取和安裝MySQL其實(shí)可以完全參考官網(wǎng)即可。參考網(wǎng)址:https://hub.docker.com/r/mysql/mysql-server/ ,這里再簡單的描述一下安裝的過程。
2.1 拉取鏡像到本地
運(yùn)行下面的命令即可拉取最新的MySQL鏡像
docker pull mysql/mysql-server:lastest
拉取指定的MySQL鏡像
#tag就是填寫你要的版本號,例如你想要的MySQL8.0.13那么tag就是8.0.13,則執(zhí)行:docker pull mysql/mysql-server:8.0.13
docker pull mysql/mysql-server:tag
可以使用docker images查看你拉取下來的進(jìn)行。
2.2 運(yùn)行MySQL8.0.13鏡像
運(yùn)行指定的MySQL8.0.13的Docker鏡像,我們在2.1步驟已經(jīng)拉取了指定的鏡像下來,那么可以通過docker images查看到本地的Docker鏡像,得到鏡像的ID和名字。接下來運(yùn)行下列的命令運(yùn)行MySQL8.0.13的Docker鏡像:
#--name指定運(yùn)行啟動后的名字 -e 指定docker里的環(huán)境變量 -v 分區(qū)或者是目錄映射,docker的程序數(shù)據(jù)映射到宿主的指定位置 -p 指定 宿主到docker程序的端口映射 -d 指定鏡像的版本。 docker run --name=mysql8.0 -e MYSQL_ROOT_PASSWORD=123456 -v /root/dockerdata/mysql8.0/data:/var/lib/mysql -p 3307:3306 -dit mysql/mysql-server:8.0.13
查看是否在運(yùn)行
# 執(zhí)行下列的命令 docker ps
3.升級到MySQL8.X之后的一些問題
升級MySQL8.x后,遠(yuǎn)程連接無法連接,這樣很不方便,需要進(jìn)行修改。主要包括下面兩方面的配置:
3.1 提供遠(yuǎn)程訪問
修改用戶為@'%',%代表所有的主機(jī)都可以連接,命令如下:
#先root登錄到數(shù)據(jù)庫,執(zhí)行下列的命令 #a.使用msyql use mysql; #b.然后執(zhí)行授權(quán) GRANT ALL PRIVILEGES ON . TO 'root'@'%' IDENTIFIED BY '123456' #c.一定要刷新權(quán)限(重新加載),否則需要重啟MySQL才能生效 FLUSH PRIVILEGES;
3.2 更改連接的密碼校驗(yàn)方式
MySQL8.X的加密方式是caching_sha2_password,caching_sha2_password加密方式在遠(yuǎn)程訪問時(shí)候不支持,所以需要改成:mysql_native_password
# a.修改指定的用戶 ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; # b.一定要刷新權(quán)限(重新加載),否則需要重啟MySQL才能生效 FLUSH PRIVILEGES;
4.導(dǎo)入數(shù)據(jù)到新的MySQL中
導(dǎo)入數(shù)據(jù),我采用的方式是先將數(shù)據(jù)庫備份文件拷貝進(jìn)新的Docker,然后再執(zhí)行導(dǎo)入命令。命令如下:
#拷貝備份的文件到docker中 docker cp /root/all-databases3306.sql 3sfsdf:/root/all-databases3306.sql #先進(jìn)入docker環(huán)境,然后導(dǎo)入到數(shù)據(jù)庫 docker exec -it xxx /bin/bash mysql -u root -p < /root/all-databases3306.sql
5.參考文檔
https://hub.docker.com/r/mysql/mysql-server/
https://bugs.mysql.com/bug.php?id=92675
總結(jié)
以上所述是小編給大家介紹的Docker版的MySQL5.7升級到MySQL8.0.13,數(shù)據(jù)遷移,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
相關(guān)文章
使用Dockerfile.dockerignore提升Docker鏡像構(gòu)建速度
這篇文章主要為大家介紹了使用Dockerfile.dockerignore提升Docker鏡像構(gòu)建速度,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪<BR>2023-10-10
Docker使用Dockerfile創(chuàng)建支持ssh服務(wù)自啟動的容器鏡像
這篇文章主要介紹了Docker使用Dockerfile創(chuàng)建支持ssh服務(wù)自啟動的容器鏡像,需要的朋友可以參考下2016-10-10
Docker consul的容器服務(wù)更新與發(fā)現(xiàn)的問題小結(jié)
這篇文章主要介紹了Docker consul的容器服務(wù)更新與發(fā)現(xiàn),講解了服務(wù)注冊與發(fā)現(xiàn)的基本概念講解,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下2021-08-08
Docker Stack部署Java Web項(xiàng)目的實(shí)現(xiàn)
本文主要介紹了Docker Stack部署Java Web項(xiàng)目的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06
Docker容器添加映射端口的兩種實(shí)現(xiàn)方法
本文主要介紹了Docker容器添加映射端口的兩種實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07
通過容器提交鏡像DockerCommit及推送鏡像DockerPush
這篇文章主要介紹了通過容器提交鏡像DockerCommit及推送鏡像DockerPush,文中通過詳細(xì)的示例代碼進(jìn)行了詳細(xì)分解,有需要的朋友可以借鑒參考下2021-09-09

