Laravel 6.0 迁移 - SQLSTATE[HY000] [2002] 没有这样的文件或目录

Posted

技术标签:

【中文标题】Laravel 6.0 迁移 - SQLSTATE[HY000] [2002] 没有这样的文件或目录【英文标题】:Laravel 6.0 migration - SQLSTATE[HY000] [2002] No such file or directory 【发布时间】:2020-01-23 18:52:06 【问题描述】:

我正在尝试使用 laravel 创建迁移,但出现此错误:

 Illuminate\Database\QueryException  : SQLSTATE[HY000] [2002] No such file or directory (SQL: select * from information_schema.tables where table_schema = tutories and table_name = migrations and table_type = 'BASE TABLE')

  at /Users/ivanortega/.bitnami/stackman/machines/xampp/volumes/root/htdocs/codi/UVIC/Tutories/vendor/laravel/framework/src/Illuminate/Database/Connection.php:665
    661|         // If an exception occurs when attempting to run a query, we'll format the error
    662|         // message to include the bindings with SQL, which will make this exception a
    663|         // lot more helpful to the developer instead of just the database's errors.
    664|         catch (Exception $e) 
  > 665|             throw new QueryException(
    666|                 $query, $this->prepareBindings($bindings), $e
    667|             );
    668|         
    669| 

  Exception trace:

  1   PDOException::("SQLSTATE[HY000] [2002] No such file or directory")
      /Users/ivanortega/.bitnami/stackman/machines/xampp/volumes/root/htdocs/codi/UVIC/Tutories/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:70

  2   PDO::__construct("mysql:unix_socket=/var/mysql/mysql.sock;dbname=tutories", "root", "", [])
      /Users/ivanortega/.bitnami/stackman/machines/xampp/volumes/root/htdocs/codi/UVIC/Tutories/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:70

我已尝试更改主机名和套接字。没有任何效果

这是我的 .env 配置文件:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=tutories
DB_USERNAME=root
DB_PASSWORD=
DB_SOCKET=/var/mysql/mysql.sock

我检查了套接字是否存在,并且我还创建了一个指向 /tmp/mysql.sock 的链接。 我更改了 php.ini 文件:

pdo_mysql.default_socket=/var/mysql/mysql.sock

程序版本:

XAMPP: 7.3.9
PHP: 7.3.6
MariaDB: 10.0.34
MAC:MacOS Mojave v10.14.6

【问题讨论】:

composer dumpa , php artisan optimize:clear, php artisan config:cache ? @Vipertecpro 没什么,同样的错误.. 删除所有db并重新迁移php artisan migrate:refresh --seed @Vipertecpro 什么都没有.. 我认为这都是关于新的 xapp vm 【参考方案1】:

最后我找到了解决方案,macOS 中最新版本的 xampp 可与虚拟机配合使用,因此当我运行迁移时,它在我的计算机上获取数据库,而不是在本地计算机上。 在没有虚拟机的情况下下载最新版本有效!

【讨论】:

【参考方案2】:

这里我有两个解决方案

    改变你的 .env 文件

    DB_HOST=127.0.0.1

    DB_HOST=localhost

    然后运行以下命令清除配置文件 php 工匠配置:清除

    解决此问题的第二种方法是在 .env 文件中添加以下行

    DB_SOCKET=/Applications/MAMP/tmp/mysql/mysql.sock

【讨论】:

以上是关于Laravel 6.0 迁移 - SQLSTATE[HY000] [2002] 没有这样的文件或目录的主要内容,如果未能解决你的问题,请参考以下文章

工匠迁移结果:SQLSTATE [HY000]:一般错误:LUMEN / LARAVEL 上的 1005

SQLSTATE [23000]:完整性约束违规:1452 无法在 laravel 迁移中添加或更新子行

Laravel 5.7 迁移错误:SQLSTATE[HY000] [2002] No such file or directory

迁移 php artisan laravel 5.2 [PDOException] SQLSTATE[42S01]

SQLSTATE[HY000] [2002] 权限被拒绝 Laravel PDO 驱动程序(凭证通过工匠迁移工作)

Laravel 环境配置未加载,迁移失败 - SQLSTATE[HY000] [2002] No such file or directory