我有一个新的Laravel 8安装和mysql:8.0镜像。
我想向MySql添加一些配置。
这是我在docker-compose.yml中的mysql服务。
mysql:
image: 'mysql:8.0'
ports:
- '${FORWARD_DB_PORT:-3306}:3306'
environment:
MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}'
MYSQL_DATABASE: '${DB_DATABASE}'
MYSQL_USER: '${DB_USERNAME}'
MYSQL_PASSWORD: '${DB_PASSWORD}'
MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
volumes:
- 'sailmysql:/var/lib/mysql'
networks:
- sail
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-p${DB_PASSWORD}"]
retries: 3
timeout: 5s这可以很好地工作。如果我现在尝试将my.cnf添加到卷中,如下所示:
volumes:
- 'sailmysql:/var/lib/mysql'
- './docker/8.0/my.cnf:/etc/mysql/my.cnf'并使用sail down和sail up重新启动容器,然后突然失败,并显示以下信息:
mysql_1 | 2021-11-06T13:26:52.465786Z 0 [ERROR] [MY-010095] [Server] Failed to access directory for --secure-file-priv. Please make sure that directory exists and is accessible by MySQL Server. Supplied value : /var/lib/mysql-files
mysql_1 | 2021-11-06T13:26:52.465813Z 0 [ERROR] [MY-010119] [Server] Aborting如何包含配置?
发布于 2021-11-06 14:10:11
自定义文件会覆盖导致mysql服务失败的设置(pid- my.cnf、socke和datadir)。为了不覆盖它们,需要保留原始my.cnf文件,该文件为:
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
secure-file-priv= NULL因此,在您的情况下,您必须添加:
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
secure-file-priv= NULL
innodb_io_capacity = 2000
innodb_read_io_threads = 64
innodb_thread_concurrency = 64
innodb_write_io_threads = 64https://stackoverflow.com/questions/69864409
复制相似问题