溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么處理Docker mysql容器升級到mysql8遇到的問題

發(fā)布時間:2020-12-24 09:46:57 來源:億速云 閱讀:190 作者:小新 欄目:MySQL數(shù)據(jù)庫

這篇文章主要介紹怎么處理Docker mysql容器升級到mysql8遇到的問題,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

問題還原
原本的mysql 容器創(chuàng)建 命令如下

docker run --name mysql -v /xxxx/xxx/mysqldata:/var/lib/mysql -p xxx:3306 -d mysql:laster

數(shù)據(jù)目錄被掛載到 /xxxx/xxx/mysqldata 下面 領(lǐng)導讓升級mysql 我天真的下了一個 mysql:8.0.11最新的
mysql鏡像 然后執(zhí)行

docker run --name mysql -v /xxxx/xxx/mysqldata:/var/lib/mysql -p xxx:3306 -d mysql:8.0.11

創(chuàng)建容器 同樣掛載到原本的目錄 :  /xxxx/xxx/mysqldata

結(jié)果容器秒退根本無法起來    查看日志

 docker logs -f -t --tail 70 mysql

日志說 大概是/xxxx/xxx/mysqldata下面的插件文件是5.7版本創(chuàng)建的 8.0無法啟動 然后我有切回原本的 mysql:laster 鏡像創(chuàng)建容器,又說這個目錄下的文件被8.0修改無法啟動,感覺這個目錄就這么廢了,老的鏡像無法啟動,新的也無法啟動。

所以自己被自己的行為蠢哭了千萬別再直接用新本的鏡像啟動容器時掛接原本的mysql目錄,有同事說這樣沒問題,但為啥我出問題了人設有問題嗎

解決方法:
用老的mysql:laster鏡像連接 /xxxx/xxx/mysqldata 的備份目錄,備份太重要了。啟動一個mysql容器
用新的mysql:8.0.11 啟動一個新的mysql 容器,掛接一個任意目錄。然后通過navicat等其他工具將老的數(shù)據(jù)備份還原到新的mysql容器中?;蛘咄ㄟ^命令
$ docker exec some-mysql sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' > /some/path/on/your/host/all-databases.sql 備份還原。

1、如果你的新本mysql還原成功了你用 navicate工具連接報如下的錯

怎么處理Docker mysql容器升級到mysql8遇到的問題

那么你需要修改mysql 的 my.cnf  文件:
添加:

default_authentication_plugin=mysql_native_password

因為8.0使用的是 caching_sha2_password
你可以進入容器:

docker exec -it mysql /bin/bash
mysql -uroot -pxxxx
use mysql
select Host,User,plugin from mysql.user;

查看如下圖

怎么處理Docker mysql容器升級到mysql8遇到的問題

為啥非要修改caching_sha2_password 為 mysql_native_password ,我也不知道只是我的8.0.11的mysql容器啟動后,程序接口任然無法正常使用報錯:無法連接不支持的認證方法,這個時候可能需要升級程序接口的mysql驅(qū)動 ,但是懶得升,只能修改caching_sha2_password 為 mysql_native_password 結(jié)果就可以正常連接了。

3、一點docker 命令記錄一下

重容器中拷貝文件到宿主機 不需要容器啟動
docker cp 容器:/etc/mysql/my.cnf  /home/xxx/my.cnf 

將宿主機的文件拷貝容器里面的目錄下 會覆蓋老的文件
docker cp /home/xxx/my.cnf   容器:/etc/mysql/
如果你特別牛逼程序中是用root來連接賬號的那你可能還需要創(chuàng)建一個 ‘root’@'%' 的賬號并修改它的權(quán)限可以遠程訪問,修改命令網(wǎng)上找

以上是“怎么處理Docker mysql容器升級到mysql8遇到的問題”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI