2.为什么要使用 CUBRID

先来问问您自己一个问题:

CUBRID is FREE & POWERFUL Database with ENTERPRISE level features您或您的公司是否需要一个具备企业级功能的免费并且功能强大的数据库系统?

如果您回答“是”,那么 CUBRID 可能就是您要的数据库解决方案!

免费 开源是当今世界的选择

使用 CUBRID 是免费的。它是一个根据通用公共许可证(GNU)条款发布的开源数据库管理系统。对于企业来说,CUBRID 可以使其显著地节约总拥有成本(TCO)。这是 85% 的公司在选择软件解决方案时最为看重的。不用花钱在其它数据库管理系统解决方案上,而是专注于使用 CUBRID 来提升服务。

功能强大 整洁的架构以及带有性能优势的丰富功能

您是否一直在找不受限的性能?

CUBRID 比其它流行的替代方案更快。它为高访问量网站设计和优化。有了 CUBRID,您不再需要担心数据的快速增长。其独特的多进程架构和多线程服务器实现能很好地处理数据增加和用户量的增长。不再限制数据库数量,表数量或记录数量。

Enjoy CUBRID’s competitive performance with Solid State Disk (SSD), the latest breakthrough in the data storage market. Take advantage of CUBRID’s optimizations such as Click Counter, fast concurrent insertions, query plan caching and query results caching to serve your high-traffic sites with minimal server resource usage.

Enterprise
unique features
for stability
and reliability

CUBRID provides enterprise level features such as High-Availability (HA), Database Sharding, Hot/Online Backup as well as Offline and Incremental Backups. Each can be scheduled and adjusted based on your needs.

You will have a database solution which supports distributed transaction, various replication methods such as online, synchronous/asynchronous, one-way, transaction-level, schema independent, chained or grouped replications. With High Availability (HA) feature, enjoy uninterruptible, 24/7 database server uptime. Database Sharding will make it seamless to distribute your data to multiple servers. And all in one CUBRID Database!

Want to learn more? Check out CUBRID’s Key Features.

用 UNION 解决 proftpd:mod_quotatab_sql.c 不能设置默认配额的问题

项目中碰到给注册用户分配一个 FTP 空间的需求,用户都是保存在 MYSQL 数据库中。

首先就想到用  proftpd + mod_sql 来解决。因为 proftpd 是久经考验的开源 FTP 服务器软件,而且代码模块清晰,必要时还可以自己修改代码。

其中的 quota 模块是基于“用户”定制,针对每个用户创建一条配额记录,却不能为全部用户设置一个默认的配额。这样对于一个已经有大量注册用户的项目颇为麻烦,又不想遍历用户列表为其创建一条配额记录。经实验可以用以下方法为每个用户默认分配 512MB 的空间限额:


SQLNamedQuery get-quota-limit SELECT "* FROM ftp_quota_limits WHERE name = '%{0}' AND quota_type = '%{1}' UNION SELECT '%{0}','user','false','soft',536870912,0,0,0,0,0 LIMIT 1"

通过 MySQL 的 UNION 加上 LIMIT 1 顺利解决。

Cheap Nfl Nba Nhl Mlb Jerseys Free Shipping From China

Cheap Nfl Nba Nhl Mlb Jerseys Free Shipping From China

