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
收工
版权声明:本文为weixin_53285159原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。