MySQL - 拒绝运行集合名称?

标签 mysql

快速提问,因为我以前从未遇到过这个问题。

在虚拟主机上我正在运行查询:

设置名称 'utf8'

这将返回以下错误:

Error: Unknown system variable 'NAMES'

我以前没有遇到过这个。在尝试将 CURRENT_TIMESTAMP 指定为默认列值以及设置表的排序规则时,我遇到了类似的错误。

在此之前,我正在运行的 MySQL 查询实际上已经处理了数百个托管帐户。在联系房东时,我被骗了,说这可能是我的密码。

这可能是一个狡猾的 MySQL 安装吗?主机说他们正在运行 MySQL5

最佳答案

SET NAMES 从 MySQL 4.1 开始可用,它对字符集处理和完整的 UTF-8 支持进行了大规模更改。可以肯定的是,您面前的 MySQL 版本 <4.1。试试看

SELECT VERSION();

正如 a1ex07 所推荐的那样。

旧版本的 MySQL 只能处理 8 位字符数据。它们仍然可以将 UTF-8 数据存储为字节序列,但它们并不知道这一点。在 MySQL <4.1 中存储 UTF-8 有几个缺点。例如,字符串长度可以超过给定的列限制,但字符数应该适合。现代字符串比较函数也不存在(它们正确比较特殊字符和不同的书写方式,即德语中的“ß”与“ss”)。

关于MySQL - 拒绝运行集合名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7671111/

相关文章:

mysql - 在触发器中如何将值插入到另一个表中但检查值是否已存在

php - 从一个表中获取名称与另一个表中的匹配 ID?

MySQL 左连接计数

php - 将 MySQL 更改推送/发送给客户端

php - 从 imap_search() 读取电子邮件时出现额外字符

mysql - 如何在列表中显示当前月份的项目,其中当前月份的日期在新年的 A 和 B 之间

java - MySQLSyntaxError 插入 MySQL 数据库

PHP在同一页面更新MySQL数据库

mysql - 需要MySQL根据另一列的顺序按一列分组

php - 用于插入 MySql 数据的网站中的 PHP SESSION 是否安全