Cheminformatics Databases and Web Sources
Cheminformatics Databases and Web Sources
squid3 http 代理服务器设置
squid3 http 代理服务器设置
sudo apt-get install squid3
设置也不复杂
主要更改/etc/squid3/squid.conf文件.
犹如下几项:去掉#号
1port :3128
2 visible_hostname
3 将http_access deny all改为allow all
sudo /etc/init.d/squid3 stop
sudo /etc/init.d/squid3 start
就可以了,很简单的。
fat32 转 NTFS
convert c:/FS:NTFS
命令
fat32 转 NTFS
PHP网页导出Word文档的方法
file:///home/wanguan2000/%E6%A1%8C%E9%9D%A2/n-1930.html
一般,有2种方法可以导出doc文档,一种是使用com,并且作为php的一个扩展库安装到服务器上,然后创建一个com,调用它的方法。安装过office的服务器可以调用一个叫word.application 的com,可以生成word文档,不过这种方式我不推荐,因为执行效率比较低(我测试了一下,在执行代码的时候,服务器会真的去打开一个word客户端)。理想的com应该是没有界面的,在后台进行数据转换,这样效果会比较好,但是这些扩展一般需要收费。
ja6M2}2s!h/H 第2种方法,就是用PHP将我们的doc文档内容直接写入一个后缀为doc的文件中即可。使用这种方法不需要依赖第三方扩展,而且执行效率较高。
,J*e*K ha]+X9o word本身的功能还是很强大的,它可以打开html格式的文件,并且能够保留格式,即使后缀为doc,它也能识别正常打开。这就为我们提供了方便。但是有一个问题,html格式的文件中的图片只有一个地址,真正的图片是保存在其他地方的,也就是说,如果将HTML格式写入doc中,那么doc中将不能包含图片。那我们如何创建包含图片的doc文档呢?我们可以使用和html很接近的mht格式。
/Af7h7]$} mht格式和html很类似,只不过在mht格式中,外部链接进来的文件,比如图片、Javascript、CSS会被base64进行编码存储。因此,单个mht文件就可以保存一个网页中的所有资源,当然,相比html,它的尺寸也会比较大。BSD爱好者乐园e3O-QJ$P9@
mht格式能被word识别吗?我将一个网页保存成mht,然后修改后缀名为doc,再用word打开,OK,word也可以识别mht文件,并且可以显示图片。BSD爱好者乐园8yyJj(jZ];Q)Q
好了,既然doc可以识别mht,下面就是考虑如何将图片放入mht了。由于html代码中的图片的地址都是写在img标签的src属性中,因此,只要提取html代码中的src属性值,就可以获得图片地址。当然,有可能您获取到的是相对路径,没关系,加上URL的前缀,改成绝对路径就可以了。有了图片地址,我们就可以通过file_get_content函数获取到图片文件的具体内容,然后调用base64_encode函数将文件内容编码成 base64编码,最后插入到mht文件的合适位置即可。
W-m Bo(D_jx s 最后,我们有两种方法将文件发送给客户端,一种是先在服务器端生成一个doc文档,然后将这个doc文档的地址记录下来,最后,通过header(”location:xx.doc”);就可以让客户端下载这个doc。还有一种是直接发送html请求,修改HTML协议的header部分,将它的content-type设置为 application/doc,将content-disposition设置为attachment,后面跟上文件名,发送完html协议以后,直接将文件内容发送给客户端,也可以让客户端下载到这个doc文档。
9~(x.rO%E7P
Zy$I@’hB\1X9F,\BSD爱好者乐园�Xt4JW Z,m
实现
IHL+G/M!q`
#Z|,cLS$U f pBSD爱好者乐园\)o.^vj K
通过以上的原理介绍,相信大家应该对实现的过程有个初步的了解了,下面我给出一个导出函数,这个函数可以将HTML代码导出成一个mht文档,参数有3个,其中后2个为可选参数BSD爱好者乐园w$jY6ThP5r
content:要转换的HTML代码
h)y@2V+c absolutePath: 如果HTML代码中的图片地址都是相对路径,那么这个参数就是HTML代码中缺少的绝对路径。
8dJnCjc8h isEraseLink:是否去掉HTML代码中的超链接BSD爱好者乐园&[c6y^t2yWu C)e:z
McN]SD1T�B,|g 返回值为mht的文件内容,您可以通过file_put_content将它保存成后缀名为doc的文件
9U’g?.c(H5fQ@P
6D-w7C^+A;] 这个函数的主要功能其实就是分析HTML代码中的所有图片地址,并且依次下载下来。获取到了图片的内容以后,调用MhtFileMaker类,将图片添加到mht文件中。具体的添加细节,封装在MhtFileMaker类中了。
9p%L)Mio~’i vOP
5^?srF0o
6k#rQz w:\.C3qJ ^;j3EBSD爱好者乐园R%H/zzZ’Uv.H1Lq
/**
E6n8y6tf4\ * 根据HTML代码获取word文档内容BSD爱好者乐园)tb$J ^_`mG
* 创建一个本质为mht的文档,该函数会分析文件内容并从远程下载页面中的图片资源
/{Bq qY * 该函数依赖于类MhtFileMaker
4V:q#p7T,Un9Q * 该函数会分析img标签,提取src的属性值。但是,src的属性值必须被引号包围,否则不能提取
:BHM$h%K+Eyj *
2|,]#h/RC^G!d)}0| * @param string $content HTML内容
3qQ3V6`S#Gh] * @param string $absolutePath 网页的绝对路径。如果HTML内容里的图片路径为相对路径,那么就需要填写这个参数,来让该函数自动填补成绝对路径。这个参数最后需要以/结束BSD爱好者乐园 Vi,G}#Y!X0nQD9l
* @param bool $isEraseLink 是否去掉HTML内容中的链接BSD爱好者乐园/O$p,\�X!Uy1sIU
*/
(e1~[a%SvU]function getWordDocument( $content , $absolutePath = “” , $isEraseLink = true )BSD爱好者乐园r4SRHo)p4`A/T
{BSD爱好者乐园W2jm(hbeN
$mht = new MhtFileMaker();
]#lM;CE3?!f$S*nH’L if ($isEraseLink)
-XKq�@,t#f $content = preg_replace(’/(\s*.*?\s*)/i’ , ‘$1′ , $content); //去掉链接
t[nY'W!Z7t#@s@$h S(FBSD爱好者乐园.k'nK"t1y#pD-i;s
$images = array();
QMzk4P:c4yt $files = array();
0^#[J Vnv3Dp)U7l $matches = array();BSD爱好者乐园hU4G q2M"j'{
//这个算法要求src后的属性值必须使用引号括起来BSD爱好者乐园/biX Aorw Z
if ( preg_match_all('//i',$content ,$matches ) )
a~3yE"[$Q+A {BSD爱好者乐园)uHt,s]#j
$arrPath = $matches[1];
LP~’_/k6} for ( $i=0;$iAddContents(”tmp.html”,$mht->GetMimeType(”tmp.html”),$content);BSD爱好者乐园9rys:U7sy”HeRPVI
BSD爱好者乐园 p,Q z~ Kw]8{}
for ( $i=0;$iAddContents($files[$i],$mht->GetMimeType($image),$imgcontent);
s(dra.C2qp5W }
^’K4i?#x$^\6g else
N1b-t%Bek {
*zWM5l-m echo “file:”.$image.” not exist!
“;
:I(V.ViH2ip-Hu| }
:vg”A%z _!A`C1k }BSD爱好者乐园0rc[ O9{QH ^Fvm%x
.xW$W?"}{-Hb.O return $mht->GetFile();
*n1c ~/r(d x CF�U_"v}BSD爱好者乐园 p+|]D)s f/S xq}
P0k%\ ?Puvpw#? DBSD爱好者乐园”ud;o;}4A!y Q~+d
kvv|Ou”L!eBSD爱好者乐园*R#Hs!w-Qyq
使用方法:
“vJu8rU f)e8fUBSD爱好者乐园’P6IiEH5?B`w
$fileContent = getWordDocument($content,”http://www.yoursite.com/Music/etc/”);
NI,c^,c:r$fp = fopen(”test.doc”, ‘w’);
8Q:{g wcffwrite($fp, $fileContent);BSD爱好者乐园%Ih’N!K`_2\6M)s/g
fclose($fp);
U,L-{ LNv7e5c
IL_ ^{ T jGb其中,$content变量应该是HTML源代码,后面的链接应该是能填补HTML代码中图片相对路径的URL地址
9E+{ Y][U}fBSD爱好者乐园8LTi| rU7y
注意,在使用这个函数之前,您需要先包含类MhtFileMaker,这个类可以帮助我们生成Mht文档。
在rails里面怎么做loading或显示花了多少时间?等结果出来自动跳转到结果页面
我有一个contorller要调用system做个运算在返回结果,但是时间比较久大概1分钟,我怎么在页面做个类似loading或者显示已用时间的功能,等结果出来自动跳转到结果呢?
def app
“system ….”大概一分钟,结果返回到一个文件result.txt
@str = IO.read(”result.txt”)
end
怎么在页面做个类似loading或者显示已用时间的功能,等结果出来自动跳转到结果呢?
app.rhtml
<%= @str %>
ROR部署lighttpd+FCGI,MySQL数据库
在Linux平台上安装和配置Ruby on Rails详解
ruby on rails推荐的生产运行环境是Linux/FreeBSD/Unix,即Unix系列的操作系统,采用lighttpd+FCGI的解决方案。以下我将 以Linux操作系统,lighttpd+FCGI,MySQL数据库为例,从源代码编译安装开始讲解。
在安装之前,应该确认Linux操作系统已经安装好gcc编译器,否则请用Linux安装光盘先行安装gcc编译器:
gcc –v
如能返回gcc版本号,则gcc正确安装。
一、安装Ruby解析器
一些Linux发行版本,MacOSX操作系统都自带Ruby解析器,但是我仍然建议自行下载ruby源代码编译安装。因为一方面可以自己定制ruby安装的路径,另一方面可以在编译过程中自行添加更多的特性。
ruby的源代码可以从Ruby官方网站下载:
http://www.ruby-lang.org/en/downloads/
下载源代码包到本地Linux主机,然后解压缩,进入该目录,进行配置,编译和安装:
tar xzvf ruby-1.8.5.tar.gz
cd ruby-1.8.5
./configure –prefix=/usr/local/ruby
make && make install
如果想浏览所有的configure参数,可以:
./configure –help |more
如果不定制安装的目录,默认将安装到/usr/local目录下面。然而我建议自行定制一个ruby的安装目录,例如/usr/local/ruby,这样便于以后的升级,不会和操作系统其他软件混在一起。
安装好以后,修改操作系统PATH路径,加入/usr/local/ruby/bin:
export PATH=/usr/local/ruby/bin:$PATH
将我们自己安装的ruby放在系统PATH前面,避免操作系统自带的ruby造成的干扰。在Linux上,一般将设置放在/etc/profile中,便于对全局生效。
二、安装ruby on rails
在安装rails之前,要先安装rubygems。rubygems是ruby的在线包管理工具,可以从rubyforge下载rubygems:
http://rubyforge.org/projects/rubygems/
下载好源代码包,解压缩,安装:
tar xzvf rubygems-0.9.0.tgz
cd rubygems-0.9.0/
ruby setup.rb
然后就可以安装rails了,在确认服务器已经连接互联网的情况下执行:
gem install rails –y
即通过gem从rubyforge网站下载rails所有依赖包安装。
安装好rails以后,可以执行:
rails –v
确认一下rails的版本。
三、安装ruby的数据库适配器
rails发行包中已经自带纯ruby的MySQL数据库适配器,然而对于生产环境来说,我们仍然应该下载安装C版本的数据库适配器,以达到更好的性能。下载mysql-ruby-2.7.3.tar.gz:
http://www.tmtm.org/en/mysql/ruby/
tar xzvf mysql-ruby-2.7.3.tar.gz
cd mysql-ruby-2.7.3
ruby extconf.rb –with-mysql-dir=/opt/mysql5
make && make install
注意–with-mysql-dir应该指向MySQL数据库的安装路径,如果数据库服务器和Web服务器不在同一台机器上,那么Web服务器上也必须安装MySQL软件,因为ruby的C版本MySQL适配器需要在编译的时候联接MySQL的系统库。
四、安装Ruby的FCGI支持
由于ruby的fcgi支持库需要在编译的时候联接FCGI的系统库,因此我们需要先安装FCGI库,下载FCGI源代码发行包:
tar xzvf fcgi-2.4.0.tar.gz
cd fcgi-2.4.0
./configure –prefix=/usr/local/fcgi
make && make install
同样,将fcgi安装在自己指定的目录下,而不是默认的/usr/local,避免多个软件混在一起。
然后就可以安装ruby的fcgi支持库了,下载ruby-fcgi-0.8.7.tar.gz:
http://rubyforge.org/projects/fcgi/
tar xzvf ruby-fcgi-0.8.7.tar.gz
cd ruby-fcgi-0.8.7
ruby install.rb config — –with-fcgi-include=/usr/local/fcgi/include –with-fcgi-lib=/usr/local/fcgi/lib
ruby install.rb setup
ruby install.rb install
五、安装lighttpd Web Server
安装Lighttpd
在安装lighttpd之前,应该确认操作系统已经安装pcre,即Perl兼容的规则表达式库:
rpm –qa |grep pcre
如果没有,请从Linux安装光盘里面安装。
然后下载lighttpd:
http://www.lighttpd.net/download/
tar xzvf lighttpd-1.4.13.tar.gz
cd lighttpd-1.4.13
./configure –prefix=/usr/local/lighttpd
configure完毕以后,会给出一个激活的模块和没有激活模块的清单,可以检查一下,是否自己需要的模块都已经激活,在enable的模块中一定要有“mod_rewrite”这一项,否则重新检查pcre是否安装。然后编译安装:
make && make install
编译后配置:
cp doc/sysconfig.lighttpd /etc/sysconfig/lighttpd
mkdir /etc/lighttpd
cp doc/lighttpd.conf /etc/lighttpd/lighttpd.conf
如果你的Linux是RedHat/CentOS,那么:
cp doc/rc.lighttpd.redhat /etc/init.d/lighttpd
如果你的Linux是SuSE,那么:
cp doc/rc.lighttpd /etc/init.d/lighttpd
其他Linux发行版本可以自行参考该文件内容进行修改。然后修改/etc/init.d/lighttpd,把
LIGHTTPD_BIN=/usr/sbin/lighttpd
改为
LIGHTTPD_BIN=/usr/local/lighttpd/sbin/lighttpd
此脚本用来控制lighttpd的启动关闭和重起:
/etc/init.d/lighttpd start
/etc/init.d/lighttpd stop
/etc/init.d/lighttpd restart
如果你希望服务器启动的时候就启动lighttpd,那么:
chkconfig lighttpd on
这样lighttpd就安装好了,接下来需要配置lighttpd。
配置Lighttpd
修改/etc/lighttpd/lighttpd.conf
1)server.modules
取消需要用到模块的注释,mod_rewrite,mod_access,mod_fastcgi,mod_simple_vhost,mod_cgi,mod_compress,mod_accesslog是一般需要用到的。
2)server.document-root, server.error-log,accesslog.filename需要指定相应的目录
3)用什么权限来运行lighttpd
server.username = “nobody”
server.groupname = “nobody”
从安全角度来说,不建议用root权限运行web server,可以自行指定普通用户权限。
4)静态文件压缩
compress.cache-dir = “/tmp/lighttpd/cache/compress”
compress.filetype = (”text/plain”, “text/html”,”text/javascript”,”text/css”)
可以指定某些静态资源类型使用压缩方式传输,节省带宽,对于大量AJAX应用来说,可以极大提高页面加载速度。
5)配置ruby on rails
最简单的配置如下:
$HTTP["host"] == “www.xxx.com” {
server.document-root = “/yourrails/public”
server.error-handler-404 = “/dispatch.fcgi”
fastcgi.server = (”.fcgi” =>
(”localhost” =>
(”min-procs” => 10,
“max-procs” => 10,
“socket” => “/tmp/lighttpd/socket/rails.socket”,
“bin-path” => “/yourrails/public/dispatch.fcgi”,
“bin-environment” => (”RAILS_ENV” => “production”)
)
)
)
}
即由lighttpd启动10个FCGI进程,lighttpd和FCGI之间使用本机Unix Socket通信。
Lighttpd的FAQ:无法启动Ruby on Rails
FastCGI 的启动脚本位于Rails应用目录下面public/dispatch.fcgi,如果无法启动Lighttpd,报告FastCGI错误,你可以尝试着 手工运行该脚本cd public && ./dispatch.fcgi,看看是否可以运行。一般来说,很多人都是在Windows下面创建Rails项目,导致dispatch.fcgi脚本 的ruby运行路径指向windows下面的ruby,部署到Linux上面就无法运行了,另外一方面Windows上面创建的Rails项目在 Linux上面dispatch.fcgi没有可执行权限,所以也需要授予可执行权限。
六、安装ImageMagick和RMagic
RMagic是ruby处理图片需要用到的库,很多ruby应用由于都涉及图片处理的功能,往往需要依赖RMagic,但安装ImageMagick和RMagic相当烦琐,需要特别的说明。
安装ImageMagick
ImageMagick是用C语言实现的图形处理库,有Unix版本和Windows版本。对于Unix版本来说,安装比较麻烦些,另外不建议 安装ImageMagick二进制版本,往往会导致缺少某些图片处理功能,导致RMagic安装失败。下载ImageMagick源代码,解压缩,配置:
tar xzvf ImageMagick-6.2.9-0.tar.gz
cd tar xzvf ImageMagick-6.2.9
./configure –prefix=/usr/local/ImageMagick
观察配置后给出来的支持图形格式,看看该图形格式支持是否是yes,如果不是,那么必须先安装该图形格式的本地库。例如,你应该检查是否已经安装如下rpm包:
rpm –qa |grep libpng
rpm –qa |grep libpng-devel
rpm –qa |grep libjpeg
rpm –qa |grep gd-devel
如果你希望支持tiff格式,还应该检查
rpm –qa |grep libtiff
如果没有安装,那么在Linux安装光盘找到相应rpm包安装上,再次configure直到确认需要的图形格式全部支持为止,然后编译安装:
make && make install
由于ImageMagic被安装在我们自行指定的/usr/local/ImageMagick,后面安装RMagic会找不到需要用到的ImageMagic的命令和库,因此需要配置一下操作系统:
编辑/etc/profile里面的PATH环境变量,在最后面加入:
export PATH=/usr/local/ruby/bin:/usr/local/ImageMagick/bin:$PATH
编辑/etc/ld.so.conf,加入:
/usr/local/ImageMagick/lib
执行命令:
ldconfig
将ImageMagick的库加入系统联接库
然后注销当前用户重新登录,便于环境变量修改生效,执行:
convert logo: logo.gif
看是否正确生成一个logo.gif的图片文件。
安装RMagic
http://rubyforge.org/projects/rmagick/
在rubyfoge上面下载RMagic的源代码发行包,不要下载gem包,然后解压缩编译:
./configure
make && make install
如果配置和编译过程没有报错,即大功告成。
对于MacOSX来说,安装RMagic以上步骤会出错,请参考:
http://rmagick.rubyforge.org/install-osx.html
总体来说,ImageMagick和RMagic的安装很容易出错,安装起来比较困难,如果碰到无法解决的问题,可以通过Google寻求解决办法。
lesson2
month_a = {”aeb” => “hhh”, “jan” => “hhh”, “apr” => “hhh”, “may” => “hhh” }
puts month_a.index(”hhh”)
为什么是jan呢?不是aeb,apr,may呢?他返回的一个是有什么规律吗?
引用:终于用Rails完成了我的第一个网站
终于用Rails完成了我的第一个网站(二)
距我发第一张贴子的时候大概有两个月了吧,在第一个
网站(http://www.red-fund.com)开发的过程中,存在着不少的问题,而且我也经常去逛javaeye和railscn,在论坛上发现有很多像我一
样的新手对一些程序的开发理念和程序控制不是很到位,当然我并不是什么牛人,只是把一些在开发过程中的一些心得能够共享,让更
多像我一样的新手小走弯路.
在开发一个项目之前,有一个良好的架构思路是必须的,而rails在这方面已经为我们做了很多,各种目录已经建好,我们只要把什么
model,controller放入相关的目录即可.同时这样一种潜规则让我们在学习和分析别人的源代码也能省不少事.我经常看到有些网友说
rails咋个连MSSql,为啥子在windows上运行这么慢,其实rails为我们做的是一种做事最好的方法,如果你非得违背他的方式去做,你会
发现问题不会是连连数据库那么简单,更多的问题等着你,如果放不下.net和MSSql,那么就不要玩rails,他会浪费你的时间和精力.
如果你照着rails的方式去做事,你会发现你不是被rails牵着鼻子走,而是你会发现事情可以变得更简单.
在工具的选择上,我们会羡慕textmate,其实也没有什么,你安个Gvim,再加个rails.vim插件,事情很快可以搞定,如果你没有符合web标
准去设计你的rhtml页面的话,你会觉得vim编辑rhtml真的有点累的.所以我一般是开着gvim和topstyle,gvim用来处理xhtml还是很快
的,而用topstyle写CSS速度很好.再开FF和IE不停的刷,测试页面的兼容性,一般不会有什么问题.所以我建议大家还是使用VIM,在编辑
model和controller的时候一般不用动鼠标,在RAILS的各个目录间切换,感觉还是很不错.所以在页面的设计上,一般CSS和JS再加个
XHTML,基本上可以完成,用prototype写JS也很好,把你的一些程序中的相关子模块的JS你可以集合到一个变量中,比如发贴时,你就可
以在application.js中定义如下:var Post ={function init(){},function loading(){}},这样对你调试JS和使用RJS都很有好处,程
序变得简洁后,心情也会变得高兴起来的.当然调试JS还是FF的firebug啦!
在MVC的设计过程中,我还是比较遵循REST的开发模式,但有几点必须澄清:一般我们看的教程中的model,controller,还有resource都
是对应一个数据库的表,无形中让我们感觉资源就是对数据库中的一个表进行的CRUD操作.其实model只是一个数据库模型,与数据库中
的一张表是没有必然的联系的.你可以将一些数据的采集压缩到一个Model,这也是model存在理由,专注于数据的内部处理及数据提供.
另外就是资源,一般资源我们是对应到一个控制器,其实控制器就是控制器,与模型和数据库表也没有必然的联系,我们可以把一些我们
认为是资源的东西放在一个controller中并对他操作,比如在一个用户表可能有一个status(状态)的字段,我们可以把对status的操作
放在StatusController中,并开放为资源,只要这样子做对划分你的程序有帮助,能让你的程序更清晰.
在程序的部署上,我选择的是centos+lighttp+fcgi,我没有尝试过部署过windows和测试他们的差异,当然你可以这样子做,选择自己的
好.
在程序的优化上,尽量避免一些N+1查询,有必要的时候用一下:include,在使用find的时候,可以使用:select对不必要的字段进行过滤
,这些都可以有效提高rails的性能.并降低带宽.
在rhtml中,对一些url_for也应该注意一下,对一些简单的url就不要用了,比如:url_for(:action => “delete”,:id => @user)或者是
user_path(@user),虽然这些方法看起来很性感,但你还是要少量使用,因为在url_for生成的过程中,他会对route.rb中的每一条一条
一条对比,当你的route.rb有几十条时有点划不来,你可以直接在rhtml中输入:<a href=”/delete/<%=@user.id%>”></a>,我想你一定
可以看得出来谁更快吧.另外像一般的helper也可以直接输入代替.像<%end_form_tag%>直接输入</form>不是更好吗?
在session store中,现在我还是使用的active_recore_store,我尝试了一下SQLSessonStore,但不知咋回事,总是启动不了,就是报错.
还期待有用过该插件的朋友指点一下.
在rails使用报表插件,我测试过chartdirector,虽然速度快,但是不太好看,后来是测试Gruffy好像都不太好用,后来发现使用flash图表还是
不错的,于是找到maani xml flashchart及fusionchart,maani xml虽然好用,但其免费版不行,居然点击图标后就连到他们的网站去了,后来
我到fusionchart上一查,fusionchart说他们是flashchart的先驱者,由于有很不不齿的人抄袭模仿他们,所以他拉推出了免费版,使用了一
下确实不错,比maani的好多了,关键是不用出钱了哈.如果大家有什么使用上的问题及想研究如何ajax的话,可以到我网站上看一看,交流
一下.
上面的仅为小弟的一些经验之谈,有些谈不上原创,只是觉得还比较有用,希望像我一样的新手能够在平时的开发中注意,有不对的地方
望高手指教.
ruby on rails
http://wanguan2000.blog.ubuntu.org.cn
ruby: http://rubyinstaller.rubyforge.org
http://www.rubyonrails.org/
sudo gem install rails –include-dependencies
gem install -v=1.2.6 rails
rubyGems http://rubygems.rubyforge.org
tar xzf rubygems .tar.gz
./configure
make
make test
sudo make install
mysql : http://dev.mysql.com/downloads
clinet: http://dev.mysql.com/downloads/gui-tools
Hello world!
欢迎来到 Blog.ubuntu.org.cn。这是您的第一篇日志。您可以编辑它或是删除它,然后开始写您自己的 blog。
