docker启动mysql闪退问题

docker启动mysql闪退问题

一、常见原因:
1、启动时未使用 -d 参数
该参数表明以守护进程的方式启动mysql,否则由于没有前台应用,启动的mysql进程会立即自杀,导致闪退;
2、未开启虚拟内存;
2.1、free,查看swap是否为0; 如果为0,代表未开启虚拟内存;
2.2、开启方式:
dd if=/dev/zero of=/swapfile bs=1M count=1024
mkswap /swapfile
swapon /swapfile
2.3、开启后正常的显示为:

                   total        used        free      shared  buff/cache   available
Mem:         500152      309048       12788        1776      178316      147468
Swap:       1572860       53132     1519728

二、如果上述方法都不管用,那可能和我的错误类似,我遇到的问题及解决方式如下:
1、操作:
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

2、现象:
docker ps后,发现mysql没运行:
docker ps -a后,发现mysql秒退;
3、解决方法:
使用-it的方式启动,在界面看到报错信息:

2020-05-21T06:49:42.811172Z 0 [ERROR] [FATAL] InnoDB: Table flags are 0 in the data dictionary but the flags in file ./ibdata1 are 0x4800!
2020-05-21 06:49:42 0x7f7b3cb0d740  InnoDB: Assertion failure in thread 140167275927360 in file ut0ut.cc line 918

出现该错误信息,表明数据目录不干净;
我挂载的数据目录为/mydata/mysql/data,只需进去将/data目录清空即可;
操作命令:在data目录下,执行 rm -rf /mydata/mysql/data/*
4、导致问题的操作:
4.1 第一次下载mysql镜像,中途失败;
4.2 第二次下载的为mysql:latest,启动时发现秒退,刚开始怀疑为版本原因,随即删除了mysql:latest,重新下载的mysql:5.7,仍旧秒退;
4.3 问题解决了,但是到底是哪一步造成的秒退还未确定,仅提供一个解决问题的思路;

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值