我正在尝试在 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.jsonCOPY composer.lock composer.json /var/www/# Set working directoryWORKDIR /var/www# Install dependenciesRUN 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 cacheRUN apt-get clean && rm -rf /var/lib/apt/lists/*# Install extensionsRUN docker-php-ext-install pdo_mysql mbstring zip exif pcntlRUN 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 composerRUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer# Add user for laravel applicationRUN groupadd -g 1000 wwwRUN useradd -u 1000 -ms /bin/bash -g www www# Copy existing application directory contentsCOPY . /var/www# Copy existing application directory permissionsCOPY --chown=www:www . /var/www# Change current user to wwwUSER www# Expose port 9000 and start php-fpm serverEXPOSE 9000CMD ["php-fpm"]
2 回答
动漫人物
TA贡献1815条经验 获得超10个赞
您需要连接到在 docker 容器中运行的数据库。
因此,您可能需要在 PHP 代码中使用 tcp(在您的情况下在 13306 端口上运行)而不是 unix 套接字。
侃侃尔雅
TA贡献1801条经验 获得超16个赞
问题是 mysql 客户端无法访问您的 mysql 实例的虚拟主机。
您应该在 Laravel 的 .env 文件中设置该信息。
DB_CONNECTION=mysql
DB_HOST=db
DB_PORT=13306
DB_DATABASE=merchline
DB_USERNAME=*your_mysql_user*
DB_PASSWORD=********
- 2 回答
- 0 关注
- 163 浏览
添加回答
举报
0/150
提交
取消