There s more than just great technique and superior skill involved in mixed martial arts. Part of the sport s appeal is the glamour and spirit of the competition, and wearing an cheap nfl jerseys free shipping makes people feel like they re part of the action. It doesn t seem to matter much how long a brand has been in business. The best vendors know what makes a great fight jersey, and they utilize the latest technology and finest materials to deliver a product that quickly finds a following among sports fans.
From the your post, it looks like you’re looking for non-authentic merchandise. That’s a bad idea as the NBA has some truly terrifying lawyers to protect their image. Your best bet, and I’m certainly not advocating this, because it would get you in some serious hot water; would be to contract with a factory in China or thereabouts to make them for you. If you insist on dealing in knockoff merchandise, at lease make it yourself so you’re not paying someone else’s markup. Again, that’s hypothetical. Don’t do it.
We are professional Nike NFL Jerseys company here, thank you for your visting our company’s online shop , we are legitimate company in china, and all our NFL Jerseys are factory wholesaler price, have cheap jerseys a nice discount 57% off for every term Jerseys, our Cheap Nike NFL Jerseys have the authentic quality, we are major doing business with the USA and Canada customers, but we also looking forward to do business with worldwide customers, all our company’s Wholesale Nike NFL Jerseys have passed the ISO9001 quality approve, we also supply NBA, MLB, NACC, NHL jerseys, they are all Nike NFL Jerseys China to every wholesale business customers. Wish you enjoy your shopping here!
PS: We will jerseys from china make the shippment in 24 hours and give the customers right tracking number(EMS,DHL,UPS or TNT) after we ship, our payment is GSpay, 95Epay, Western Union and Bank Transfer, satisfy different customers different demand, what we want is long term business with every customers and supply our best price best quality and best after-sale service to them. We are looking forward to built a long term business with you!
For most fans, there is exactly one kind of jersey on the shopping list before each new NBA season: A replica jersey that sports not only the team’s colors and official logos, but also the name and number of a fan’s favorite player. For those who are sticking with this traditional option, we have jerseys and styles for every single one of the NBA’s teams nationwide. In addition to replica home jerseys, we have http://www.innathydepark.com/cheap-jerseys-free-shipping.html a series of away jerseys and alternates that are sure to diversify an existing collection and stand out in a crowd.

1.关于 CUBRID

大体上,CUBRID 是一个全面的开源关系数据库管理系统且针对 WEB 应用做了高度优化,尤其是那些需要处理海量数据和巨大并发请求的复杂 WEB 服务。

www.slideshare.net/cubrid/growing-in-the-wild-the-story-by-cubrid-database-developers

具体而言,CUBRID 采用 C 语言编程实现。它是可扩展的,是一个与 MySQL 几乎完全兼容的高性能数据库系统。CUBRID 是一个具有独特架构和丰富功能的系统。其高可用性功能,同步/异步/半同步复制 (Replication),在线增量备份,和许多其它企业级功能使得 CUBRID 成为 WEB 服务的一个可靠解决方案。通过独特的功能优化,CUBRID 能够在更少的响应时间内处理更多的并行请求。

在线杂志 Method & Tools 最近发表了一个伟大故事般的关于CUBRID 介绍性文章。我们推荐你去阅读它。文章中简短地介绍了 CUBRID 的功能,有关如何快速入门,以及总结了一些有用和重要的建议。享受阅读吧!


为什么选择 CUBRID

