InnoDB Table flags are 0 in the data dictionary but the flags in file ./ibdata1 are 0x4800!


目錄

bug

系統 Mac OS docker-compose

修改docker-compose里的mysql版本,從8.0降到5.7

InnoDB: Table flags are 0 in the data dictionary but the flags in file ./ibdata1 are 0x4800!

原因

之前docker已經運行了一個mysql 8.0 的容器,並且掛載到了主機目錄。

原來安裝的是mysql8.0版本,比現在的5.7版本要高,但在高版本數據庫時創建的一些數據庫數據都還在。

使用的是高版本的InnoDB引擎,而低版本的數據庫服務還是指向了這些數據,但是一些版本的數據格式不同,這個時候,我們只要把高版本的數據刪掉就可以了,刪掉后重新啟動mysql就可以了。

解決

刪除高版本數據庫時創建的數據,不是僅僅刪除創建的一些數據庫,而是把整個mysql的數據目錄全部刪除。

  1. 因為我是用docker跑的,找到掛載的目錄
volumes:
      - ./data/mysql_db:/var/lib/mysql

進入到docker-compose.yml文件目錄

rm -rf data

再次執行docker-compose up
成功

  1. 如果你是直接安裝在主機上
cd /var/lib/mysql
sudo rm -R mysql

重啟即可


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM