问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

mysqldump导出的表使用mysqlimport恢复提示data too long

发布网友 发布时间:2022-04-21 00:27

我来回答

1个回答

热心网友 时间:2023-10-28 06:55

可能是编码问题。
1. 建数据库
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.
C:\Documents and Settings\awish>mysql -u root -p
Enter password: *******
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 24 to server version: 5.0.27-community-nt
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> create database test;
2. 设置数据编码为utf8
mysql> use test;
Database changed
mysql> set names utf8; //设置数据库字符集为utf8
Query OK, 0 rows affected (0.00 sec)
3. 创建数据表
mysql> CREATE TABLE person
-> (
-> id INT(8) NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> name varchar(16) default 'nobody',
-> birthday char(19),
-> )ENGINE=InnoDB DEFAULT CHARSET=utf8//创建数据表,字符集设定为utf8
-> ;
Query OK, 0 rows affected (0.03 sec)
4. 创建导入SQL脚本文件 c:\test.sql
use test;
insert into person values(null, '张三', '1984-08-20');
insert into person values(null, '李四', '1984-08-20');
insert into person values(null, '王五', '1984-08-20');
5. 导入SQL脚本文件
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.
C:\Documents and Settings\awish>mysql -u root -p test<C:\test.sql
Enter password: *******
ERROR 1406 (22001) at line 3: Data too long for column 'name' at row 1
C:\Documents and Settings\awish>
分析: 很明显, 张三, 李四, 王五 只有4个字节, 而建表时定义最多可以有15个, 理论下完全可以, 为什么 too long 呢? 唯一的解释就是编码问题!!!!
若把上面SQL脚本改为: insert into person values(null, 'aaaaaaaaaaaaaa', '1984-08-20'); 却可以正常插入!!
后来找资料发现, MySQL的默认编码为 gb2312

在 test.sql 脚本中加入: set names gb2312 问题解决
use test;
set names gb2312;
insert into parent values(null, '张三', '1984-08-20');
insert into parent values(null, '李四', '1984-08-20');
insert into parent values(null, '王五', '1984-08-20');
导入命令:
C:\Documents and Settings\awish>mysql -u root -p test<C:\test.sql
Enter password: *******
C:\Documents and Settings\awish>
导入成功!!!
6. 查询数据
C:\Documents and Settings\awish>mysql -u root -p test
Enter password: *******
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 27 to server version: 5.0.27-community-nt
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> use test;
Database changed
mysql> select * from person;
+----+--------+------------+
| id | name | birthday |
+----+--------+------------+
| 1 | 寮犱笁 | 1984-08-20 |
| 2 | 鏉庡洓 | 1984-08-20 |
| 3 | 鐜嬩簲 | 1984-08-20 |
+----+--------+------------+
3 rows in set (0.00 sec)
mysql>
由于中文字符编码为 utf8 后, 人是不认得了, 我们可以导出看其效果!
7. 导出数据库
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.
C:\Documents and Settings\awish>mysqlmp -u root -p test>c:\test2.sql
Enter password: *******
C:\Documents and Settings\awish>
我们把它存为 C:\test2.sql
打开test2.sql 脚本文件, 我们将会看到:
--
-- Table structure for table `person`
--
DROP TABLE IF EXISTS `person`;
CREATE TABLE `person` (
`id` int(10) unsigned NOT NULL auto_increment,
`name` varchar(16) default 'nobody',
`birthday` char(19) default NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- Dumping data for table `person`
--
LOCK TABLES `person` WRITE;
/*!40000 ALTER TABLE `person` DISABLE KEYS */;
INSERT INTO `person` VALUES (1,'张三','1984-08-20'),(2,'李四','1984-08-20'),(3,'王五','1984-08-20');
/*!40000 ALTER TABLE `person` ENABLE KEYS */;
UNLOCK TABLES;
数据完全正确!!
这时如果要想把 test2.sql文件导入到数据库中, 按照上面的, 加上: set names gb2312
mysqldump导出的表使用mysqlimport恢复提示data too long

Enter password:Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 27 to server version: 5.0.27-community-nt Type 'help;' or '\h' for help. Type '\c' to clear the buffer.mysql&gt; use test;Database changed mysql&gt; select * from person;+-...

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
安徽新华学院怎么坐车去明珠广场? 花府城隍庙到安徽新华学院 河南新华到城隍庙要多久? 我在城隍庙怎么去新华医院 缘起的近义词 三台电脑怎样共享上网?谢谢 猫只可以上2台电脑吗,怎么把路由器连起,使三台电脑一起上啊? 如何设置路由器作为二级交换机 外网网线---路由---八孔交换接 ---4个无限路由---电脑 外网是通的... ...s108 八孔交换机,是不是不能当路由器啊,如果使用,必须连接路由器... 为啥在mysql黑框里切换中文输入就死 jsp中删除 ,数据库中数据有中文时为什么就删不掉,同样修改也不行??? 数据库是mysql。 mysql命令窗口显示乱码怎么解决? 如何让电脑录音音质变得更好? 录音时选择哪种格式最好 用手机录歌时怎么才能让录音效果更好? 怎么样录音最好 怎么使唱歌录音时录音效果更好? 如何使录音机录音效果最好? 用iphone耳机录音,如何录得其最好的音质? 楼上噪音怎么录音效果好 怎么才有好的录音效果? 什么样的录音才叫好的录音? 怎样录制的音频才有更好的效果,才没有杂音? 怎么录音效果才好? 怎样让录音效果最好 帖子是什么?怎么发帖子啊? LOL进入游戏时一直黑屏怎么办 提灯与地下城同心套装在哪获取? 提灯与地下城火焰宝宝值得培养吗? S2SH+MySQL插入数据时中文乱码 ems中的中文乱码 360浏览器怎样使网页保存为文本 如何将360浏览器网页另存为txt文件格式 360安全浏览器如何把网页保存为word 360浏览器保存文字 用360浏览器怎样设置一拉保存为TXT文档? 360浏览器5.0 保存网页 怎么另存为文本文档TXT格式 360极速浏览器保存网页 手机如何设置360极速模式 360安全浏览器9.1如何将网页保存为TXT文件 在360浏览器怎样找到文件菜单中的“另存为”选项 如何保存360浏览器打开的word文件 如何才能屏蔽360浏览器中的网页另存为图片和文本? 360浏览器选中文字右键只能存到网络记事本了 360浏览器,怎么保存网页为单一htm文件? 鐢 这个字 念什么 如何将网页中的文字内容保存到文件夹中呢 如何在网上发帖子 乌尔姆的基本介绍