【问题标题】:MariaDB incorrect string value error with utf8mb4 encodingMariaDB 不正确的字符串值错误与 utf8mb4 编码
【发布时间】:2019-11-04 03:43:23
【问题描述】:

我在 MariaDB 上将数据库和表字符集更改为 utf8mb4 和排序规则 utf8bm4_turkish_ci 以支持表情符号。虽然我可以通过终端连接到服务器来轻松插入和选择操作,但是当我想通过客户端(Web 应用程序或 MySQL 工作台)执行插入操作时出现“字符串值不正确”错误。此外,当我想用​​ select 显示数据时,它已损坏。与此同时,我注意到另一种情况;即使数据库和表不支持utf8mb4(我只使用utf8进行测试),我可以通过终端插入表情符号,甚至可以用select查看。

my.cnf文件上的定义如下;

[mysqld]
datadir        = /var/lib/mysql
socket         = /var/lib/mysql/mysql.sock
user           = mysql
symbolic-links = 0
old_passwords  = 0

innodb_file_format        = Barracuda
default-storage-engine    = InnoDB
innodb_file_per_table     = 1
innodb_open_files         = 500
innodb_thread_concurrency = 24
lower_case_table_names    = 1
character-set-server      = utf8mb4
collation-server          = utf8mb4_turkish_ci
init-connect              = 'SET NAMES utf8mb4 COLLATE utf8mb4_turkish_ci'

skip-character-set-client-handshake
innodb_large_prefix

[client]
default-character-set = utf8mb4

[mysql]
skip-secure-auth
default-character-set = utf8mb4

【问题讨论】:

  • 我很想将UTF-8 all the way through 链接为重复项。
  • 似乎您的 PHPMyAdmin(或您正在使用的任何东西)没有设置正确的服务器连接名称

标签: mysql mariadb mysql-workbench utf8mb4


【解决方案1】:

另外,表中的列必须是CHARACTER SET utf8mb4。请提供SHOW CREATE TABLE以便我们检查。

另外,从失败的客户端执行SHOW VARIABLES LIKE 'char%';;那里可能是错的。

【讨论】:

    猜你喜欢
    • 2018-03-29
    • 1970-01-01
    • 2019-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-08
    • 2019-07-20
    • 2015-03-10
    相关资源
    最近更新 更多