Code Bye

mysql source还原数据报错

使用mysqldump备份一张表,表里大约有85k的数据;
用source还原的时候,有3条数据报错,导致丢了10k的数据;
打开备份的文件,整个文件大约是由20条insert语句构成;
每次都是第2条,第4条,第10条insert语句的第一个value出错;
将出错的数据删除再备份,还原,还是一样的地方出错;
将insert语句复制后放入navicat里可以正常运行;
字符集都是utf8;
不知道怎么解决,有人知道么?
解决方案

10

报什么错?
value出错是字段大小还是类型有错?

20

能把报错的insert语句贴出来看看吗?
另外,在执行source命令是,可以先设置:
set names gbk;

10

引用 4 楼 df300000 的回复:
Quote: 引用 2 楼 yupeigu 的回复:

能把报错的insert语句贴出来看看吗?
另外,在执行source命令是,可以先设置:
set names gbk;

set names utf8会报错;
刚刚试了下set names gbk;同样的错误;
不知道是不是没有全部统一
mysql> SHOW VARIABLES LIKE “character%”;
+–+–+
| Variable_name            | Value                                                   |
+–+–+
| character_set_client     | gbk                                                     |
| character_set_connection | gbk                                                     |
| character_set_database   | utf8                                                    |
| character_set_filesystem | binary                                                  |
| character_set_results    | gbk                                                     |
| character_set_server     | utf8                                                    |
| character_set_system     | utf8                                                    |
| character_sets_dir       | C:\Program Files\MySQL\MySQL Server 5.7\share\charsets\ |
+–+–+
8 rows in set, 1 warning (0.00 sec)

从报错的信息上来看,应该是 字符集的问题。
要不就直接修改一下 服务器的my.cnf文件里的 服务器级别的character set

10

你把字符集贴出来,还有你的source文件看下内容,里面也有字符集的设置的,你看下

10

基本是字符集的问题。show variablies like “%char%”;看看能否统一为utf8

10

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near “鐢?,””,””,””,”1″,”3″,0,0
“42010619830508841X”,”UF/Uploads/Idcard/3844/201509050″ at li
应该是字符集设置上的问题,
set names “gbk” 后再试。

10

字符集问题
show variables like “char%”
set names gbk;

20

–default-character-set=gbk,然后就能正确还原了;
那你将数据库的字符集设置为gbk不久可以了?

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明mysql source还原数据报错