我正在尝试在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)未知 客户。请向开发商报告
能帮我吗?在其他任何地方,我都没有找到解决此问题的任何方法。
答案 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)