我用MYSQL备份了一个数据库C1,然后把它Restore到C2里。
发现有些图片还原后,在程序中打不开。
(PS:图片是资源文件,在C1中还原是可以打开的)

解决方案 »

  1.   

    你是如何存储图片的?BLOB字段? 你是如何打开的? 打不开是什么现象?问题说明越详细,回答也会越准确!参见如何提问。(提问的智慧
        
      

  2.   

    存储是LONGBLOB,我在程序中跟踪发现到错误是:不可见的图片。
    然后我打开SQL备份文件:发现图片存储不是以2进制存储,是一堆乱码。
    但是C1-C1的话这个图片就可以加载。
      

  3.   

    这个是我用MYSQL命令备份的表头信息,所有的表的字符集都是UTF-8。-- MySQL dump 10.11
    --
    -- Host: localhost    Database: masterdata
    -- ------------------------------------------------------
    -- Server version 5.0.51b-community-nt/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
    /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
    /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
    /*!40101 SET NAMES utf8 */;
    /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
    /*!40103 SET TIME_ZONE='+00:00' */;
    /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
    /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
    /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
    /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;--
    -- Current Database: `masterdata`
    --/*!40000 DROP DATABASE IF EXISTS `masterdata`*/;CREATE DATABASE /*!32312 IF NOT EXISTS*/ `masterdata` /*!40100 DEFAULT CHARACTER SET latin1 */;USE `masterdata`;这个是工具备份的表头信息,:
    -- MySQL Administrator dump 1.4
    --
    -- ------------------------------------------------------
    -- Server version 5.0.51b-community-nt
    /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
    /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
    /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
    /*!40101 SET NAMES utf8 */;/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
    /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
    /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;