关于blob数据类型引起的mysqldump乱码问题
来源:互联网 发布:詹姆斯去年总决赛数据 编辑:程序博客网 时间:2024/06/14 23:36
关于blob数据类型引起的mysqldump乱码问题
使用mysqldump导出的sql有乱码
[root@caimeidev2 /]# mysqldump -uusermane -ppassword -h127.0.0.1 -P3306 --routines --default-character-set=utf8 db_name > db_name.sql
sql乱码
DROP TABLE IF EXISTS `sys_user`;/*!40101 SET @saved_cs_client = @@character_set_client */;/*!40101 SET character_set_client = utf8 */;CREATE TABLE `sys_user` ( `id` varchar(64) NOT NULL COMMENT 'ç¼<96>å<8f>·', `company_id` varchar(64) NOT NULL COMMENT 'å½<92>å±<9e>å<85>¬å<8f>¸', `office_id` varchar(64) NOT NULL COMMENT 'å½<92>å±<9e>é<83>¨é<97>¨', `login_name` varchar(100) NOT NULL COMMENT 'ç<99>»å½<95>å<90><8d>', `password` varchar(100) NOT NULL COMMENT 'å¯<86>ç <81>', `no` varchar(100) DEFAULT NULL COMMENT 'å·¥å<8f>·', `name` varchar(100) NOT NULL COMMENT 'å§<93>å<90><8d>', `email` varchar(200) DEFAULT NULL COMMENT 'é<82>®ç®±', `phone` varchar(200) DEFAULT NULL COMMENT 'ç<94>µè¯<9d>', `mobile` varchar(200) DEFAULT NULL COMMENT 'æ<89><8b>æ<9c>º', `user_type` char(1) DEFAULT NULL COMMENT 'ç<94>¨æ<88>·ç±»å<9e><8b>', `photo` varchar(1000) DEFAULT NULL COMMENT 'ç<94>¨æ<88>·å¤´å<83><8f>', `login_ip` varchar(100) DEFAULT NULL COMMENT 'æ<9c><80>å<90><8e>ç<99>»é<99><86>IP', `login_date` datetime DEFAULT NULL COMMENT 'æ<9c><80>å<90><8e>ç<99>»é<99><86>æ<97>¶é<97>´', `login_flag` varchar(64) DEFAULT NULL COMMENT 'æ<98>¯å<90>¦å<8f>¯ç<99>»å½<95>', `create_by` varchar(64) NOT NULL COMMENT 'å<88><9b>建è<80><85>', `create_date` datetime NOT NULL COMMENT 'å<88><9b>建æ<97>¶é<97>´', `update_by` varchar(64) NOT NULL COMMENT 'æ<9b>´æ<96>°è<80><85>', `update_date` datetime NOT NULL COMMENT 'æ<9b>´æ<96>°æ<97>¶é<97>´', `remarks` varchar(255) DEFAULT NULL COMMENT 'å¤<87>注信æ<81>¯', `del_flag` char(1) NOT NULL DEFAULT '0' COMMENT 'å<88> é<99>¤æ <87>è®°', PRIMARY KEY (`id`), KEY `sys_user_office_id` (`office_id`), KEY `sys_user_login_name` (`login_name`), KEY `sys_user_company_id` (`company_id`), KEY `sys_user_update_date` (`update_date`), KEY `sys_user_del_flag` (`del_flag`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='ç<94>¨æ<88>·è¡¨';
再三检查字符集设置没有问题,发现是因为表中Blob类型,需要在命令行中加入–hex-blob参数。
[root@caimeidev2 /]# mysqldump -uusermane -ppassword -h127.0.0.1 -P3306 --routines --default-character-set=utf8 --hex-blob db_name > db_name.sql
结果正常了
DROP TABLE IF EXISTS `sys_user`;/*!40101 SET @saved_cs_client = @@character_set_client */;/*!40101 SET character_set_client = utf8 */;CREATE TABLE `sys_user` ( `id` varchar(64) NOT NULL COMMENT '编号', `company_id` varchar(64) NOT NULL COMMENT '归属公司', `office_id` varchar(64) NOT NULL COMMENT '归属部门', `login_name` varchar(100) NOT NULL COMMENT '登录名', `password` varchar(100) NOT NULL COMMENT '密码', `no` varchar(100) DEFAULT NULL COMMENT '工号', `name` varchar(100) NOT NULL COMMENT '姓名', `email` varchar(200) DEFAULT NULL COMMENT '邮箱', `phone` varchar(200) DEFAULT NULL COMMENT '电话', `mobile` varchar(200) DEFAULT NULL COMMENT '手机', `user_type` char(1) DEFAULT NULL COMMENT '用户类型', `photo` varchar(1000) DEFAULT NULL COMMENT '用户头像', `login_ip` varchar(100) DEFAULT NULL COMMENT '最后登陆IP', `login_date` datetime DEFAULT NULL COMMENT '最后登陆时间', `login_flag` varchar(64) DEFAULT NULL COMMENT '是否可登录', `create_by` varchar(64) NOT NULL COMMENT '创建者', `create_date` datetime NOT NULL COMMENT '创建时间', `update_by` varchar(64) NOT NULL COMMENT '更新者', `update_date` datetime NOT NULL COMMENT '更新时间', `remarks` varchar(255) DEFAULT NULL COMMENT '备注信息', `del_flag` char(1) NOT NULL DEFAULT '0' COMMENT '删除标记', PRIMARY KEY (`id`), KEY `sys_user_office_id` (`office_id`), KEY `sys_user_login_name` (`login_name`), KEY `sys_user_company_id` (`company_id`), KEY `sys_user_update_date` (`update_date`), KEY `sys_user_del_flag` (`del_flag`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表';/*!40101 SET character_set_client = @saved_cs_client */;
阅读全文