2011-09-20 64 views
0

我尝试从转储文件恢复MySQL数据库失败。为什么数字图像包含特殊字符的数据?

当执行(从转储文件)插入图像数据的INSERT查询时,MYSQL服务器报告错误。这个问题看起来似乎与max-allowed-packet参数有关(因为我已经对max-allowed-packet的各种合理值进行了广泛的测试)。

我注意到的是转储文件中的图像数据包含如下特殊字符。根据我的理解,数字图像应该只包含零和一个。

我只是在这里复制(如预期在使用该数据库的Web应用程序是显示从原始数据库中的图像),从转储文件中的图像数据:

“‰PNG \ r \ n \ Z^\ n \ 0 \ 0 \ 0 \ rIHDR \ 0 \ 0 \ 0P \ 0 \ 0 \ 0P \ 0 \ 0 \0¹ÏŸ\ 0 \ 0 \ 0tEXtSoftware \ 0AdobeImageReadyqÉe< \ 0 \ 0 \03PLTEÿÿÿéLLñøÃÃâýððæ..úÒçç==ûááïyyäíjjô¥ ¥ö''ë[[ò - ð%ê\ 0 \0ñIDATxÚì-Ý,«.....

+1

**计算机中的一切**只是零和一个。这是一个代表性的问题。在这种情况下,沿途的某些东西试图将PNG数据解释为文本。尝试使用文本编辑器打开PNG文件,您会看到类似的“特殊字符”。 –

+0

@Matt Ball这意味着图像数据中的特殊字符是正常的,这是令人愉快的,但为什么MySQL服务器在那一点报告错误?! – siva636

回答

0

我认为这是转储文件中的排序问题。尝试合并所有排序规则(我认为你可以在这种情况下使用的更好是UTF8或latin1 ci),但要查找这个:转储排序,数据插入,创建表,数据库连接,软件连接。一定是一样的。做完这些之后,查找相同的问题,并且不会出现错误或您真正遇到的问题的实际错误。