navicat for mysql运行sql文件出错

MySQ数据库导入sql文件/Navicat运行sql文件时提示错误 Unknown collation: ‘utf8mb4_0900_ai_ci‘

嗯...这个问题...真是烦人...
2 02 2 年,我就遇到了这个鬼东西。
我们当时在哪个城市并不重要。
重要的是有一个 SQL 文件。
它太大了,有几千兆字节,无法导入。
MySQL直接崩溃,报这个错误:“Unknown configuration: 'utf8 mb4 _09 00_ai_ci'”。

当时我很困惑。
这到底是什么?后来才知道,可能是导出时使用了新版本的MySQL,而这里安装的是旧版本。
查了资料发现是版本不兼容。

解决办法有两种:
第一,更新MySQL。
这就相当麻烦了。
整个数据库必须升级到与导出文件相同的版本。
想一想,2 02 2 年,服务器环境将会是这样的。
如果升级一次,一旦出现问题,所有数据都会消失。
谁受得了?您需要了解更新过程并备份数据,这是相当痛苦的。

第二,更改SQL文件。
这个比较简单,但是文件很大,很难改。
你需要找到一个文本编辑器,打开这个SQL文件,并将里面的所有“utf8 mb4 _09 00_ai_ci”更改为“utf8 _general_ci”,将“utf8 mb4 ”更改为“utf8 ”。
更改后保存。
接下来,需要关闭MySQL服务,使用Navicat连接数据库,然后运行修改后的SQL文件。
如果操作完成并且日志中没有报错,则说明已经进入。
然后刷新Navicat,数据就会出现。

请注意,使用这种文件编辑方法,如果文件特别大,编辑时间会很长,而且很容易丢失编辑内容。
这时,数据库升级可能是更好的选择。
也就是说,你可以在Navicat中直接将数据库的字符集和校对规则更改为“utf8 ”和“utf8 _general_ci”。
不过,这也不是万能的,有时还要根据具体情况而定。

我选择更改文件是因为当时文件不大。
如果您的文件有几GB,我建议您考虑升级。
不幸的是,这个问题确实很难处理。

mysql导入错误

记得上次在老家亲戚的电脑上装系统的时候,在备份硬盘的时候硬盘突然死机了。
硬盘灯疯狂地闪烁,我想如果数据库在导入过程中也被冻结,我会担心。
原来是文件编码问题。
亲戚用记事本保存的默认文档是GBK,我的数据库是UTF-8 如果直接导入的话,文件会出现乱码。
赶紧把文件另存为UTF-8 再试一次,这次可以正常了。
等等,还有一件事。
当时我用SHOW VARIABLES LIKE 'character_set%'查看,发现服务器默认的字符集是latin1 ,真是烦人。
也就是说,许多新系统现在默认使用 UTF-8 我们是否应该关注这些旧设备的兼容性?