SQLSTATE[HY000] [2054] 服务器向客户端发送了未知的字符集。请向开发人员报告
SQLSTATE[HY000] [2054] Server sent charset unknown to the client. Please, report to the developers
我正在尝试在 laravel 中创建一个登录系统。
我已经更新了环境。带有名为 kokodb 的数据库的文件。
但是,当我在 cmd 中 运行 这段代码 'php artisan migrate' 时,我遇到了以下错误:
在 Connection.php 行 647 中:
SQLSTATE[HY000] [2054] Server sent charset unknown to t he client.
Please, report to the developers (SQL: selec t * from
information_schema.tables where table_schema = kokodb and
table_name = migrations)
在 Connector.php 第 68 行:
SQLSTATE[HY000] [2054] Server sent charset unknown to t he client.
Please, report to the developers
在 Connector.php 第 68 行:
PDO::__construct(): Server sent charset (255) unknown t o the
client. Please, report to the developers
你能帮帮我吗?我在其他任何地方都没有找到解决这个问题的方法。
试试这个:
php artisan make:auth
然后
- php artisan 迁移
确保您的 .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
祝你好运!
您使用的 PHP 是什么版本?
根据 PHP 的错误追踪器,这应该在 7.0.19、7.1.5 和 7.2.0 中得到修复。
https://bugs.php.net/bug.php?id=74461
一些答案建议将服务器字符集从 utf8mb4
改回 utf8
,但这是个坏主意。 utf8
不支持所有有效的 unicode 字符,因此尝试保存包含特定字符(如某些表情符号集)的字符串会导致数据库错误。最好直接将 PHP 升级到更新的版本。
确保先创建数据库。然后,
当涉及到 .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
清除缓存。
它对我有用..祝你好运
<?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();
}
?>
如果您使用的是旧版本的 PHP(例如 5.6),则需要降级 MySQL 版本。版本 5 工作正常。
但是,由于 PHP 5.6 现已不受支持,如果需要,您应该升级 PHP 和您的应用程序。
我正在尝试在 laravel 中创建一个登录系统。 我已经更新了环境。带有名为 kokodb 的数据库的文件。 但是,当我在 cmd 中 运行 这段代码 'php artisan migrate' 时,我遇到了以下错误:
在 Connection.php 行 647 中:
SQLSTATE[HY000] [2054] Server sent charset unknown to t he client. Please, report to the developers (SQL: selec t * from information_schema.tables where table_schema = kokodb and table_name = migrations)
在 Connector.php 第 68 行:
SQLSTATE[HY000] [2054] Server sent charset unknown to t he client. Please, report to the developers
在 Connector.php 第 68 行:
PDO::__construct(): Server sent charset (255) unknown t o the client. Please, report to the developers
你能帮帮我吗?我在其他任何地方都没有找到解决这个问题的方法。
试试这个:
php artisan make:auth
然后
- php artisan 迁移
确保您的 .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
祝你好运!
您使用的 PHP 是什么版本?
根据 PHP 的错误追踪器,这应该在 7.0.19、7.1.5 和 7.2.0 中得到修复。
https://bugs.php.net/bug.php?id=74461
一些答案建议将服务器字符集从 utf8mb4
改回 utf8
,但这是个坏主意。 utf8
不支持所有有效的 unicode 字符,因此尝试保存包含特定字符(如某些表情符号集)的字符串会导致数据库错误。最好直接将 PHP 升级到更新的版本。
确保先创建数据库。然后,
当涉及到 .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
清除缓存。
它对我有用..祝你好运
<?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();
}
?>
如果您使用的是旧版本的 PHP(例如 5.6),则需要降级 MySQL 版本。版本 5 工作正常。
但是,由于 PHP 5.6 现已不受支持,如果需要,您应该升级 PHP 和您的应用程序。