[ERROR] [FATAL] InnoDB: Table flags are 0 in the data dictionary but the flags in file ./ibdata

本文介绍了解决Docker环境下MySQL容器启动失败的问题,特别是遇到InnoDB表标志不一致的错误时的解决步骤,包括删除旧容器、配置字符集及重启MySQL等。

docker安装mysql后启动容器失败,查看mysql容器日志发现:

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

查询所有容器

docker ps -a

删除容器

docker rm CONTAINER ID;  #CONTAINER ID是实际的容器号

如有,一定要删除外部挂载目录。

重新启动mysql,本人安装的是mysql5.7版本

docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7

进入容器外部挂载配置文件

vim /mydata/mysql/conf/my.conf

插入以下内容。复制以下内容,通过上一步操作进入文件后,按下键盘 i 进入插入状态,shift + insert粘贴内容,Esc退出插入模式,:wq保存并退出

[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve

重启mysql

docker restart mysql
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值