首頁 資料庫 mysql教程 解決Docker mysql容器升級到 mysql8遇到的問題

解決Docker mysql容器升級到 mysql8遇到的問題

Dec 23, 2020 am 09:30 AM
mysql8

mysql影片教學欄位介紹Docker mysql容器升級到 mysql8遇到的問題,告訴大家如何有效解決。

解決Docker mysql容器升級到 mysql8遇到的問題

推薦(免費):mysql影片教學

問題還原
原本的mysql 容器建立指令如下

docker run --name mysql -v /xxxx/xxx/mysqldata:/var/lib/mysql -p xxx:3306 -d mysql:laster
登入後複製

資料目錄被掛載到/xxxx/xxx/mysqldata 下面領導讓升級mysql 我天真的下了一個mysql:8.0.11最新的
mysql鏡像接著執行

docker run --name mysql -v /xxxx/xxx/mysqldata:/var/lib/mysql -p xxx:3306 -d mysql:8.0.11
登入後複製

建立容器同樣掛載到原本的目錄:  /xxxx/xxx/mysqldata

結果容器秒退根本無法起來   檢視日誌

 docker logs -f -t --tail 70 mysql
登入後複製

日誌說大概是/xxxx/xxx/mysqldata下面的插件檔案是5.7版本創建的8.0無法啟動然後我有切回原本的mysql:laster 鏡像創建容器,又說這個目錄下的檔案被8.0修改無法啟動,感覺這個目錄就這麼廢了,舊的鏡像無法啟動,新的也無法啟動。

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

解決方法:
用舊的mysql:laster鏡像連接/xxxx/xxx/mysqldata 的備份目錄,備份太重要了。啟動一個mysql容器
用新的mysql:8.0.11 啟動一個新的mysql 容器,掛接一個任意目錄。然後透過navicat等其他工具將舊的資料備份還原到新的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驅動,但懶得升,只能修改caching_sha2_password 為mysql_native_password 結果就可以正常連線了。

3、一點docker 指令記錄一下

重容器中拷贝文件到宿主机 不需要容器启动
docker cp 容器:/etc/mysql/my.cnf  /home/xxx/my.cnf 

将宿主机的文件拷贝容器里面的目录下 会覆盖老的文件
docker cp /home/xxx/my.cnf   容器:/etc/mysql/
如果你特别牛逼程序中是用root来连接账号的那你可能还需要创建一个 ‘root’@'%' 的账号并修改它的权限可以远程访问,修改命令网上找
登入後複製

以上是解決Docker mysql容器升級到 mysql8遇到的問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

如何使用Alter Table語句在MySQL中更改表? 如何使用Alter Table語句在MySQL中更改表? Mar 19, 2025 pm 03:51 PM

本文討論了使用MySQL的Alter Table語句修改表,包括添加/刪除列,重命名表/列以及更改列數據類型。

如何為MySQL連接配置SSL/TLS加密? 如何為MySQL連接配置SSL/TLS加密? Mar 18, 2025 pm 12:01 PM

文章討論了為MySQL配置SSL/TLS加密,包括證書生成和驗證。主要問題是使用自簽名證書的安全含義。[角色計數:159]

您如何處理MySQL中的大型數據集? 您如何處理MySQL中的大型數據集? Mar 21, 2025 pm 12:15 PM

文章討論了處理MySQL中大型數據集的策略,包括分區,碎片,索引和查詢優化。

哪些流行的MySQL GUI工具(例如MySQL Workbench,PhpMyAdmin)是什麼? 哪些流行的MySQL GUI工具(例如MySQL Workbench,PhpMyAdmin)是什麼? Mar 21, 2025 pm 06:28 PM

文章討論了流行的MySQL GUI工具,例如MySQL Workbench和PhpMyAdmin,比較了它們對初學者和高級用戶的功能和適合性。[159個字符]

如何使用Drop Table語句將表放入MySQL中? 如何使用Drop Table語句將表放入MySQL中? Mar 19, 2025 pm 03:52 PM

本文討論了使用Drop Table語句在MySQL中放下表,並強調了預防措施和風險。它強調,沒有備份,該動作是不可逆轉的,詳細介紹了恢復方法和潛在的生產環境危害。

如何在JSON列上創建索引? 如何在JSON列上創建索引? Mar 21, 2025 pm 12:13 PM

本文討論了在PostgreSQL,MySQL和MongoDB等各個數據庫中的JSON列上創建索引,以增強查詢性能。它解釋了索引特定的JSON路徑的語法和好處,並列出了支持的數據庫系統。

您如何用外國鑰匙代表關係? 您如何用外國鑰匙代表關係? Mar 19, 2025 pm 03:48 PM

文章討論了使用外國密鑰來代表數據庫中的關係,重點是最佳實踐,數據完整性和避免的常見陷阱。

如何保護MySQL免受常見漏洞(SQL注入,蠻力攻擊)? 如何保護MySQL免受常見漏洞(SQL注入,蠻力攻擊)? Mar 18, 2025 pm 12:00 PM

文章討論了使用準備好的語句,輸入驗證和強密碼策略確保針對SQL注入和蠻力攻擊的MySQL。(159個字符)

See all articles