mysql(ERROR 1406 (22001): Data too long for column)

MySQL 导入恢复数据库错误

执行命令: mysql -u[username] -p[password] dbname<dbbak.sql

遇到“ERROR 1406 (22001): Data too long for column at ” 某个字段过长,实际上是数据库sql文件中含有UTF8编码 如中文字段内容在Windows下,命令行窗口不支持UTF-8编码,即便使用“set names utf8;”不会达到转化中文的效果。但是这个问题还是可以解决的: (1)使用默认编码建立数据库。这种情况下就可以直接输入中文了,但是相应的问题,就是会失去UTF-8编码的灵活性。特别是不利于软件的国际化。 (2)放弃命令行窗口登录MySQL,使用图形化客户端。客户端工具可以MySQL的官方网站上找到。(比如navicat,mysql GUI tools之类的软件)

实际上sql文件小的话完全可以用phpMyAdmin的导入方式来解决的。对于大文件用上面提到的导入命令,效率比较高。实际上经过尝试,还有第三种解决方案,命令行模式mysql登录到控制台模式,用

source命令来导入 sql文件,很奇怪此时就不会再报错了。唯一不爽的是source 命令会输出一行行的sql执行结果,但在无图形化客户端的情况,仍不失为一个好办法,希望对需要的童鞋有用!

Mongodb 1.6与Mongodb 1.4并发性能对比

2010年8月5日,Mongodb 1.6正式发布了,这个版本增加和改进了很多功能,我了解的几个比较大的改进在:

 1) Mongodb存储文件申请磁盘空间的方式做了改进。在mongodb  1.4的时候是按128M,256M,512M,1024M,2048M这样的方式申请磁盘空间的;而在mongodb  1.6中,已经是动态小量的申请磁盘空间了。

 2) 增加了$or等查询操作符,这在mongodb 1.4的时候是没有的。

 3) 改进和提高了并发性能。 Continue reading »Mongodb 1.6与Mongodb 1.4并发性能对比

什么是MongoDB

2010年应该被人们记住,因为SQL将在这一年死去。这一年关系数据库行将就木,这一年开发者发现他们再不需要长时间辛苦的构造列或者表格来存放数据。

2010年将是文档型数据库的起始年。尽管这样的势头已经持续多年,现在才是一个更多,更广泛的文档型数据库出现的年代。从基于云计算的Amazon到Google,大量开源工具,以及随之诞生的CouchDB和MongoDB。

那么什么是MongoDB?下面有五件事是PHP开发者应该了解的。

1.MongoDB是一个单独的服务器

2.MongoDB是基于文档,而不是基于表

3.MongoDB中较少的Schema

4.你不需要学习另外的语言

5.MongoDB有良好的PHP支持 Continue reading »什么是MongoDB