MySQL数据库 行超限

Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs

[email protected] 03:54:  [test]> create table t4(c int, c2 char(30), c3 varchar(21813)) charset=utf8;

ERROR 1118 (42000): Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs

[email protected] 03:55:  [test]> create table t4(c int, c2 char(30), c3 varchar(21812)) charset=utf8;

Query OK, 0 rows affected (0.04 sec)

字符类型若为gbk,每个字符最多占2个字节,最大长度不能超过32766;

字符类型若为utf8,每个字符最多占3个字节,最大长度不能超过21845。

则此处N的最大值为 (65535-1-2-4-30*3)/3=21812

减1的原因是实际行存储从第二个字节开始‘;

减2的原因是varchar头部的2个字节表示长度;

减4的原因是int类型的c占4个字节;

减30*3的原因是char(30)占用90个字节,编码是utf8。

mysql的vachar字段的类型虽然最大长度是65535,但是并不是能存这么多数据,最大可以到65533(不允许非空字段的时候),当允许非空字段的时候只能到65532。

时间: 2024-08-03 02:38:09

MySQL数据库 行超限的相关文章

mysql数据库行级锁的使用(二)

项目上的另外一个需求是: 在做统计的时候需要将当前表锁定不能更新当前表记录 直接上代码 package com.robert.RedisTest; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement; import java.util.Calendar; import java.util.concurrent.TimeU

MySql数据库4【命令行赋权操作】

MySQL 赋予用户权限命令的简单格式可概括为:grant 权限 on 数据库对象 to 用户 一.grant 普通数据用户,查询.插入.更新.删除 数据库中所有表数据的权利. grant select on testdb.* to [email protected]'%' grant insert on testdb.* to [email protected]'%' grant update on testdb.* to [email protected]'%' grant delete o

用命令行导出和导入MySQL数据库

php 用命令行导出和导入MySQL数据库 命令行导出数据库:1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录如我输入的命令行:cd C:\Program Files\MySQL\MySQL Server 4.1\bin2,导出数据库:mysqldump -u 用户名 -p 数据库名 > 导出的文件名 如我输入的命令行:mysqldump -u root -p news > news.sql   (输入后会让你输入进入MySQL的密码)(如果导出单张表的话在数据库

MySql数据库2【常用命令行】

(一) 连接MYSQL: 格式: mysql -h主机地址 -u用户名 -p用户密码 1.连接到本机上的MYSQL 进入mysql安装目录下的bin目录下,再键入命令mysql -uroot -p,回车后提示你输密码, 如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了 2.连接到远程主机上的MYSQL (远程:IP地址) 假设远程主机的IP为:10.0.0.1,用户名为root,密码为123.则键入以下命令: mysql -h10.0.0.1 -uroot

MySQL命令行导出数据库

MySQL命令行导出数据库:1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录如我输入的命令行:cd C:\Program Files\MySQL\MySQL Server 4.1\bin(或者直接将windows的环境变量path中添加该目录) 2,导出数据库:mysqldump -u 用户名 -p 数据库名 > 导出的文件名 如我输入的命令行:mysqldump -u root -p news > news.sql   (输入后会让你输入进入MySQL的密码)(

mySQL数据库二:命令行的使用

在做整理的时候,上一篇刚开始只是简单的做了个数据类型的开头,在这里简单说一下mySQL的使用以及它的命令行 1.准备工作 有一个好的开发工具可以几何倍数的增加我们的工作效率,所以,工具是必不可少的,首先我们需要下载一个wamp(window系统专用)的工具,苹果电脑为Mamp,如下图所示 下载完成之后双击,可以看到在电脑屏幕的右下方出现一个卡哇伊的“W”图标,对,是他是他就是他,当他从红变成绿色的时候,说明你的准备工作已经完成了,开始你的mySQL之旅吧 2. 操作方法一: 左键点击那个可爱的“

mysql命令行备份数据库

MySQL数据库使用命令行备份|MySQL数据库备份命令 例如: 数据库地址:127.0.0.1 数据库用户名:root 数据库密码:pass 数据库名称:myweb 备份数据库到D盘跟目录 mysqldump -h127.0.0.1 -uroot -ppass myweb > d:/backupfile.sql 备份到当前目录 备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库 mysqldump --add-drop-table -h127.0.0.1

使用MySQL命令行修改数据库密码

通过命令行,可以修改MySQL数据库的密码格式如下: mysqladmin -u用户名 -p旧密码 password 新密码 1.给root加个密码ab12.首先在DOS下进入目录mysql\bin,然后键入以下命令 mysqladmin -u root -password ab12 注:因为开始时root没有密码,所以-p旧密码一项就可以省略了. 2.再将root的密码改为djg345. mysqladmin -u root -p ab12 password djg345 (注意:和上面不同,

使用MySQL命令行备份及恢复数据库

使用MySQL命令行,可以实现对数据库的备份以及恢复,下面就为您介绍使用MySQL命令行实现该功能的详细方法步骤,供您参考. MySQL命令行导出数据库:1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录如我输入的命令行:cd C:\Program Files\MySQL\MySQL Server 4.1\bin(或者直接将windows的环境变量path中添加该目录) 2,导出数据库:mysqldump -u 用户名 -p 数据库名 > 导出的文件名 如我输入的命令