gpt4 book ai didi

MySQL Workbench 连接编码

转载 作者:可可西里 更新时间:2023-11-01 06:49:50 30 4
gpt4 key购买 nike

在测试一些代码时,我偶然发现了以下 MySQL 错误:

Error Code: 1267. Illegal mix of collations (utf8_general_ci,IMPLICIT) and ( utf8mb4_general_ci,COERCIBLE) for operation '='

我在标准 MySQL UTF-8 归类列上使用 WHERE 语句,其中包含一个使用 4 个字节的字符。除非我理解错了,在阅读时,我发现了以下信息:

  • MySQL 最初的 UTF-8 实现不完整(最多支持 3 个字节)
  • 解决这个问题的方法是使用一种名为 utf8mb4 的新排序规则,它绝不是一种新的编码,而是 MySQL 仅使用它来修补其原始错误。

就我而言,我认为没有理由使用原始的 MySQL UTF-8 实现,因为它不完整。所以我做了一些服务器端配置以确保所有默认值都指向 utf8mb4。一切似乎都很好,但现在在我的应用程序上:我可以在我的表单中使用 🐼 字符,而不必担心 MySQL。

我现在的问题仍然是,当我连接 MySQL Workbench 时,编码似乎被强制为 UTF-8。因此,即使我的应用程序正常工作,如果我想直接在 MySQL Workbench 中运行测试,我也会收到“Illegal mix of collat​​ion”错误,除非我在启动应用程序后(在 Workbench 中)运行此修复程序:

SET NAMES 'utf8mb4' COLLATE 'utf8mb4_unicode_ci'

我发现这个老问题 ( MySQL Workbench charset ) 似乎无法覆盖设置,但即使我花了太多时间搜索配置,我还是不敢相信情况仍然如此?

最佳答案

目前,恐怕您将不得不忍受这一点。 MySQL 有一个 WL 可以将该编码重命名为 utf8(丢弃现有的 3 字节变体)。因此,在 MySQL Workbench 中保留 utf8 是有意义的,否则我们必须为不同的服务器使用不同的设置,这会使事情变得更加复杂。

关于MySQL Workbench 连接编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32685368/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com