如何修复'ERROR 2002 (HY000): Can't connect to local

我正在尝试在 Laravel 项目中安装 docker。一切似乎都正常,除了当我尝试将数据导入漫画时,出现以下错误:


我导入宽度命令行:


docker-compose exec app php artisan db:import --local


我还必须说,这是我试图导入的大量数据


ERROR 2002 (HY000): 无法通过 socket '/var/run/mysqld/mysqld.sock' 连接到本地 MySQL 服务器 (2 "No such file or directory")


我在互联网上进行了研究以找到解决方案。我看到了很多,但没有一个和我一起走过。


我使用docker来创建一个开发环境。这是我的配置


文件

FROM php:7.1.20-fpm


# Copy composer.lock and composer.json

COPY composer.lock composer.json /var/www/


# Set working directory

WORKDIR /var/www


# Install dependencies

RUN apt-get update && apt-get install -y \

    build-essential \

    mysql-client \

    libpng-dev \

    libjpeg62-turbo-dev \

    libfreetype6-dev \

    locales \

    zip \

    jpegoptim optipng pngquant gifsicle \

    vim \

    unzip \

    git \

    curl


# Clear cache

RUN apt-get clean && rm -rf /var/lib/apt/lists/*


# Install extensions

RUN docker-php-ext-install pdo_mysql mbstring zip exif pcntl

RUN docker-php-ext-configure gd --with-gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ --with-png-dir=/usr/include/

RUN docker-php-ext-install gd


# Install composer

RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer


# Add user for laravel application

RUN groupadd -g 1000 www

RUN useradd -u 1000 -ms /bin/bash -g www www


# Copy existing application directory contents

COPY . /var/www


# Copy existing application directory permissions

COPY --chown=www:www . /var/www


# Change current user to www

USER www


# Expose port 9000 and start php-fpm server

EXPOSE 9000

CMD ["php-fpm"]


慕侠2389804
浏览 164回答 2
2回答

动漫人物

您需要连接到在 docker 容器中运行的数据库。因此,您可能需要在 PHP 代码中使用 tcp(在您的情况下在 13306 端口上运行)而不是 unix 套接字。

侃侃尔雅

问题是 mysql 客户端无法访问您的 mysql 实例的虚拟主机。您应该在 Laravel 的 .env 文件中设置该信息。DB_CONNECTION=mysqlDB_HOST=dbDB_PORT=13306DB_DATABASE=merchlineDB_USERNAME=*your_mysql_user*DB_PASSWORD=********
打开App,查看更多内容
随时随地看视频慕课网APP