快速提问,因为我以前从未遇到过这个问题。
在虚拟主机上我正在运行查询:
设置名称 '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/