帖子标记 ‘Database’

MongoDB: 5. Admin

作者: seasun

Mongod 是 核心程序,通常情况下我们只需折腾该程序即可。

1. dbpath & port

默 认数据存储路径是 /data/db,默认端口 27017,默认 HTTP 端口 28017。用 –dbpath 和 –port 改吧。

$ sudo ./mongod --dbpath /var/mongodb --port 1234

Sat Jul 24 22:58:50 MongoDB starting : pid=1683 port=1234 dbpath=/var/mongodb 64-bit

** NOTE: This is a development version (1.5.4) of MongoDB.
**       Not recommended for production.

Sat Jul 24 22:58:50 db version v1.5.4, pdfile version 4.5
Sat Jul 24 22:58:50 git version: 6c1361df41d9cabf9026364427a7df44b3c304fd
Sat Jul 24 22:58:50 sys info: Linux domU-12-31-39-06-79-A1 2.6.21.7-2.ec2.v1.2.fc8xen
[initandlisten] Sat Jul 24 22:58:50 waiting for connections on port 1234
[websvr] Sat Jul 24 22:58:50 web admin interface listening on port 2234

从启动信息可以看到 Web 管理端口 2234,CTRL + C 即可停止该进程。–bind_ip 用于设定监听绑定 IP。
(全文 …)

MongoDB: 4. Index

作者: seasun

提供了多样性的索引支持。

> for (var i = 0; i < 30; i++) {
...     u = { name : "user" + i,
...           age : 20 + i,
...           contact : {
...              address : ["address1_" + i, "address2_" + i],
...              postcode : 100000 + i,
...           }
...     };
...     db.users.insert(u);
... }

索引信息被保存在 system.indexes 中,且默认总是为 _id 创建索引。
(全文 …)

MongoDB: 3. Schema Design

作者: seasun

1. Document-Oriented

是一种面向文档(document-oriented)的数据库,其内存储的是一种 JSON-like 结构化数据。尽管拥有和关系型数据库 /Table 类似的的 DB/Collection 概念,但同一 Collection 内的 Document 可以拥有不同的属性。

(注: 以下 > 提示符表示 mongo JS 代码,>>> 为 Python 代码)

> use blog
switched to db blog

> db.users.insert({name:"user1", age:15})
> db.users.insert({name:"user2", age:20, sex:1})

> db.users.find()
{ "_id" : ObjectId("4c479885089df9b53474170a"), "name" : "user1", "age" : 15 }
{ "_id" : ObjectId("4c479896089df9b53474170b"), "name" : "user2", "age" : 20, "sex" : 1 }

(全文 …)

MongoDB: 2. Basic Usage

作者: seasun

须安装 PyMongo (Documentation)。

$ sudo easy_install -U pymongo

(注: 以下 > 提示符表示 mongo JS 代码,>>> 为 Python 代码)

1. INSERT

使 用 insert 插入文档。

> use blog
switched to db blog

> u = { name:"user1", age:23 }
{ "name" : "user1", "age" : 23 }

> db.users.insert(u)

> u2 = db.users.findOne({name:"user1"})
{
        "_id" : ObjectId("4c44fe0edef8f3492fe67d60"),
        "name" : "user1",
        "age" : 23
}

> u2.age += 3
26

> db.users.save(u2)

> db.users.find()
{ "_id" : ObjectId("4c44fe0edef8f3492fe67d60"), "name" : "user1", "age" : 26 }

(全文 …)

MongoDB: 1. Database

作者: seasun

mongo 是 MongoDB 自带的交互式 Javascript shell,用来对 Mongod 进行操作和管理的交互式环境。

使用 “./mongo –help” 可查看相关连接参数。

$ ./mongo --help

 shell version: 1.5.3

usage: ./mongo [options] [db address] [file names (ending in .js)]

db address can be:
  foo                   foo  on local machine
  192.169.0.5/foo       foo  on 192.168.0.5 machine
  192.169.0.5:9999/foo  foo  on 192.168.0.5 machine on port 9999

options:
  --shell               run the shell after executing files
  --nodb                don't connect to mongod on startup - no 'db address'
                        arg expected
  --quiet               be less chatty
  --port arg            port to connect to
  --host arg            server to connect to
  --eval arg            evaluate javascript
  -u [ --username ] arg username for authentication
  -p [ --password ] arg password for authentication
  -h [ --help ]         show this usage information
  --version             show version information
  --ipv6                enable IPv6 support (disabled by default)

file names: a list of files to run. files have to end in .js and will exit after unless --shell is specified

(全文 …)

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

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

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

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

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

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

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

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

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

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

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

第一步. 下载 AutoMySQLBackup 文件

下载地址:AutoMySQLBackup
(全文 …)

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

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

1. WordPress Database Backup

WordPress backup
(全文 …)