通过迁移在laravel中创建登录系统

时间:2018-10-26 06:11:54

标签: php laravel login system migrate

我正在尝试在laravel中创建一个登录系统。 我已经更新了环境。文件名为kokodb的数据库。 但是,当我在cmd中运行此代码“ php artisan migration ”时,出现了以下错误:

在Connection.php第647行中:

  

SQLSTATE [HY000] [2054]服务器向客户端发送了未知的字符集。   请向开发者报告(SQL:selec t *来自   information_schema.tables其中table_schema = kokodb和   table_name =迁移)

在Connector.php第68行中:

  

SQLSTATE [HY000] [2054]服务器向客户端发送了未知的字符集。   请向开发商报告

在Connector.php第68行中:

  

PDO :: __ construct():服务器发送的字符集(255)未知   客户。请向开发商报告

能帮我吗?在其他任何地方,我都没有找到解决此问题的任何方法。

6 个答案:

答案 0 :(得分:2)

确保先创建数据库。然后, 当涉及到 .env 文件中的数据库时,请确保您有正确的参数。这是本地主机的场景:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306 (this can be different when database changed.)
DB_DATABASE=your_database_name
DB_USERNAME=your_username
DB_PASSWORD=your_pass

还运行:php artisan config:cache 清除缓存。

它对我有用..祝你好运

答案 1 :(得分:1)

<?php

$servername = "localhost";

$username = "root";

$password = "";



try{

    // servername and database name
    // my port no is 3307 check your's
    $conn = new PDO('mysql:host = $servername; dbname=project1; ', $username, $password );


    // set the PDO error mode
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "Connected Successfully";

}
catch(PDOException $e){

    
    echo "Your Connection failed: ".$e->getMessage();
}


?>

答案 2 :(得分:0)

请确保.env文件中的数据库参数正确。本地主机的情况如下:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=your_database_name
DB_USERNAME=your_username
DB_PASSWORD=your_pass

.env中进行任何更改后,请在控制台中使用php artisan config:cache

也在config / database.php中设置

    'charset'     => 'utf8mb4',
    'collation'   => 'utf8mb4_unicode_ci',
    'modes'       => [
                'ONLY_FULL_GROUP_BY',
                'STRICT_TRANS_TABLES',
                'NO_ZERO_IN_DATE',
                'NO_ZERO_DATE',
                'ERROR_FOR_DIVISION_BY_ZERO',
                'NO_ENGINE_SUBSTITUTION',
            ],

然后:php artisan config:cache

祝你好运!

答案 3 :(得分:0)

您正在使用什么版本的PHP?

根据PHP的bugtracker,此问题应从7.0.19、7.1.5和7.2.0开始修复。

https://bugs.php.net/bug.php?id=74461

Arun的链接提到了将服务器字符集改回utf8的解决方案,但是utf8mb4确实是更可取的,因为它提供了完全的Unicode支持。

答案 4 :(得分:0)

如果您使用的是旧版本的 PHP(例如 5.6),那么您需要降级您的 MySQL 版本。版本 5 运行良好。

但是,由于 PHP 5.6 现在不再支持,如果需要,您应该升级您的 PHP 和您的应用程序。

答案 5 :(得分:-1)