我遇到了类似的问题,就像下面的那个问题一样。但是解决方法发现我没有选择。
Euro symbol breaks mysql insertion process
我正在为朋友迁移一些数据,我无法访问服务器或mysql shell,我必须导入几个数据库。
两个服务器都有phpMyAdmin(源:3.4.10.1deb1,目标:3.5.3),但如果我导出并导入一个sql文件(转储仍然正常),一旦特殊字符出现,行导入将立即停止即将被插入,导致弦乐断裂。
我已检查过,所有表格都是utf8_general_ci
来源和目的地,转储有/*!40101 SET NAMES utf8 */;
下面是变量,但是除了会话和全局被翻转之外,我看到没有变化。知道什么是错的,以及如何(以及如果)我可以用有限的权限修复它?
Source:
character set client utf8
(Global value) latin1
character set connection utf8
(Global value) latin1
character set database latin1
character set filesystem binary
character set results utf8
(Global value) latin1
character set server latin1
character set system utf8
Destination:
character set client latin1
(Sessionvariables) utf8
character set connection latin1
(Sessionvariables) utf8
character set database latin1
character set filesystem binary
character set results latin1
(Sessionvariables) utf8
character set server latin1
character set system utf8
答案 0 :(得分:0)
Oke,连接可能有问题,但改变这种情况并不是我的权力。
更简单的解决方案是导入gzip(或其他压缩)文件,而不是常规SQL文件。压缩会改变特殊字符,以便在上传过程中不会破坏。一旦进入服务器,一切都是utf-8,插入按预期运行。