Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.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
无法连接到MySQL:服务器已向客户端发送未知字符集。请向开发者报告-SamplePage.php_Php_Mysql_Utf 8 - Fatal编程技术网

无法连接到MySQL:服务器已向客户端发送未知字符集。请向开发者报告-SamplePage.php

无法连接到MySQL:服务器已向客户端发送未知字符集。请向开发者报告-SamplePage.php,php,mysql,utf-8,Php,Mysql,Utf 8,由于某些原因,当从以下链接打开Chrome浏览器上的SamplePage.php时,我无法在sample数据库上创建employeeTable: 我能够从AWS创建EC2实例并在以下链接上安装Web服务器教程: 我得到以下错误: 无法连接到MySQL:服务器已向客户端发送未知字符集。 请向开发商汇报 据我所知,AWS Linux AMI映像在默认情况下有一个UTF-8字符集,在连接到MySQL DB实例后,我在我的EC2实例上获得了运行此命令的输出: 显示像“char%”这样的变量 Va

由于某些原因,当从以下链接打开Chrome浏览器上的
SamplePage.php
时,我无法在
sample
数据库上创建
employeeTable

我能够从AWS创建EC2实例并在以下链接上安装Web服务器教程:

我得到以下错误:

无法连接到MySQL:服务器已向客户端发送未知字符集。 请向开发商汇报

据我所知,AWS Linux AMI映像在默认情况下有一个UTF-8字符集,在连接到MySQL DB实例后,我在我的EC2实例上获得了运行此命令的输出:

显示像“char%”这样的变量

  Variable_name            | Value                                     
|+--------------------------+-------------------------------------------+
| character_set_client     | utf8                                      |
| character_set_connection | utf8                                      |
| character_set_database   | utf8mb4                                   |
| character_set_filesystem | binary                                    |
| character_set_results    | utf8                                      |
| character_set_server     | utf8mb4                                   |
| character_set_system     | utf8                                      |
| character_sets_dir       | /rdsdbbin/mysql-8.0.17.R1/share/charsets/ |
我还将Putty
/.bash_profile
设置为使用UTF-8字符集,输入配置如下:

export LC_CTYPE="en_US.UTF-8"
我不确定发生了什么,因为我相信,我遵循了关于如何创建DB实例和从该链接链接到EC2实例的完整教程:

这要看情况而定

您是否尚未将任何文本放入表格中,然后:

ALTER TABLE t CONVERT TO CHARACTER SET utf8mb4;
如果表中有数据,则有大约3种不同的方法来更改字符集。提示如下:

如果你有垃圾出来,那就看情况而定

您是否尚未将任何文本放入表格中,然后:

ALTER TABLE t CONVERT TO CHARACTER SET utf8mb4;
如果表中有数据,则有大约3种不同的方法来更改字符集。提示如下:


如果出现了垃圾,那么请参见

发现所有这些更改字符集的工作以及确保数据库中的字符集设置正确只是与另一个问题相关,即未正确安装和启用扩展名
mysqli
。我还将php版本升级到7.2,这可能也解决了这个问题,但我不能完全确定。也许有人可以根据我所做的来验证修复程序是什么?

结果表明,所有这些关于更改字符集和确保数据库中的字符集设置正确的工作只是依赖于另一个问题,即
mysqli
扩展未正确安装和启用。我还将php版本升级到7.2,这可能也解决了这个问题,但我不能完全确定。也许有人可以根据我所做的来验证修复程序是什么?

我通过删除php56并安装php72来解决这个问题。以下是命令

sudo yum-y删除php*

sudo yum安装php72

sudo yum安装php72 mysqlnd


sudo apachectl restart

我通过删除php56并安装php72解决了这个问题。以下是命令

sudo yum-y删除php*

sudo yum安装php72

sudo yum安装php72 mysqlnd



sudo apachectl restart

各种组件(客户端、服务器等)的版本是什么?您最近是否更改了云服务?我的客户端是Windows 10。AWS EC2实例是Linux AMI版本1,DB实例是MySQL 8.0.17。这是我第一次体验任何云服务。我注意到character\u set\u客户端、character\u set\u连接、character\u set\u结果和character\u set\u系统是utf8,而character\u set\u数据库和character\u set\u服务器是utf8mb4。我不知道这是否有区别?我发现了一篇文章:这可能有用,但我没有足够的经验来解释它,对不起。除非您对“utf8mb3”有特殊的需求,否则您应该使用“utf8mb4”。各种组件(客户端、服务器等)的版本是什么?您最近是否更改了云服务?我的客户端是Windows 10。AWS EC2实例是Linux AMI版本1,DB实例是MySQL 8.0.17。这是我第一次体验任何云服务。我注意到character\u set\u客户端、character\u set\u连接、character\u set\u结果和character\u set\u系统是utf8,而character\u set\u数据库和character\u set\u服务器是utf8mb4。我不知道这是否有区别?我发现了一篇文章:这可能有用,但我没有足够的经验来解释它,对不起。除非您对“utf8mb3”有特殊的需求,否则您应该使用“utf8mb4”。我尝试运行命令
ALTER TABLE t CONVERT to CHARACTER SET utf8mb4
但出现以下错误:
错误1046(3D000):未选择数据库
I输入
使用样本然后我运行了
altertable t转换为字符集utf8mb4我得到以下错误:
错误1146(42S02):表'sample.t'不存在
。错误是正确的,表不存在。编写
SamplePage.php
是为了创建
employeeTable
,但是由于
sample
数据库上的字符集不同(即UTF-8与UTF8mb4相比),我无法创建
employeeTable
。只想用
employeeTable
创建
sample
数据库,就像
SamplePage.php
设计的那样。抱歉,我之前不清楚。另外,是否可以将示例数据库更改为utf-8字符集而不是utf8mb4?有命令更改它吗?也许,这将解决字符集未知的问题。我能够通过运行
集合名称“utf8mb3”,将
字符集服务器
字符集数据库
设置为
utf8mb3
utf8
命令和
设置字符集_set_server='utf8mb3'
命令,但我仍然收到错误
连接到MySQL失败:服务器向客户端发送了未知字符集。请向开发人员报告创建表时出现的错误。
也许,我必须对
SamplePage.php
文件做些什么才能正确设置字符集。我放置了标题
标题(“内容类型:text/html;charset=UTF-8”)