当前位置: 首页 > 知识库问答 >
问题:

在Mac php工匠上设置Laravel迁移错误:没有这样的文件或目录[重复]

袁轶
2023-03-14

>

  • 将一个完美工作的laravel项目从git拉到运行MAMP的mac中。项目在linux机器上完美运行。
  • 作曲家安装
  • php工匠迁移,得到以下错误:

    [PDOException]                                    
    SQLSTATE[HY000] [2002] No such file or directory 
    

    注意:php -v 是 5.5,mysql -v 是 5.5 从终端 这是我的配置/数据库的一部分.php

        'mysql' => array(
            'driver'    => 'mysql',
            'host'      => 'localhost',
            'database'  => 'essays',
            'username'  => 'root',
            'password'  => 'root',
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
        ),
    

    我尝试用 127.0.0.1 替换本地主机,但无济于事。请帮忙..

    编辑:我在php中添加了这三行.ini

    mysql.default_socket = /var/run/mysqld/mysqld.sock
    
    mysqli.default_socket = /var/run/mysqld/mysqld.sock
    
    pdo_mysql.default_socket = /var/run/mysqld/mysqld.sock
    

    我还添加了这个符号链接:

    sudo mkdir /var/mysql
    cd /var/mysql && sudo ln -s /Applications/XAMPP/xamppfiles/var/mysql/mysql.sock
    

    但这并没有解决问题。我还从git中提取了一个新的laravel项目,在< code>composer install和< code>php artisan migrate之后遇到了同样的错误

     [PDOException]                                    
      SQLSTATE[HY000] [2002] No such file or directory 
    

    mac版本是10.7.4

  • 共有3个答案

    钮兴安
    2023-03-14

    有同样的问题,但它现在对我有用。

    如果有人仍然有问题,试试这个:

    • 确保您的引导程序/启动.php包含您的实际主机名,而不是虚拟主机的名称。在终端中输入主机名以获取您的主机名。由于它是一个数组,我相信您可以输入主机名和虚拟主机的名称。
    • 将“本地主机”替换为“127.0.0.1”。
    龙佐
    2023-03-14

    首先,获取您的unix_socket位置。

    $ mysql -uroot -p
    

    输入您的mysql密码,从命令行登录您的mysql服务器。

    mysql> show variables like '%sock%';
    +---------------+---------------------------------------+
    | Variable_name | Value                                 |
    +---------------+---------------------------------------+
    | socket        | /opt/local/var/run/mysql5/mysqld.sock |
    +---------------+---------------------------------------+
    

    您的unix_soket可能不同。

    然后,您有两种解决方案来解决您的问题:

    (1) 更改config/database.php

        'mysql' => array(
        'driver'    => 'mysql',
        'host'      => 'localhost',
        'database'  => 'essays',
        'username'  => 'root',
        'password'  => 'root',
        'unix_socket'   => '/opt/local/var/run/mysql5/mysqld.sock', //Your sock got from above
        'charset'   => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix'    => '',
    ),
    

    (2)更改php.ini,从中找到你的php.ini文件

    <? phpinfo();
    

    你可能会安装许多不同版本的php,所以请不要假设你的php.ini文件位置,从你的phpinfo中获取;

    更改php.ini:

    mysql.default_socket = /opt/local/var/run/mysql5/mysqld.sock
    
    mysqli.default_socket = /opt/local/var/run/mysql5/mysqld.sock
    
    pdo_mysql.default_socket = /opt/local/var/run/mysql5/mysqld.sock
    

    然后重启apache或php-fpm。

    公良信然
    2023-03-14

    如果您使用的是MAMP,请确保添加<code>unix_socket</code>键,该键的路径值为<code>mysql。sock驻留在MAMP中。

    'mysql' => array(
            'driver'    => 'mysql',
            'host'      => 'localhost',
            'unix_socket'   => '/Applications/MAMP/tmp/mysql/mysql.sock',
            'database'  => 'database',
            'username'  => 'root',
            'password'  => 'root',
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
        ),
    
     类似资料:
    • 当我尝试使用“php artisan migrate”命令迁移Laravel 5中的表时,出现以下错误: “SQLSTATE[HY000][2002]中没有此类文件或目录…”/供应商/laravel/framework/src/light/Database/Connectors/Connector。菲律宾:47 我的. env文件包含以下默认设置: 我的数据库。php文件将mysql列为默认数据库

    • 问题内容: 这个问题已经在这里有了答案 : MySQL连接无法正常工作:2002没有这样的文件或目录 (21个答案) 4年前关闭。 从git中提取一个运行良好的laravel项目到运行MAMP的Mac中。项目在Linux机器上完美运行。 作曲家安装 php artisan migration,出现以下错误: SQLSTATE[HY000] [2002] No such file or direct

    • 问题内容: 我正在使用Ubuntu 14.04。我有以下代码: 但我不断收到以下错误: python程序和图像都在同一位置。可能是什么问题? 问题答案: 您需要安装:

    • 我上传我的项目到cpanel.和我把文件放在公共文件夹在home/user/public_html.和其他在home/user/laravel文件夹 public_html我有一个存储文件夹。但我上传的文件到home/user/laravel/存储和符号链接需要文件夹公共在home/user/laravel/ 我不太明白这个文件系统

    • 问题内容: 我想在我的一个golang控制器中指定一个html模板。我的目录结构是这样的 我想为请求/ new加载first.html。我已经将NewHandler用于url / new,并且当/ new请求到达并且在controller.go中时,NewHandler函数正在执行。这是我的代码 但是我遇到一个错误 请帮助我删除此错误。提前致谢 问题答案: 我已经通过提供html的绝对路径解决了这

    • 我正在尝试编写一个程序,使用Scala运行Linux命令。 我写了一段代码来运行命令的功能。 代码片段 当我尝试运行命令