我有一个 MySQL 服务器,使用MySQL:8.0.21 镜像在 Ubuntu VPS 上的 docker 容器内运行。
我正在使用以下命令docker-compose.yml来启动服务器
version: "3"
services:
mysql_server:
image: mysql:8.0.21
restart: always
container_name: mysql_server
environment:
MYSQL_DATABASE: my_database
MYSQL_USER: my_user
MYSQL_PASSWORD: my_pass
MYSQL_ROOT_PASSWORD: my_pass
volumes:
- mysql_server_data:/var/lib/mysql
- /mysql/files:/etc/mysql/conf.d
Run Code Online (Sandbox Code Playgroud)
但是,我需要一种方法来设置 MySQL 的默认配置,而不是使用默认配置。
我尝试添加“命令line to thedocker-compose.yml”文件,如下所示。但这没有用。
version: "3"
services:
mysql_server:
image: mysql:8.0.21
restart: always
container_name: mysql_server
environment:
MYSQL_DATABASE: my_database
MYSQL_USER: my_user
MYSQL_PASSWORD: my_pass
MYSQL_ROOT_PASSWORD: my_pass
command: mysqld --innodb-buffer-pool-size=2.5G --innodb-log-file-size=512M
volumes:
- mysql_server_data:/var/lib/mysql
- /mysql/files:/etc/mysql/conf.d
Run Code Online (Sandbox Code Playgroud)
conf.d我还尝试添加一个名为in的文件/mysql/files并向其中添加以下行,但这也不起作用
innodb_log_file_size = 512M
innodb_buffer_pool_size=2.5G
Run Code Online (Sandbox Code Playgroud)
如何正确更改在 docker 容器中运行的 MySQL 实例的默认配置?
CMD已mysqld在容器中设置为,因此文件command中的字段docker-compose只能包含您要更改的参数。这就是图像文档中推荐的内容。
例如:
services:
mysql_server:
image: mysql:8.0.21
restart: always
container_name: mysql_server
[..]
command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --innodb-buffer-pool-size=200M
[..]
Run Code Online (Sandbox Code Playgroud)
另外,我不确定 是否2.5G是有效值innodb-buffer-pool-size,因此我建议使用诸如2500M或类似的整数值。
| 归档时间: |
|
| 查看次数: |
6931 次 |
| 最近记录: |