docker的mysql容器exited(1)无法正常启动

  问题:

使用docker 安装MySQL,容器正常启动,使用docker ps 命令查看,没有正在运行的容器,使用docker ps -a 查看所有,mysql 执行状态为exited(1),网上查了有很多种说法,都未能解决。

MySQL版本

创建实例并启动的命令如下:

docker run -p 3307:3306 --name mysql8 \
-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:8.0.24

解决方法:

正常启动后,使用docker ps -a 查看执行状态

docker 容器正常启动后,是可以查看到启动日志的,使用docker logs 需要查看服务的id,如下:

Failed to access directory for --secure-file-priv. Please make sure that dir,这个问题网上有说是文件夹错误或权限问题,设置后并没有解决问题,后来查找发现可能是少创建my.conf文件,故在文件夹中添加配置文件:

my.conf 配置
创建my.cnf配置文件
touch /mydata/mysql/conf/my.cnf
 
my.cnf添加如下内容:
[mysqld]
user=mysql
character-set-server=utf8
default_authentication_plugin=mysql_native_password
secure_file_priv=/var/lib/mysql
expire_logs_days=7
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
max_connections=1000
 
[client]
default-character-set=utf8
 
[mysql]
default-character-set=utf8

重新创建实例并启动,使用docker ps 查看,状态为运行状态:

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值