Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php mysql服务器在安装迁移时出错(laravel)_Php_Mysql_Laravel_Pdo_Migrate - Fatal编程技术网

Php mysql服务器在安装迁移时出错(laravel)

Php mysql服务器在安装迁移时出错(laravel),php,mysql,laravel,pdo,migrate,Php,Mysql,Laravel,Pdo,Migrate,因此,我在我的laravel文件夹上使用cmd,并尝试这样做(php artisan migrate:install)。出现了两个错误 [PDOException]SQLSTATE[HY000][2006]MySQL服务器已经消失 [ErrorException]PDO::_construct():MySQL服务器已离开 谁能解释一下我做错了什么吗?您在查询过程中失去了与服务器的SQL连接。这是暂时的问题。这是因为max\u allowed\u packet的默认设置非常低 将my.cn

因此,我在我的laravel文件夹上使用cmd,并尝试这样做(php artisan migrate:install)。出现了两个错误

  • [PDOException]SQLSTATE[HY000][2006]MySQL服务器已经消失

  • [ErrorException]PDO::_construct():MySQL服务器已离开


  • 谁能解释一下我做错了什么吗?

    您在查询过程中失去了与服务器的SQL连接。这是暂时的问题。这是因为
    max\u allowed\u packet
    的默认设置非常低

    my.cnf
    (在[mysqld]下)中的
    max\u allowed\u数据包提高到8或16M通常可以解决此问题

    [mysqld]
    max_allowed_packet=16M
    
    注意:这可以在服务器运行时设置。完成后,您需要
    重新启动
    MySQL服务


    使用:
    设置允许的全局最大数据包=104857600
    。我的值将其设置为100MB。

    这不是Laravel的问题,而是MySQL的一般问题。可能服务器没有运行。你确定你在后台运行MySQL吗

    检查此链接:

    在系统中执行以下检查:

  • 数据库引擎正在运行
  • 您已经创建了数据库
  • 您已经创建了一个用户并授予了该数据库的权限
  • 您已经在Laravel的.env文件中设置了用户和数据库 在此之后,再次尝试运行migrations命令,即:

    php artisan migrate
    
    如前所述


    如果有帮助,请告诉我们:)

    对我来说,问题似乎是我给Laravel项目的
    .env
    文件分配了错误的端口。后来,当我将它与
    my.cnf
    文件匹配时,它成功了


    我正在使用Ubuntu16.04+nginx+MariaDB+Laravel项目。

    在我的例子中,问题是我将
    DB\u主机
    更改为
    localhost
    ,但通过保持
    default
    ie
    127.0.0.1
    和端口为default
    3306
    进行了修复。 以下是xampp中本地主机的配置:

    DB_CONNECTION=mysql
    DB_HOST=127.0.0.1
    DB_PORT=3306
    DB_DATABASE=hmb
    DB_USERNAME=root
    DB_PASSWORD=
    

    尽管我使用
    localhost:8081/phpmyadmin
    访问我的
    db
    如果有人正在寻找解决方案,请尝试清理您所有的缓存,您可以手动删除引导/cache文件夹中的缓存文件。

    除了其他答案外:

    • 尝试在
      .env
      config/database.php
      中将
      localhost
      域更改为
      127.0.0.1
    • 另外,如果您使用的是
      git
      ,请检查
      git status
      ,查看是否更改了任何不需要的文件

    因为在我的例子中,文件
    config/database.php
    中mysql连接配置的
    options
    数组不知何故是空数组。我签出了
    git checkout config/database.php
    文件,它开始正常工作

    我遇到了同样的问题。解决方案是从3306或80中删除mysql端口号,并将其保留为空 归档

    .env
    DB\u PORT=3306
    to
    DB\u PORT=
    等等


    database.php
    'port'=>env('DB_port','3306'),
    'port'=>env('DB_port',''),

    我的解决方案将修复DB_主机参数。事实上,我使用PHPStorm,并在.env中设置公共url,以便使用IDE中的DB工具和这个破碎的Laravel。
    因此,我将DB_主机更改为localhost,Laravel现在可以正常工作。

    同样的问题。我为ENV中的DB连接分配了错误的端口。