Php Gitlab CI管道SQLSTATE[HY000][2002]没有这样的文件或目录(SQL:SHOW FULL TABLES,其中table_type='BASE table')

Php Gitlab CI管道SQLSTATE[HY000][2002]没有这样的文件或目录(SQL:SHOW FULL TABLES,其中table_type='BASE table'),php,mysql,laravel,phpunit,gitlab-ci,Php,Mysql,Laravel,Phpunit,Gitlab Ci,所有迁移都已成功运行。但是当执行phpunit时,我得到了错误SQLSTATE[HY000][2002]没有这样的文件或目录SQL:SHOW FULL TABLES,其中table_type='BASE table' 我甚至尝试用DB_HOST=127.0.0.1和localhost替换DB_HOST=mysql。迁移未成功运行,并面临errro SQLSTATE[HY000][2002]连接被拒绝的问题。SQL:从信息\u schema.tables中选择*,其中table\u schema=

所有迁移都已成功运行。但是当执行phpunit时,我得到了错误SQLSTATE[HY000][2002]没有这样的文件或目录SQL:SHOW FULL TABLES,其中table_type='BASE table'

我甚至尝试用DB_HOST=127.0.0.1和localhost替换DB_HOST=mysql。迁移未成功运行,并面临errro SQLSTATE[HY000][2002]连接被拒绝的问题。SQL:从信息\u schema.tables中选择*,其中table\u schema=my\u db和table\u name=Migrations,table\u type='BASE table'

我正在为此工作两天。任何帮助都将不胜感激

gitlab-ci.yml

在.env文件中使用以下更改:

然后在Database.php中添加文件夹位置:

'unix_socket' => env('DB_SOCKET', '/Applications/MAMP/tmp/mysql/mysql.sock'),
最后,尝试:

php artisan config:clear
php artisan migrate:install

希望这能解决您的问题。

最后,这件事解决了在phpunit阶段向脚本添加cp.env.env.testing的问题。 也更新了这些

“unix_socket”=>env'DB_socket',“/var/run/mysqld/mysqld.sock” database.php。 DB_端口:变量中的3306 gitlab-ci.yml


我试过这个。正如我提到的,如果我更改DB_HOST=localhost或127.0.0.1,我会被拒绝连接,如果DB_HOST=mysql,则会创建迁移,但在执行PHPUnit时,会出现错误,错误为SQLSTATE[HY000][2002]没有这样的文件或目录SQL:SHOW FULL TABLES,其中table_type='BASE table'。我使用的是Linux而不是mac for unix_socket。我尝试使用unix_socket=/var/run/mysqld/mysqld.sock,但在未创建迁移的情况下连接被拒绝。我已编辑了答案,您现在可以看到它。
'unix_socket' => env('DB_SOCKET', '/Applications/MAMP/tmp/mysql/mysql.sock'),
php artisan config:clear
php artisan migrate:install
stages:
  - build
  - codequality
  - test

variables:
  MYSQL_DATABASE: $MYSQL_DATABASE
  MYSQL_ROOT_PASSWORD: $MYSQL_ROOT_PASSWORD
  MYSQL_PASSWORD: $MYSQL_ROOT_PASSWORD
  DB_HOST: mysql
  DB_DATABASE: $MYSQL_DATABASE
  DB_USERNAME: $MYSQL_USER
  DB_PASSWORD: $MYSQL_ROOT_PASSWORD
  DB_PORT: 3306

cache:
  paths:
    - vendor/
    - .env

image: lorisleiva/laravel-docker:latest

composer:
  stage: build
  script:
    - composer update --prefer-dist --no-ansi --no-interaction --no-progress --no-scripts
    - cp .env.example .env
    - php artisan key:generate
  artifacts:
    paths:
      - vendor/
      - .env
    expire_in: 2 days
    when: always
  cache:
    key: ${CI_COMMIT_REF_SLUG}-composer
    paths:
      - vendor/
psalm:
  stage: codequality
  dependencies:
    - composer
  script:
    - ./vendor/bin/psalm
  artifacts:
    paths:
      - ./storage/logs
    expire_in: 1 days
    when: on_failure

codestyle:
  stage: codequality
  dependencies: []
  script:
    - phpcs --standard=PSR2 --extensions=php app

phpunit:
  stage: test
  services:
    - mysql:5.7
  dependencies:
    - composer
  script:
    - cp .env .env.testing
    - php artisan config:clear
    - php artisan migrate
    - php ./vendor/bin/phpunit --testsuite=Feature
  artifacts:
    paths:
      - ./storage/logs # for debugging
    expire_in: 1 days
    when: on_failure