我不知道这里发生了什么。我的一个数据库服务器在尝试创建一个函数(适用于所有其他服务器)时给我这个错误:
我的职能是
delimiter $$
CREATE DEFINER=`root`@`%` FUNCTION `getreadablesize`(`Width` DECIMAL(13,4),`Height` DECIMAL(13,4),`Type` VARCHAR(64)) RETURNS varchar(64) CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci
BEGIN
RETURN concat(trim(trailing'.'
from trim(trailing'0'
from`Width`)),'\"',
if(`Height`>0,concat(' × ',trim(trailing'.'
from trim(trailing'0'
from`Height`)),'\"'),''),
if(`Type`>'',concat(' ',`Type`),''));
END$$
准确的错误信息是
0 row(s) affected, 2 warning(s): 1300 Invalid big5 character string: ' \xC3\x97 ' 1300 Invalid big5 character string: 'C39720'
我的数据库中没有一个是中文的,或者曾经使用过 Big5 字符集?
如果我复制我的模式创建代码,我会得到:
CREATE DATABASE `sterling` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci */;
编辑: 如果我将时间符号更改为其他符号,它会起作用,但是对于为什么它被视为 Big5 而不是 uft8 仍然没有任何意义
编辑: 显然有些不对劲。如果我运行以下查询,这就是我得到的:
SHOW VARIABLES LIKE 'character_set%';
+-----------------------------+------------------------------+
| 'character_set_client', | 'big5' |
+-----------------------------+------------------------------+
| 'character_set_connection', | 'big5' |
+-----------------------------+------------------------------+
| 'character_set_database', | 'utf8mb4' |
+-----------------------------+------------------------------+
| 'character_set_filesystem', | 'binary' |
+-----------------------------+------------------------------+
| 'character_set_results', | 'big5' |
+-----------------------------+------------------------------+
| 'character_set_server', | 'utf8mb4' |
+-----------------------------+------------------------------+
| 'character_set_system', | 'utf8' |
+-----------------------------+------------------------------+
| 'character_sets_dir', | '/usr/share/mysql/charsets/' |
+-----------------------------+------------------------------+
但我的 my.cnf
显然有 default-character-set = utf8mb4
及其在每个适用部分下的所有变体...我将重新启动我的 MySQL 服务器,因为某物绝对是一只脚。
最佳答案
拜托。我重新启动了服务器,但它再也没有回来。我尝试了几乎所有存在的 MySQL 服务器修复步骤,但没有任何效果。最终我让它以安全模式启动,并将 innodb force 标志设置为 6,然后我能够使用 HeidiSQL 提取所有数据(mysqlddump 只是挂起并且从未启动,但 HeidiSQL 实现了自己的导出。)。即便如此,我的 165 张表格中仍有 3 张根本无法阅读。
关于MySQL 1300 无效的 big5 字符串 : '\xC3\x97 ' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44828601/