分类目录 ‘Database’

经常会碰到需要从数据库中导出数据到Excel文件,用一些开源的类库,比如PHPExcel,确实比较容易实现,但对大量数据的支持很不好,很容易到达PHP内存使用上限。这里的方法是利用fputcsv写CSV文件的方法,直接向浏览器输出Excel文件。
(全文 …)

满足海量存储需求和访问的面向文档的数据库:MongoDB,CouchDB
MongoDB
Nice, I like it very much.

面向文档的非关系数据库主要解决的问题不是高性能的并发读写,而是保证海量数据存储的同时,具有良好的查询性能。MongoDB是用C++开发的,而CouchDB则是Erlang开发的:

1、MongoDB
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似 json的bjson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几 乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

Mongo主要解决的是海量数据的访问效率问题,根据官方的文档,当数据量达到50GB以上的时候,Mongo的数据库访问速度是MySQL的 10倍以上。Mongo的并发读写效率不是特别出色,根据官方提供的性能测试表明,大约每秒可以处理0.5万-1.5次读写请求。对于Mongo的并发读 写性能,我(robbin)也打算有空的时候好好测试一下。
(全文 …)

随着MySQL的命运飘忽不定,又涌现出许多开源数据库,包括了HadoopDB, Drizzle, MongoDB, Cassandra DB以及 CouchDB,这样的势头将在接下来的2010年持续下去。

NOSql概念值得关注。NOSQL适合高并发和超大规模数据的情况。NOt only sql,可见是关系数据的有益补充。具体可见此文章

可以预见,PostgreSQL又将热起来。互联网上的选择,有时很忌讳商业公司。。就是这个缘故会造成部分(也难说是大部分)会选择 PostgreSQL。而成熟的开源免费的关系数据库,不多。PostgreSQL现在获得了很好的际遇。
(全文 …)

Innodb数据库对于已经删除的数据只是标记为删除,并不真正释放所占用的磁盘空间,这就导致InnoDB数据库文件不断增长。如果想彻底释放这些已经 删除的数据,需要把数据库导出,删除InnoDB数据库文件,然后再倒入。 下面是基本的步骤:

1 使用mysqldump命令将InnoDB数据库导出

2 停止MySQL

3 删除所有InnoDB数据库文件和日志

4 启动MySQL并自动重建InnoDB数据库文件和日志文件

5 导入前面备份的数据库文件

有一点要注意,你配置了MySQL数据库复制,当你导入数据库备份文件的时候,所有的Query都可能会被写入Binlog,可以执行SET SQL_LOG_BIN = 0;暂时停止Binlog的写入。

还有一种方式是在创建数据库的时候设置innodb_file_per_table,这样InnoDB会对每个表创建一个数据文件,然后只需要运 行OPTIMIZE TABLE 命令就可以释放所有已经删除的磁盘空间。

新的安全漏洞名单列出了可导致数据破坏的最常见的数据库问题。
对于Application Security公司新的十大数据库漏洞名单中所列出的问题,数据库管理员都非常熟悉。从预设密码的使用到补丁问题,数据库管理系统受到各种问题的困扰,使其容易受到攻击。当我报告数据库管理问题时,数据库管理员告诉我,他们都意识到这些常见的可能导致数据破坏的安全问题。但是,他们常说包含敏感数据的DBMS通常由许多不同的安全系统包围,这减少了攻击的威胁。
(全文 …)

自从上次由于没有成功备份导致博客的大部分文章无法还原之后,我就更加小心博客的备份了,并且还尝试了多种的备份方法,以下是其中三种直接备份 WordPress 博客的方法。

所谓直接备份,是指不需要借助于 WordPress 插件、第三方服务或者程序代码,而直接通过 WordPress 后台或者 cPanel 备份,这样的备份方法是最安全的,只不过需要手动。

方法一:通过 WordPress 后台备份博客数据库

备份 WordPress 博客数据库
(全文 …)

通过服务器直接备份博客数据库虽然最安全,但是需要手动不方便;通过 WordPress 插件备份虽然可以全自动,但是可能会出现问题。所以,如果能够把数据库备份到服务器,同时也备份到邮箱,不需要安装任何插件,并且一切都是自动 完成的,那就好了。

事实上,AutoMySQLBackup 程序是可以实现这个想法的,虽然并不适合所有的服务器。下面先介绍 AutoMySQLBackup 程序的使用方法,然后再说说它的不足之处。

一、通过 AutoMySQLBackup 备份博客数据库的具体步骤:

第一步. 下载 AutoMySQLBackup 文件

下载地址:AutoMySQLBackup
(全文 …)

直接备份 WordPress 博客数据库的方法虽然比较安全,但是也比较麻烦,因为你每次都要手动操作。于是,有人想到了通过使用插件的方法来自动备份 WordPress 博客的数据库。

WordPress 博客数据库备份插件不少,下面 10 个则是其中的佼佼者,它们都是免费的并且都兼容于 WordPress 2.9.2:

1. WordPress Database Backup

WordPress backup
(全文 …)

MySQL-Front v5.0 build 1.126下测试通过。

NAME:xok.la

Key:

e1Ns2izlxZwu9Lb4X8qlcWGoxQpUU+hI
8CsVahbbMjpH2F5PfAgosxzjGhATkWJu
UsE8QXsqfZ5iSs9yM7D2XMOUVFpKud9K
2977pO7s1Efi72iGWxUn+209a6tulHkq
5cgLtLSpWsK7uvsOeG4UgYZoRnbp+0T4
PJEplfQk9YpMfY9yYJG+NOUbvM1+kMcf
CWd9iq3AZHrFHTm5qpSWEiJamTtIpyAD
4UuLXoNyojh5Ne0S6SWxxUJsUQS3DStB
o/e0aVBzhRwmrtvg4QdUIg==

注册机下载:/file/2009/03/MySQL-Front5_key.rar

SQL注入漏洞曾经是Web应用程序的噩梦,CMS、BBS、Blog无一不曾受其害。

SQL注入的原理

以往在Web应用程序访问数据库时一般是采取拼接字符串的形式,比如登录的时候就是根据用户名和密码去查询:

string sql = "SELECT TOP 1 * FROM [User] WHERE UserName = ‘” + userName + “‘ AND Password = ‘” + password + “‘”;

其中userName和password两个变量的值是由用户输入的。在userName和password都合法的情况下,这自然没有问题,但是 用户输入是不可信的,一些恶意用户只要用一些技巧,就可以绕过用户名、密码登录。

假设password的值是”1′ or ‘1′ = ‘1“,userName的值随便取,比如是”abc”,那变量sql的 值就是:
(全文 …)