0

我有一个 Laravel 4 应用程序在我的本地机器上的 Vagrant 盒子上运行,另外我的现场演示服务器上也有相同的应用程序(使用 GitHub)。

现在,我有一个使用 MATCH 和 AGAINST 进行全文搜索的搜索功能。它在现场演示服务器上运行良好,但在本地机器上我得到一般错误:1271 Illegal mix of collat​​ions for operation 'match'。

我已经尝试了所有可以在网上找到的方法来解决这个问题,我检查了表和数据库排序规则,以及列本身,它们都匹配 utf8_unicode_ci。编码为utf8。

我很难理解为什么这可以在现场演示服务器上工作,但不能在我的本地机器上工作。

数据库引擎是 MyISAM。

有谁可以帮我离开这里吗。我真的坚持这个。

我在网上找到的 SequalPro 中运行了这个查询:

SELECT table_schema, table_name, column_name, character_set_name, collation_name
FROM information_schema.columns
WHERE collation_name = 'utf8_general_ci'
ORDER BY table_schema, table_name,ordinal_position;

并且发现information_schema、mysql和performance_schema都设置为utf8_general_ci。请问我该如何改变这个?Vagrant的最佳方式是什么?谢谢。

编辑:刚刚使用相同的查询检查了现场演示服务器,并且那里的 information_schema 也有 utf8_general_ci,而 mysql 排序规则有所不同。那么这如何影响它在本地而不是在服务器上。指向我的另一件事。

编辑:甚至尝试创建一个新数据库并重新迁移,但没有任何乐趣。这一定与 Vagrant 设置有关。

4

0 回答 0