博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【MySQL】HEX,UNHEX 用例一则
阅读量:5830 次
发布时间:2019-06-18

本文共 1754 字,大约阅读时间需要 5 分钟。

使用mysqldump 对一个数据库进行备份,然后恢复到另一个数据库中,遇到如下报错
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 'Y','Y','root');
显然是语句的语法问题,查看文件对应位置的内容,是红色部分导致报错。
LOCK TABLES `USER` WRITE;
/*!40000 ALTER TABLE `USER` DISABLE KEYS */;
INSERT INTO `USER` VALUES (1,'Y','Y','Y','Y','Y','Y','XXX酆9聜锟  Y','Y','yangql');
PASSWORD 字段为 mediumblob 字段导致“’”分隔符被吞噬,由于保存密码字段的二进制编码的问题,引号分隔符被当作了数据的一部分,从而使得数据导入异常。
CREATE TABLE `USER` (
  `USER_ID` bigint(20) NOT NULL,
  `ALTER_PRIV` char(1) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '0',
 .....
  `PASSWORD` mediumblob NOT NULL,
  `SELECT_PRIV` char(1) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '0',
 .....
  UNIQUE KEY `UNIQUEUSER` (`USERNAME`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
尝试手工对导出的文本文件进行修改,总是将密码修改为其他字段一直不成功
又由于此表被其他表作为外键父表引用,不能直接对插入的数据进行delete操作,选择手工将密码字段update。如果将一个字段更新为二进制模式呢?
这里使用把16进制的字符串转为二进制的数据导入库中,
update user set PASSWORD=UNHEX('79616E67716C20697320E58C97E59CA8E58D97E696B9') where USERNAME='yangql';
介绍一下 HEX,UNHEX的使用方法。
root@rac1 : (none) 22:05:17> select hex('yangql is 北在南方');
+----------------------------------------------+
| hex('yangql is 北在南方')                    |
+----------------------------------------------+
| 79616E67716C20697320E58C97E59CA8E58D97E696B9 |
+----------------------------------------------+
1 row in set (0.00 sec)
root@rac1 : (none) 22:05:23> select
unhex('79616E67716C20697320E58C97E59CA8E58D97E696B9');
+-------------------------------------------------------+
| unhex('79616E67716C20697320E58C97E59CA8E58D97E696B9') |
+-------------------------------------------------------+
| yangql is 北在南方                                    |
+-------------------------------------------------------+
1 row in set (0.00 sec)

转载地址:http://onldx.baihongyu.com/

你可能感兴趣的文章
用WINSOCK API实现同步非阻塞方式的网络通讯
查看>>
玩一玩博客,嘿嘿
查看>>
P1352 没有上司的舞会
查看>>
ios11文件夹
查看>>
【HLOJ 559】好朋友的题
查看>>
Electric Fence(皮克定理)
查看>>
nvl 在mysql中如何处理
查看>>
MyEclipse 快捷键
查看>>
快速傅里叶变换FFT
查看>>
大数据常用基本算法
查看>>
JavaScript学习笔记(十三)——生成器(generator)
查看>>
hibernate保存失败
查看>>
MySQL增量订阅&消费组件Canal POC
查看>>
Sqlite多线程
查看>>
数据结构-时间复杂度
查看>>
对象与字符串相互转换
查看>>
[NOIp2017提高组]小凯的疑惑
查看>>
《C程序设计语言》练习1-5
查看>>
$\frac{dy}{dx}$ 是什么意思?
查看>>
Go开发之路(目录)
查看>>