@TOC
MySQL8.0.20 升級到8.0.22
docker版MySQL8.0.20升級到8.0.22
停止舊的mysql容器
docker stop mysql8.0.20-test
為了穩(wěn)妥起見,先備份數(shù)據(jù)庫。
cp -rf mysql mysqlbak
拉取新的
docker pull mysql:8.0.22
啟動新的
docker run --name=mysql8.0.22-test \
-p 3306:3306 \
--privileged=true \
--mount type=bind,src=/data/mysql/config/my.cnf,dst=/etc/my.cnf \
--mount type=bind,src=/data/mysql/data,dst=/var/lib/mysql \
--restart=always \
-d mysql:8.0.22
重新啟動完成升級
docker restart mysql8.0.22
按照官網(wǎng)說法,對于8.0.15及之前的版本,需要執(zhí)行一下升級程序。然后再重新啟動容器完成升級
docker exec -it mysql80 mysql_upgrade -uroot -p
其中密碼為舊版本的root密碼。升級完成后再重啟容器。
在這里插入圖片描述
MySQL5.7.32升級到MySQL8.0.22
對于5.7升級到8,查看了官網(wǎng)關(guān)于升級的操作,有篇文章必須要看,另外升級之前必須要備份
我做了一個測試,docker啟動mysql5.7.32.然后進(jìn)行升級
升級完畢restart。升級到8.0.22后可以正常使用。配置比較少。
個人感覺需要先閱讀官網(wǎng)的文章,MySQL升級篇。寫的很詳細(xì)。摘取一點。另外注意不能跨版本升級
如果你是5.7.1x或者5.7.2x。建議先升級到5.7.3x。多讀讀官網(wǎng)還是有很好的幫助效果。雖然都是英文,不過Google瀏覽器可以翻譯啊。官方鏈接
在這里插入圖片描述
在這里插入圖片描述
先拉取兩個版本的鏡像
docker pull mysql:5.7.32
docker pull mysql:8.0.22
創(chuàng)建5.7容器
docker run --name=mysql5.7.32 \
-p 3306:3306 \
--privileged=true \
--mount type=bind,src=/data/mysql/conf/my.cnf,dst=/etc/my.cnf \
--mount type=bind,src=/data/mysql/data,dst=/var/lib/mysql \
--restart=always \
-e MYSQL_ROOT_PASSWORD=DX_xx1234 \
-d mysql:5.7.32
navicat連接創(chuàng)建數(shù)據(jù)庫導(dǎo)入數(shù)據(jù)。使用沒問題,數(shù)據(jù)庫備份一下,預(yù)防升級失敗
開始升級。
停止舊的容器
docker stop mysql5.7.32
升級容器
docker run --name=mysql8.0.22 \
-p 3306:3306 \
--privileged=true \
--mount type=bind,src=/data/mysql/conf/my.cnf,dst=/etc/my.cnf \
--mount type=bind,src=/data/mysql/data,dst=/var/lib/mysql \
--restart=always \
-d mysql:8.0.22
重啟,確保升級正常
docker restart mysql8.0.22
navicat 連接,已變成8.0.22版本
在這里插入圖片描述