mysql - Windows Docker 无法通过套接字连接到本地 MySQL 服务器
问题描述
我在 windows Docker 上有一个项目,当我运行时docker-compose up
,它给了我下面的错误
php_1 | 主机无法访问数据库 tma:用户的 localhost:drupal
php_1 | ERROR 2002 (HY000): 无法通过套接字 '/run/mysqld/mysqld.sock' 连接到本地 MySQL 服务器 (2)
这是 docker-compose.yml
version: "3"
services:
mariadb:
image: wodby/mariadb:$MARIADB_TAG
container_name: "${PROJECT_NAME}_mariadb"
stop_grace_period: 30s
environment:
MYSQL_ROOT_PASSWORD: $DB_ROOT_PASSWORD
MYSQL_DATABASE: $DB_NAME
MYSQL_USER: $DB_USER
MYSQL_PASSWORD: $DB_PASSWORD
volumes:
- ./dev_tools/mariadb-init:/docker-entrypoint-initdb.d # Place init .sql file(s) here.
php:
image: wodby/drupal-php:$PHP_TAG
container_name: "${PROJECT_NAME}_php"
environment:
PHP_SENDMAIL_PATH: /usr/sbin/sendmail -t -i -S mailhog:1025
# PHP_SENDMAIL_PATH: /usr/sbin/sendmail -t -i -S opensmtpd:25
DB_HOST: $DB_HOST
DB_PORT: $DB_PORT
DB_USER: $DB_USER
DB_PASSWORD: $DB_PASSWORD
DB_NAME: $DB_NAME
DB_DRIVER: $DB_DRIVER
PHP_FPM_USER: wodby
PHP_FPM_GROUP: wodby
COLUMNS: 80 # Set 80 columns for docker exec -it.
volumes:
- ./:/var/www/html/
command: sh /var/www/html/dev_tools/php-entrypoint.bash
apache:
image: wodby/apache:$APACHE_TAG
container_name: "${PROJECT_NAME}_apache"
depends_on:
- php
environment:
APACHE_LOG_LEVEL: debug
APACHE_BACKEND_HOST: php
APACHE_VHOST_PRESET: php
APACHE_DOCUMENT_ROOT: /var/www/html/docroot
volumes:
- ./:/var/www/html
labels:
- "traefik.http.routers.${PROJECT_NAME}_apache.rule=Host(`${PROJECT_BASE_URL}`)"
解决方案
推荐阅读
- reactjs - 在 reactsjs 中加载 JFIF - Jpeg 图像
- php - PHP 8 shell:无法输入非 Ascii 字符
- excel - 虽然代码会逐步执行,但如果运行它会崩溃
- android - Google Map 新地图渲染器问题(play-services-maps:18.0.0)
- mongodb - 无法连接到mongodb数据库
- reactjs - 如何解决 React Hooks 订单错误?
- google-apps-script - Google 表格中的粗体特定文本
- core-graphics - 如何让 NSTextField 的性能与 NSAttributedString 一致?
- reactjs - 如何在 ReactJs 的标签中显示 base64 字符串
- excel - Pandas 将文件名添加到 Excel 组合文件