CUBRID 开发始于 2006 年,如今它正变得非常受欢迎因为其清晰和为 WEB 应用高度优化的软件体系结构,以及丰富的数据库功能。它的代码库进行了全面的优化和严格的质量保证。CUBRID 被需要中小企业和大机构采用,后者有超过 10,000 台数据服务器。(参见:谁在使用 CUBRID

CUBRID,不同于其它数据库系统,没有企业版。它不区分社区和企业之间的许可策略。只有一个版本的 CUBRID 数据库管理系统,它遵循 GPLv2(通用公共许可证第二版)或更高版本。CUBRID 的这一开源策略对于客户端程序开发公司极为有利。他们不需要购买任何企业许可证或分出他们的收入。为机构在选择数据库管理系统替代方案时提供显著节约成本的机会。(参见完整文章:CUBRID 开源许可政策

一个基于 CUBRID 的数据库解决方案的总拥有成本(TCO)比其它替换方式显著节约硬件成本。CUBRID 的高性能,它的优化和完美塑性意味着机构可以为同样的并发用户数部署更便宜的硬件并且同样维持 7×24 不间断的服务。(注:本段意译可能有些不到位,见谅)

了解更多


谁在使用 CUBRID

在线社交游戏,著名的 基于 Web 的文字处理器,以及众多的 企业站点 均依托于 CUBRID 数据库。它还应用于一些 NHN 上最流行的 WEB 应用,韩国第一搜索门户拥有 3400 万用户每天 1700 万的独立访客。

此外,大型主机托管公司 Cafe24 和 Mireene,软件安全公司 ESTsoft,以及许多韩国地方高效都采用 CUBRID 管理他们的数据。

三分之二的 CUBRID 引用来自政府部门。韩国国税厅Korea Ministry of Public Administration and SecurityKorea Ministry of National DefenseBusan Transportation Corporation,以及韩国白宫都是采用 CUBRID 作为他们的数据库管理软件。试想一下,他们有多少敏感数据,他们有多少安全需求,他们都依托于 CUBRID。CUBRID 帮助许多机构以较低的拥有成本实现更大的效益和性能。

NHN Corporation Cafe24 MireeneESTsoft Korea National Tax Service Korea Ministry of Public Administration and Security Korea Ministry of National DefenseBusan Transportation Corporation Korea White House

查看 CUBRID 用户的完整列表


关于 CUBRID 的更多信息

您也可以在其它语言中找到关于 CUBRID 的更多信息。


下载 CUBRID

http://www.cubrid.org/downloads

CUBRID 真正的开源并且免费。请随意下载。

如果您有任何问题,请使用我们的 Q&A 站点,论坛,Twitter 或 Facebook。

 

原文地址:http://www.cubrid.org/about

CUBRID – 一款可用来代替 MySQL 的开源数据库

最近在学习 Yii2 的时候发现了一个新的开源数据库 cubrid,官网:http://www.cubrid.org 。

据官网称它是全功能的 SQL 关系数据库,而且特别为高并发高负荷的 WEB 站点而优化设计,提供了很多只有大型商业数据库才支持的功能(多机热备、分布式事备等)。官网的各类评测也都是直接瞄准 MySQL。

手上正准备重新架构一个新的 WEB 项目,看到 cubrid 的介绍有点心动,也提供 PHP 的访问扩展。但毕竟太新了,没发现有任何中文文资料和使用心得,打算接下来从官网的文档了解起来,顺便译成中文,与有兴趣的人士共同学习交流。

第一次翻译文档,有点紧张,英文水平有限不当之所在所难免;速度可能也不快,尽量争取吧!

PHP 编码规范:PSR-0/PSR-1/PSR-2/PSR-3

团体协作开发时,编码规范和标准极其重要。除了借助 IDE 等工具完成一部分外,起码的规范都应该了解清楚,重温一下 fig 组织制定的 PSR-{0,1,2,3} 吧。

具体地址:https://github.com/php-fig/fig-standards/tree/master/accepted

如需中文版(繁体)参见:
PSR-1:http://blog.mosil.biz/2012/08/psr-1-basic-coding-standard/
PSR-2:http://blog.mosil.biz/2012/09/psr-2-basic-coding-standard/

升级手记:通通最新版,php-5.5.0/nginx-1.4.1/mysql-5.6.12

俗话说“稳定压倒一切”,不出问题或没有特殊需求的话,哪怕他们如火如荼的发布新版,吹嘘着新功能新特性,大部分人仍会选择不升级。

手上的机器大多也是停留在超旧的版本上,比如:php-5.2.x,nginx-0.8.44,mysql-5.0.89 …

相比之下确实太老太老了,都好几年前发布的甚至有的已经逐步停止支持(即使有BUG也没人修复),总归得向前看。这次激进一点,全部拿最新版本开刀。

我个人有一个习惯,使用新东西前会比较全面的去了解一下。像这些重要软件都会采用源码方式编译,仔细核对手册上的配置选项级含义,然后做一套基础模板出来。这么多年过去了,会有新的选项支持或废弃了旧选项。

1. nginx 这是足以取代 apache 的新生 web 服务器软件,目前我们已经全面推广在使用。特点就是高性能,低开销。从 0.8.44 升级来还算顺利,配置文件也基本没变。我的配置指令如下:

CFLAGS=-O2 ./configure --prefix=/path/to/nginx \
--user=nobody --group=nogroup \
--without-select_module --without-poll_module \
--with-http_ssl_module --with-http_gzip_static_module \
--with-http_stub_status_module \
--with-pcre \
--without-http_ssi_module --without-http_userid_module \
--without-http_geo_module --without-http_map_module \
--without-http_uwsgi_module --without-http_scgi_module \
--without-http_memcached_module

make && make install

一路顺利,然后还测试了最近很火红和被热追的 ngx_lua 模块,安装比较复杂,这里不细说了。

下面再分享一下我这儿关于 PHP 的配置部分,完美支持 PATH_INFO(甚至你的目录名取为 *.php 也支持):

## PHP/FCGI support
error_page 434 = @fastcgi;
location ~ \.php$ {
  if (-d $request_filename) {
    rewrite ^ $uri/ redirect;
  }
  if (!-f $request_filename) {
    return 434;
  }
  include fastcgi.conf;
}

## PHP with pathinfo
location ~ \.php/ {
  try_files $uri $uri/ @fastcgi;
}

## FastCGI handler
location @fastcgi {
  fastcgi_split_path_info ^(.+?\.php)(/.*)$;
  if (!-f $document_root$fastcgi_script_name) {
    return 404;
  }
  include fastcgi.conf;
}

2. PHP-5.5,编译安装也很顺利,内置了 ZendOpcache,因此配合 apcu(取代apc) 来做 user cache。
但面临的大量 error log,主要是以前不规范的 E_NOTICE,还有很多 E_STRICT, E_DEPRECATED 这种是随着 PHP 变迁
而造成的,怨不得人。最无比蛋疼的是:preg_replace 中的 /e 修正符,mysql 扩展(mysql_connect)deprecated 了。

:( 为确保新代码的规范性,我们决定在 php.ini 里采用 E_ALL,而旧代码则在公共头文件修改 error_reporting 来临时屏蔽。

3. MySQL 5.6.12,这个是最纠结的。编译时间相当长,下面是我的 cmake 配置:

cmake -DCMAKE_INSTALL_PREFIX=/home/soft/mysql56 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1

make && make install

漫长编译过后。从网上下载了一份比较新的中文版的 my.cnf 对照 changeslog 改了改做模板(不少选项失效了,如:query-slow-log)。
就头疼那个数据库转换,拿几个库简单测试一下都不太好,用 mysql_upgrade 均失败,大概版本跨度太大了。

于是手动修改新的 my.cnf 将服务绑在别的端口和 socket 上先,然后新旧2个 MYSQL 都开起来。
采用 mysqldump 将旧版数据导出来(7G多),再导入新版 mysql 中,再在新版处运行 bin/mysql_upgrade 完成升级。

注:需要手动删除旧版导出数据中的 `mysql.user` 表的 root 等相关帐号,避免冲突导不进。

通过 javascript load 另一个 script 文件所碰到的问题

在 web 开发中,出于跨域同步、远程调用等目的,经常需要在网页中通过 script 加载另一段远程 script。

最常用最简单的方法就是直接用 document.write 输出加载脚本的 HTML,如下:

document.write('<script src="http://somehost/path/to/script.js" type="text/script"></' + 'script>');

通常来说用这个方法是没有什么问题的,但是最近在帮人分析整合 phpcms 与 discuzx 同步登录时,发现在 discuzx 登录后无论如何也没能让 phpcms 同步登录。

原因是 dz 的登录采用的是 ajax 方式,ucenter 返回的同步代码就是用上面方法向所有 APP 发起一次 JS 请求模拟登录。phpcms 自身又有一套 phpsso 的单点登录体系,它收到请求后又需要分发给更多采用 phpsso 的 APP,于是它又生成一堆如上方法的 script 输出给最终用户。

但到了最终用户这儿,由于是 ajax 异步加载的,大概算是 BUG,再次输出的 document.write(‘<script..></script>’) 不执行,造成无法同步。

目前的解决方法是在第二次需要加载 js 请求时,换用以下方式:

var s = document.createElement('script');
s.setAttribute("type","text/javascript");
s.setAttribute("src", "http://somehost/path/to/script.js");
document.body.appendChild(s);

顺便提一下,曾经看到过文章说用 document.body.appendChild 在 IE 下有时会卡死,建议改用:

document.getElementsByTagName("head")[0].appendChild(s);