【问题标题】:How to add mysql config in Laravel Sail docker-compose.yml?如何在 Laravel Sail docker-compose.yml 中添加 mysql 配置?
【发布时间】:2021-11-06 13:28:38
【问题描述】:

我有一个全新的 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 downsail 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

如何包含配置?

【问题讨论】:

  • 当您在 docker-compose.yml 中更改 mysql 服务时,您是否执行 docker-compose down 和 up 以使更改生效?如果是这样,之后是否运行了 mysql 服务?您是否尝试检查提供的值,目录 /var/lib/mysql-files 是否存在并且可由 mysql 访问?日志中有任何内容吗?

标签: mysql laravel docker-compose


【解决方案1】:

自定义my.cnf 正在覆盖设置(pid-file、socke 和 datadir),这会导致 mysql 服务失败。为了不覆盖它们,需要保留原始的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 = 64

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-10
    • 1970-01-01
    • 2021-05-05
    • 1970-01-01
    • 2021-12-06
    • 2023-01-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多