docker" mysqld:无法读取'/etc/mysql/mysql.conf.d'的目录(操作系统errno 2-没有这样的文件或目录)“ [英] docker "mysqld: can't read dir of '/etc/mysql/mysql.conf.d' (os errno 2 - no such file or directory)"
问题描述
我已经在Ubuntu 16.04计算机上安装了docker-engine和docker-compose.
I have installed docker-engine and docker-compose on my Ubuntu 16.04 machine.
When installing docker-engine, I followed: https://www.0x90.it/come-installare-e-usare-docker-su-ubuntu-16-04/
运行命令"docker-compose -f docker-compose-dev.yml up -d"时,问题是服务"erentpay_db_1"运行并立即停止.这是docker-compose-dev.yml文件的内容
When running the command "docker-compose -f docker-compose-dev.yml up -d", the problem is that service "erentpay_db_1" runs and immediately stops. Here is the content of docker-compose-dev.yml file
docker-compose-dev.yml
version: '2'
services:
db:
build: ./docker/mysql
volumes:
- ./docker/mysql/data:/var/lib/mysql
- ./log/mysql:/var/log/mysql
environment:
- MYSQL_ROOT_HOST
- MYSQL_ALLOW_EMPTY_PASSWORD
- MYSQL_DATABASE
- MYSQL_USER
- MYSQL_PASSWORD
ports:
- '3307:3306'
nginx:
build: ./docker/nginx
ports:
- '80:80'
- '443:443'
volumes:
- ./log/nginx:/var/log/nginx
- ./:/var/www/
php:
build:
context: ./docker/php
args:
- APP_ENV=dev
volumes:
- ./:/var/www/
environment:
- SYMFONY__DATABASE__HOST=${MYSQL_ROOT_HOST}
- SYMFONY__DATABASE__PORT=${MYSQL_PORT}
- SYMFONY__DATABASE__NAME=${MYSQL_DATABASE}
- SYMFONY__DATABASE__USER=${MYSQL_USER}
- SYMFONY__DATABASE__PASSWORD=${MYSQL_PASSWORD}
- SYMFONY__RABBITMQ__HOST=${RABBITMQ_HOST}
- SYMFONY__RABBITMQ__PORT=${RABBITMQ_PORT}
- SYMFONY__RABBITMQ__USER=${RABBITMQ_USER}
- SYMFONY__RABBITMQ__PASSWORD=${RABBITMQ_PASSWORD}
- SYMFONY__RABBITMQ__VHOST=${RABBITMQ_VHOST}
- SYMFONY__STRIPE__PUBLIC__KEY=${STRIPE_PUBLIC_KEY}
- SYMFONY__STRIPE__SECRET__KEY=${STRIPE_SECRET_KEY}
- SYMFONY__PLAID__CLIENT__ID=${PLAID_CLIENT_ID}
- SYMFONY__PLAID__PUBLIC__KEY=${PLAID_PUBLIC_KEY}
- SYMFONY__PLAID__SECRET__KEY=${PLAID_SECRET_KEY}
- SYMFONY__PLAID__ENV=${PLAID_ENV}
- SYMFONY__MAILER__HOST=${MAILER_HOST}
- SYMFONY__MAILER__USER=${MAILER_USER}
- SYMFONY__MAILER__PASSWORD=${MAILER_PASSWORD}
- SYMFONY__MAILER__TRANSPORT=${MAILER_TRANSPORT}
- SYMFONY__MAILER__PORT=${MAILER_PORT}
- SYMFONY__MAILER__ENCRYPTION=${MAILER_ENCRYPTION}
- SYMFONY__CONTACT__EMAIL=${CONTACT_EMAIL}
- SYMFONY__DOCUSIGN__INTEGRATOR__KEY=${DOCUSIGN_INTEGRATOR_KEY}
- SYMFONY__DOCUSIGN__USERNAME=${DOCUSIGN_USERNAME}
- SYMFONY__DOCUSIGN__PASSWORD=${DOCUSIGN_PASSWORD}
- SYMFONY__DOCUSIGN__ENVIRONMENT=${DOCUSIGN_ENVIRONMENT}
- SYMFONY__DOCUSIGN__ACCOUNT__ID=${DOCUSIGN_ACCOUNT_ID}
- SYMFONY__GOOGLE__ANALYTICS__ID=${GOOGLE_ANALYTICS_ID}
rabbitmq:
image: rabbitmq
environment:
- HOSTNAME=${RABBITMQ_HOST}
- RABBITMQ_NODENAME=rabbitmq
- RABBITMQ_DEFAULT_USER=${RABBITMQ_USER}
- RABBITMQ_DEFAULT_PASS=${RABBITMQ_PASSWORD}
- RABBITMQ_DEFAULT_VHOST=${RABBITMQ_VHOST}
ports:
- 15672:15672
- 5672:5672
这是 ./docker/mysql 文件夹中的文件
./docker/mysql/Dockerfile
FROM mysql:latest
COPY my.cnf /etc/mysql/my.cnf
RUN rm -rf /var/lib/apt/lists/*
./docker/mysql/my.cnf
# Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
[mysqld]
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/
"docker logs erentpay_db_1"返回的错误是
The error returned by "docker logs erentpay_db_1" is
错误:尝试检查配置命令时,mysqld失败:"mysqld --verbose --help"
ERROR: mysqld failed while attempting to check config command was: "mysqld --verbose --help"
mysqld:无法读取'/etc/mysql/mysql.conf.d'的目录(OS errno 2-否这样的文件或目录)mysqld:[ERROR]默认情况下的致命错误处理.程序中止了!
mysqld: Can't read dir of '/etc/mysql/mysql.conf.d' (OS errno 2 - No such file or directory) mysqld: [ERROR] Fatal error in defaults handling. Program aborted!
这是图像列表
docker images -a
REPOSITORY TAG IMAGE ID CREATED SIZE
erentpay_db latest 7f51bcc584bd 3 minutes ago 445MB
erentpay_php latest fd39b51935a7 4 minutes ago 876MB
erentpay_nginx latest df49934ad7e8 17 minutes ago 108MB
mysql latest 8d65ec712c69 33 hours ago 445MB
php 5.6-fpm b755db32196e 2 weeks ago 368MB
rabbitmq latest b17bd9d70e8b 5 weeks ago 127MB
nginx stable 1b155f07a3fa 5 weeks ago 108MB
和容器列表
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9f38d5f7066f rabbitmq "docker-entrypoint..." 4 minutes ago Up 4 minutes 4369/tcp, 0.0.0.0:5672->5672/tcp, 5671/tcp, 25672/tcp, 0.0.0.0:15672->15672/tcp erentpay_rabbitmq_1
d598eea13e0e erentpay_nginx "docker-entrypoint..." 4 minutes ago Up 4 minutes 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp erentpay_nginx_1
5103d20d5489 erentpay_db "docker-entrypoint..." 4 minutes ago Exited (1) 4 minutes ago erentpay_db_1
0ae789206b30 erentpay_php "docker-entrypoint..." 4 minutes ago Up 4 minutes 9000/tcp erentpay_php_1
请,有人可以帮我吗?谢谢
Please, could someone help me? Thanks
推荐答案
首先创建文件 mysql.conf.d
.
mkdir/etc/mysql/mysql.conf.d
然后,重新启动.
酿造服务重启mysql
现在应该可以正常工作了.
It should work now.
这篇关于docker" mysqld:无法读取'/etc/mysql/mysql.conf.d'的目录(操作系统errno 2-没有这样的文件或目录)“的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!