【问题标题】:Docker mysql instant exitDocker mysql 即时退出
【发布时间】:2016-09-06 09:16:51
【问题描述】:

Mysql Docker 出现问题,当我运行 docker-compose up 命令时退出。

这是我的docker-compose.yml 文件:

version: "2"
services:
    web:
        build: ./app
        links:
            - "db-mongo:db-mongo"
            - "db-mysql:db-mysql"
        ports:
            - "443:3000"
        volumes:
            - "./app:/src"
            - "/src/.sass-cache"
            - "/src/node_modules"
            - "/src/lib"

    db-mongo:
        build: ./mongo
        ports:
            - "27017:27017"
        volumes:
            - "./mongo/db:/data"

    db-mysql:
        image: mysql
        ports:
            - "3306:3306"
        volumes:
            - "./mysql/db:/var/lib/mysql"
            - "./mysql/log:/var/log/mysql"
            - "./mysql/conf.d:/etc/mysql/conf.d"
        environment:
            MYSQL_ROOT_PASSWORD: password
            MYSQL_DATABASE: testt

文件夹./mysql/db./mysql/log 为空。

当我运行docker-compose up 时,输出如下:

db-mysql_1  | Initializing database
server_db-mysql_1 exited with code 1

当我运行 docker ps -a 时: 0a5a7a643f18 mysql "docker-entrypoint.sh" 8 分钟前退出 (1) 7 分钟前 server_db-mysql_1

奇怪的是,如果我运行 docker run -d --name=new-mysql -p 3306:3306 -v /var/www/server/mysql/db:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=password mysql 它可以工作...

这里是docker logs 97c -f的输出:

Initializing database
Database initialized
MySQL init process in progress...
Warning: Unable to load '/usr/share/zoneinfo/Factory' as time zone. Skipping it.
Warning: Unable to load '/usr/share/zoneinfo/iso3166.tab' as time zone. Skipping it.
Warning: Unable to load '/usr/share/zoneinfo/leap-seconds.list' as time zone. Skipping it.
Warning: Unable to load '/usr/share/zoneinfo/posix/Factory' as time zone. Skipping it.
Warning: Unable to load '/usr/share/zoneinfo/right/Factory' as time zone. Skipping it.
Warning: Unable to load '/usr/share/zoneinfo/zone.tab' as time zone. Skipping it.


MySQL init process done. Ready for start up.

为什么我的 docker-compose 不能让我的 mysql docker 存活?我一定错过了什么……救命!谢谢

编辑:看来是我的conf.d 文件夹出现了一些问题,因为当我删除卷- "./mysql/conf.d:/etc/mysql/conf.d" 时,server_db-mysql 保持活动状态。

这是mysql/conf.d/my.cnf文件内容:

[mysqld]
general_log_file = /var/log/mysql/mysql.log
general_log = 1

为什么那个文件会导致 mysql 崩溃?

【问题讨论】:

    标签: mysql docker docker-compose


    【解决方案1】:

    在您的自定义配置文件中挂载/var/log/mysql 时存在权限问题。

    解决方法请参考这个问题#docker-mysql-146

    /var/log/mysql 目录的所有者和组必须符合 mysql 的预期。确保,执行:

    docker exec mysql chown mysql:root /var/log/mysql
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-12
      • 2018-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-24
      • 1970-01-01
      相关资源
      最近更新 更多