- Blob,二进制大对象(字节流)。可以用来存储图片,声音和视频等二进制文件。没有字符集的说法。
- TEXT,文本大对象(字符流)。可以用来存储大量的字符串,可以理解为超大的char或者varchar类型。由于是存储字符,所以有字符集的说法。
并且blob和text类型是无法设置默认值的。并且必要时增大max_allowed_packet的值以适应改数据类型
mysql中,blob和text又细分为:(存储限制来自网上摘录)
- tinyblob,tinytext,最大存储限制255字节
- blob,text,最大存储限制65k(是真的吗?)
- mediumblob,mediumtext,最大存储限制16M
- longblob,longtext,最大存储限制4G
下面根据实验并以blob为例,来演示存储限制:
mysql> use test1 Database changed mysql> show tables; +-----------------+ | Tables_in_test1 | +-----------------+ | t1 | +-----------------+ 1 row in set (0.00 sec) mysql> drop table t1; Query OK, 0 rows affected (0.28 sec) mysql> CREATE TABLE t1 ( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, tiny_blob TINYBLOB, b_blob BLOB, medium_blob MEDIUMBLOB, long_blob LONGBLOB ); mysql> desc t1; +-------------+------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | tiny_blob | tinyblob | YES | | NULL | | | b_blob | blob | YES | | NULL | | | medium_blob | mediumblob | YES | | NULL | | | long_blob | longblob | YES | | NULL | | +-------------+------------+------+-----+---------+----------------+ 5 rows in set (0.00 sec) mysql> insert into t1(id) select 1; Query OK, 1 row affected (0.05 sec) Records: 1 Duplicates: 0 Warnings: 0 mysql> select * from t1; +----+-----------+--------+-------------+-----------+ | id | tiny_blob | b_blob | medium_blob | long_blob | +----+-----------+--------+-------------+-----------+ | 1 | NULL | NULL | NULL | NULL | +----+-----------+--------+-------------+-----------+ 1 row in set (0.00 sec)
讯享网
先建一个表t1,各种blob类型均有。
然后查看参数max_allowed_packet的大小:
讯享网mysql> select @@global.max_allowed_packet; +-----------------------------+ | @@global.max_allowed_packet | +-----------------------------+ | | +-----------------------------+ 1 row in set (0.00 sec) mysql> select / 1024; +-----------------+ | / 1024 | +-----------------+ | 65536.0000 | +-----------------+ 1 row in set (0.02 sec) mysql> select / 1024 / 1024; +------------------------+ | / 1024 / 1024 | +------------------------+ | 64.00000000 | +------------------------+ 1 row in set (0.00 sec)
64M
tinyblob的存储限制
1、生成一个指定大小的文件
E:\temp>DIR fsutil file createnew E:\temp\test.255.file 255 fsutil file createnew E:\temp\test.256.file 256 E:\temp>DIR 2020/03/17 周二 16:07 <DIR> . 2020/03/17 周二 16:07 <DIR> .. 2020/03/17 周二 16:07 255 test.255.file 2020/03/17 周二 16:07 256 test.256.file 2 个文件 511 字节
2、更新tinybobb字段,看是否插入成功
讯享网mysql > UPDATE t1 SET t1.tiny_blob=LOAD_FILE('E:\temp\test.255.file') WHERE t1.id=1; Query OK, 0 rows affected (0.03 sec) Rows matched: 1 Changed: 0 Warnings: 0
因为无法注入
未完https://blog.csdn.net/q3dxdx/article/details/

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/128647.html