您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“Docker中MySQL5.7如何升級到MySQL8.0.13”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Docker中MySQL5.7如何升級到MySQL8.0.13”這篇文章吧。
記得首先要備份舊的數據,防止升級失敗導致數據丟失。備份的方式有兩種,一種是在宿主機直接執行導出命令,另外一種是先進入Docker環境下進行操作。主要的導出命令如下:
#方式一,直接在宿主機器進行數據備份 # 0df568 是docker的id ;-uroot -p123456 是用戶名和密碼;dbA dbB是要備份的數據,--databases 后面可以接多個數據庫名,導出的sql到/root/all-databases3306.sql docker exec -it 0df568 mysqldump -uroot -p123456 --databases dbA dbB > /root/all-databases3306.sql #======================================================================================================================================================== #方式二,先進入到docker在執行mysqldump,然后再將導出的sql拷貝到宿主 #先進入docker docker exec -it 0df568 /bin/bash #可選的 source /etc/profile #執行導出命令 mysqldump -uroot -p123456 --databases dbA dbB > /root/all-databases3306.sql #拷貝到宿主機器 #退出Docker,執行exit命令 exit #此時,已經在宿主的環境,執行拷貝命令,將sql文件從docker紅拷貝出來 docker cp 0df568:/root/all-databases3306.sql /root/all-databases3306.sql
拉取和安裝MySQL其實可以完全參考官網即可。參考網址:https://hub.docker.com/r/mysql/mysql-server/ ,這里再簡單的描述一下安裝的過程。
運行下面的命令即可拉取最新的MySQL鏡像
docker pull mysql/mysql-server:lastest
拉取指定的MySQL鏡像
#tag就是填寫你要的版本號,例如你想要的MySQL8.0.13那么tag就是8.0.13,則執行:docker pull mysql/mysql-server:8.0.13
docker pull mysql/mysql-server:tag
可以使用docker images查看你拉取下來的進行。
運行指定的MySQL8.0.13的Docker鏡像,我們在2.1步驟已經拉取了指定的鏡像下來,那么可以通過docker images查看到本地的Docker鏡像,得到鏡像的ID和名字。接下來運行下列的命令運行MySQL8.0.13的Docker鏡像:
#--name指定運行啟動后的名字 -e 指定docker里的環境變量 -v 分區或者是目錄映射,docker的程序數據映射到宿主的指定位置 -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
查看是否在運行
# 執行下列的命令 docker ps
升級MySQL8.x后,遠程連接無法連接,這樣很不方便,需要進行修改。主要包括下面兩方面的配置:
修改用戶為@'%',%代表所有的主機都可以連接,命令如下:
#先root登錄到數據庫,執行下列的命令 #a.使用msyql use mysql; #b.然后執行授權 GRANT ALL PRIVILEGES ON . TO 'root'@'%' IDENTIFIED BY '123456' #c.一定要刷新權限(重新加載),否則需要重啟MySQL才能生效 FLUSH PRIVILEGES;
MySQL8.X的加密方式是caching_sha2_password,caching_sha2_password加密方式在遠程訪問時候不支持,所以需要改成:mysql_native_password
# a.修改指定的用戶 ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; # b.一定要刷新權限(重新加載),否則需要重啟MySQL才能生效 FLUSH PRIVILEGES;
導入數據,我采用的方式是先將數據庫備份文件拷貝進新的Docker,然后再執行導入命令。命令如下:
#拷貝備份的文件到docker中 docker cp /root/all-databases3306.sql 3sfsdf:/root/all-databases3306.sql #先進入docker環境,然后導入到數據庫 docker exec -it xxx /bin/bash mysql -u root -p < /root/all-databases3306.sql
以上是“Docker中MySQL5.7如何升級到MySQL8.0.13”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。