用mysqldump -uxxx -hxxxx -pxxx --compress --quick dbname |/bin/gzip >path/to/xxx.sql.gz备份了一个数据库
这个数据库以及所有表以及所有表字段的默认字符集都是gbk
然后在另外的机器上使用gunzip xxx.sql.gz
然后mysql dbname < xxx.sql
结果发现数据库中出现乱码原始数据库为5.0.27
出现乱码的数据库为5.0.45请教达人,这个问题如何解决
两个数据库以及对应表的字符集都是一样的,问题应该不在这里。
这个数据库以及所有表以及所有表字段的默认字符集都是gbk
然后在另外的机器上使用gunzip xxx.sql.gz
然后mysql dbname < xxx.sql
结果发现数据库中出现乱码原始数据库为5.0.27
出现乱码的数据库为5.0.45请教达人,这个问题如何解决
两个数据库以及对应表的字符集都是一样的,问题应该不在这里。
/*!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 */;
/*!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 */;
出现乱码的那个数据库.sql头没有上面的指令。
但是奇怪的是,用同样的命令dumper,有些数据库的.sql文件加上了这些头,而有些则没有。
巨大的文件编辑很浪费时间,请问如何强制mysqldumper加上这些头么?
另外请达人稍微解释下这些头~
谢谢
假设你的xxx.sql文件的编码为 yyy
那么mysql xxx < xxx.sql之前先 set names yyy
一切ok~~
不用管原来数据库和现在数据库的字符集。
当然如果从utf8到ascii之类的转换大概是不行的
xxx.sql文件的编码,问一下 这是怎么回事?
怎么查看sql 文件 的编码
比如: 我sql 文件里面的 有一个创建数据库 default charaset =uft8
接着创建 表 表默认是 utf8
为什么这样会出现 乱码?????、