docker不能运行mysql容器

docker运行mysql容器命令

/mydata/mysql/这个文件夹是我自定义放置数据卷的

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=roor 
-d mysql:5.7

进入容器

docker exec -it mysql bash

报错
Error response from daemon: Container ae706f67be05b70f379846d555069a73295d2130cb7d49271f701ac5061dd75a
is not running

查看mysql容器是否在运行

docker ps

结果为空,查看所有容器

docker ps -a

#结果
CONTAINER ID   IMAGE       COMMAND                  CREATED          STATUS                     PORTS     NAMES
ae706f67be05   mysql:5.7   "docker-entrypoint.s…"   10 minutes ago   Exited (0) 4 minutes ago             mysql

可以看出,mysql容器运行过,只是死的太快,或者说在启动时抛异常了

查看容器日志

docker logs mysql

结果

2021-11-18 07:52:27+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 5.7.36-1debian10 started.
2021-11-18 07:52:27+00:00 [ERROR] [Entrypoint]: mysqld failed while attempting to check config
	command was: mysqld --verbose --help --log-bin-index=/tmp/tmp.7EBgLzkLCC
	2021-11-18T07:52:27.950841Z 0 [ERROR] unknown variable 'default-character-set=utf8'
2021-11-18T07:52:27.957031Z 0 [ERROR] Aborting

我的原因是 在mysql容器的配置文件(挂载的数据卷配置的)中出现未知变量default-character-set=utf8,如果是其它错误,根据日志排除即可

解决方法:
1.暴力解决:删了容器和镜像重新pull再运行

2.1. 在my.cnf配置文件中注释掉default-character-set=utf8

[client]
default-character-set=utf8

[server]
#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

2.2. 删除这个容器

docker rm -f mysql

2.3. 重新运行mysql容器,再进入即可

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=roor 
-d mysql:5.7

docker exec -it mysql bash

收工
在这里插入图片描述

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值