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的數據目錄全部刪除。
- 因為我是用docker跑的,找到掛載的目錄
volumes:
- ./data/mysql_db:/var/lib/mysql
進入到docker-compose.yml文件目錄
rm -rf data
再次執行docker-compose up
成功
- 如果你是直接安裝在主機上
cd /var/lib/mysql
sudo rm -R mysql
重啟即可
