问题:
使用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 查看,状态为运行状态: