贝贝爸爸的程序人生

关注Seam、BPM
posts - 23, comments - 10, trackbacks - 0, articles - 32
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

2011年5月10日

今天兴致来了,说要在家搞搞平台的东西,nnd,竟然遇到了莫名其妙的mysql乱码问题,其实不是mysql的问题,是jdbc数据源的链接没有指明字符集的问题,记下来备用:<datasource jta="false" jndi-name="java:jboss/datasources/MySqlDS" pool-name="bdp" enabled="true" use-java-context="true" use-ccm="true">
                    <connection-url>jdbc:mysql://localhost:3306/bdp-dev?useUnicode=true&amp;characterEncoding=utf8</connection-url>
                    <driver>com.mysql</driver>
                    <pool>
                        <min-pool-size>10</min-pool-size>
                        <max-pool-size>100</max-pool-size>
                        <prefill>true</prefill>
                        <use-strict-min>false</use-strict-min>
                        <flush-strategy>FailingConnectionOnly</flush-strategy>
                    </pool>
                    <security>
                        <user-name>root</user-name>
                    </security>
                    <statement>
                        <prepared-statement-cache-size>32</prepared-statement-cache-size>
                        <share-prepared-statements>true</share-prepared-statements>
                    </statement>
                </datasource>

posted @ 2012-05-19 01:40 贝贝爸爸 阅读(765) | 评论 (0)编辑 收藏

今天在处理zTree的时候,无意间遇到一个很好的插件,可以将array对象转换为json对象,真的很好用哦,呵呵。
var thing = {plugin: 'jquery-json', version: 2.3};

var encoded = $.toJSON( thing );
// '{"plugin":"jquery-json","version":2.3}'
var name = $.evalJSON( encoded ).plugin;
// "jquery-json"
var version = $.evalJSON(encoded).version;
// 2.3
像上面那样用就行了,很容易进行请求间的参数传递。
项目地址为:http://code.google.com/p/jquery-json/

posted @ 2012-05-10 13:45 贝贝爸爸 阅读(1070) | 评论 (1)编辑 收藏

 cat /tmp/id_rsa.john.pub >> ~/.ssh/authorized_keys

posted @ 2012-04-26 14:45 贝贝爸爸 阅读(385) | 评论 (0)编辑 收藏

nnd,今天搞了快2个小时,总是无法解决ldap支持的其他属性返回问题,因为之前配置的是3.3.5版本,现在最新的版本是3.4.11,原来的配置竟然无法使用了,原来是因为增加服务:
<bean id="serviceRegistryDao" class="org.jasig.cas.services.InMemoryServiceRegistryDaoImpl">
导致无法返回principal的其他属性到客户端,其实象这样配置即可:<bean id="attributeRepository"
  class="org.jasig.services.persondir.support.ldap.LdapPersonAttributeDao">
  <property name="contextSource" ref="contextSource" />
  <property name="baseDN" value="ou=users,${ldap.basePath}" />
  <property name="requireAllQueryAttributes" value="true" />
  <!--
  Attribute mapping beetween principal (key) and LDAP (value) names
  used to perform the LDAP search.  By default, multiple search criteria
  are ANDed together.  Set the queryType property to change to OR.
  
-->
  <property name="queryAttributeMapping">
    <map>
      <entry key="username" value="uid" />
    </map>
  </property>
 
  <property name="resultAttributeMapping">
    <map>
    <!-- Mapping beetween LDAP entry attributes (key) and Principal's (value) -->
    <entry key="name" value="userName"/>
    <entry key="uid" value="userId"/>
    </map>
  </property>
</bean>

    <bean id="serviceRegistryDao" class="org.jasig.cas.services.InMemoryServiceRegistryDaoImpl">
        <property name="registeredServices">
            <list>
                <bean class="org.jasig.cas.services.RegisteredServiceImpl">
                    <property name="id" value="0" />
                    <property name="name" value="HTTP" />
                    <property name="description" value="Only Allows HTTP Urls" />
                    <property name="serviceId" value="http://**" />
                    <property name="evaluationOrder" value="10000001" />
                    <property name="ignoreAttributes" value="true" />
                </bean>
                                ………………
                        </list>
                </property>
        </bean>
如上所示,其中注册的服务registeredServices
默认是不允许返回其他属性到客户端的!!!!!,真的是很坑爹啊,不过,配置一下ignoreAttributes即可,也可以指定allowedAttributes
如下:
<property name="allowedAttributes">
    <list>
            <value><!-- your attribute key --></value>
    </list>
</property>

posted @ 2012-04-25 23:12 贝贝爸爸 阅读(1320) | 评论 (0)编辑 收藏


cat /boot/grub2/grub.cfg |grep Fedora
grub2-set-default "Fedora Linux, with Linux 3.1.0-5.fc16.i686"
grub2-editenv list
grub2-mkconfig -o /boot/grub2/grub.cfg

posted @ 2012-04-20 08:50 贝贝爸爸 阅读(366) | 评论 (0)编辑 收藏

#
contrib / completion / git-completion.bash

#
 Source the git bash completion file
if [ -f ~/.git-completion.bash ]; then
    source ~/.git-completion.bash
    GIT_PS1_SHOWDIRTYSTATE=true
    PS1='[\u@\h:\W $(__git_ps1 "(%s)")]$ '
fi

posted @ 2012-04-04 09:26 贝贝爸爸 阅读(844) | 评论 (0)编辑 收藏

http://www.secondpersonplural.ca/jqgriddocs/index.htm

posted @ 2012-03-29 05:05 贝贝爸爸 阅读(191) | 评论 (0)编辑 收藏

http://junv.sinaapp.com/1955.html

posted @ 2012-03-21 17:22 贝贝爸爸 阅读(276) | 评论 (0)编辑 收藏

http://www.navicat.com/en/download/download.html
NAVJ-W56S-3YUU-MVHV



posted @ 2012-03-19 17:25 贝贝爸爸 阅读(317) | 评论 (0)编辑 收藏

今天调试了一天,所有的步骤都正确,可最后到了web下载,却总是404错误,好心zzq网友帮着一起定位和解决问题,可依然没有找到原因,偶尔的一个google搜索,发现是因为没有sudo启动nginx。。。。
真tmd扯淡了。

posted @ 2012-03-18 20:13 贝贝爸爸 阅读(358) | 评论 (0)编辑 收藏

https://gist.github.com/2066974

posted @ 2012-03-18 08:26 贝贝爸爸 阅读(253) | 评论 (0)编辑 收藏

系统环境
CentOS6.2
#step 1. download libevent https://github.com/downloads/libevent/libevent/libevent-2.0.17-stable.tar.gz
$ ./configure
$ make
$ make verify   # (optional)
$ sudo make install
$ln -s /usr/local/lib/libevent-2.0.so.5 /usr/lib64/libevent-2.0.so.5
#step 2. download FastDFS source package and unpack it,
$ ./make.sh
$ ./make.sh install
#step 3. edit/modify the config file of tracker and storage
#step 3.1.
$ vim /etc/fdfs/tracker.conf
## base_path=??
## reserved_storage_space = 1GB
#step 3.2
$ vim /etc/fdfs/storage.conf
## base_path=/home/yuan/fastdfs/storage
## path(disk or mount point) count, default value is 1
## store_path_count=1
## store_path#, based 0, if store_path0 not exists, it's value is base_path
## the paths must be exist
## store_path0=/home/yuan/fastdfs0
## tracker_server=host:port
#step 4 cp the start shell into /etc/init.d
$ cd FastDFS
$ cp init.d/fdfs_trackerd /etc/init.d
$ cp init.d/fdfs_storaged /etc/init.d
#step 5 mkdir the trackerd base path and storaged base path
$ mkdir /home/yuan/fastdfs
$ mkdir /home/yuan/fastdfs0
#step 6 start trackerd service
$/sbin/service fdfs_trackerd start
###$/sbin/service fdfs_trackerd status
###$fdfs_trackerd (pid 11441) is running...
#step 7 start storaged service
$/sbin/service fdfs_storaged start
###$/sbin/service fdfs_storaged status
###$fdfs_storaged (pid 11553) is running...
#step 8. run test program
#step 8.1. vim /etc/fdfs/client.conf
###base_path=/home/yuan/fastdfs
###tracker_server=192.168.0.197:22122
#step 8.2 run test program
$/usr/local/bin/fdfs_test /etc/fdfs/client.conf upload /usr/include/stdlib.h
#step 9 monitor fdfs
$/usr/local/bin/fdfs_monitor /etc/fdfs/client.conf

posted @ 2012-03-17 16:38 贝贝爸爸 阅读(758) | 评论 (0)编辑 收藏

可能后面会遇到同一台服务器,安装多个jboss实例的问题,那显然的问题可能就是端口冲突问题,怎么办?
1、修改各个配置文件的端口配置
2、最简单的方法是,启动是指明端口绑定步长,例如:-Djboss.socket.binding.port-offset=100

posted @ 2012-03-04 20:40 贝贝爸爸 阅读(458) | 评论 (0)编辑 收藏

mvn deploy:deploy-file -Dfile=target/web-3.1.0-SNAPSHOT-api.jar -Durl=http://repo.yongtai.com.cn/nexus/content/repositories/snapshots/ -DrepositoryId=nexus-snapshots -DpomFile=pom.xml -Dpackaging=jar -Dclassifier=api

posted @ 2012-02-22 12:02 贝贝爸爸 阅读(202) | 评论 (0)编辑 收藏

今天又在centos下折腾呢,呵呵,不过这次的环境是mac下安装centos的虚拟机,mac环境和linux环境还是很大区别,至少无法安装我想要的FastDFS环境,着实有点无法接受,所以只能安装虚拟机了。
ssh centos后,主要安装遇到了如下问题:
1、gcc-c++没有安装,会导致安装pcre的时候,报c++编译器没找到,直接安装:yum install gcc-c++即可
2、zlib包无法找到,安装:yum install zlib-devel即可
3、error while loading shared libraries: libpcre.so.1:[root@bogon nginx-1.0.12]# ldd $(which /usr/local/nginx/sbin/nginx)
    linux-vdso.so.1 =>  (0x00007fff7e9db000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fe4629d0000)
    libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007fe462799000)
    libpcre.so.1 => not found//确实没找到
    libz.so.1 => /lib64/libz.so.1 (0x00007fe462582000)
    libc.so.6 => /lib64/libc.so.6 (0x00007fe4621e1000)
    /lib64/ld-linux-x86-64.so.2 (0x00007fe462bfa000)
    libfreebl3.so => /lib64/libfreebl3.so (0x00007fe461f7e000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00007fe461d7a000)
[root@bogon nginx-1.0.12]# cd /lib64/

[root@bogon lib64]# ln -s libpcre.so.0.0.1 libpcre.so.1
[root@bogon lib64]# ldd $(which /usr/local/nginx/sbin/nginx)
    linux-vdso.so.1 =>  (0x00007fff4d7ff000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fb06f13e000)
    libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007fb06ef07000)
    libpcre.so.1 => /lib64/libpcre.so.1 (0x00007fb06ecda000)
    libz.so.1 => /lib64/libz.so.1 (0x00007fb06eac4000)
    libc.so.6 => /lib64/libc.so.6 (0x00007fb06e723000)
    /lib64/ld-linux-x86-64.so.2 (0x00007fb06f368000)
    libfreebl3.so => /lib64/libfreebl3.so (0x00007fb06e4c0000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00007fb06e2bc000)

posted @ 2012-02-19 07:49 贝贝爸爸 阅读(2099) | 评论 (0)编辑 收藏

这篇文章献给天下儿童的父母。
     老农民的智慧和知识分子的尴尬:
    很多没有上过学的老农民培养出了优秀的孩子,不少有知识、高学历的城里人却把孩子管出诸多毛病,甚至培养出问题孩子,为什么?老农民没知识但有智慧,城里人有知识但没智慧。(知识不等于智慧。)
    智慧的老农民三句话就培养出了好孩子:
    第一句话:“孩子,爸妈没本事,你要靠自己了。”不包办,把责任还给孩子,让孩子拥有了责任心。
    第二句话:“孩子,做事先做人,一定不能做伤害别人的事情。”讲德行,告诉孩子做人的标准。
    第三句话:“孩子,撒开手闯吧,实在不行,回家来还有口饭吃。”无私的爱,无尽的爱!
    看看一些城里人怎么把孩子教育出问题的:
    第一句话:“宝贝,你 好好学习就行了,其他的事情爸爸妈妈来办!”剥夺了孩子负责任的权利,培养出了没有责任心的孩子。
    第二句话:“宝贝,出去不能吃亏,别人打你一定要还手!”基本的做人准则都没有教对,可能培养出“缺德”的孩子。
    第三句话:“我告诉你,你要是再不好好学习,长大没饭吃别来找我!”有条件的爱,根本不是真爱。
    只要拥有智慧,每一位家长都能把孩子培养成才,而智慧与知识和学历并不相关!

posted @ 2011-08-06 22:47 贝贝爸爸 阅读(264) | 评论 (0)编辑 收藏

原文A successful Git branching model
In this post I present the development model that I’ve introduced for all of my projects (both at work and private) about a year ago, and which has turned out to be very successful. I’ve been meaning to write about it for a while now, but I’ve never really found the time to do so thoroughly, until now. I won’t talk about any of the projects’ details, merely about the branching strategy and release management.
这篇文章,将介绍所有一年前我工作中或者个人项目的开发模型,这个模型已经被证明是十分有用的(successfull)。我老早就想写一些关于这个模型的文章,但是总是抽不出时间。在这篇文章中,我将不会介绍项目的详细情况,仅仅对分支的策略和发布管理作一个介绍。

It focuses around Git as the tool for the versioning of all of our source code.
我们将围绕这使用Git作为所有项目源码的版本控制工具。
  • 为何选择GIT?
For a thorough discussion on the pros and cons of Git compared to centralized source code control systems, see the web. There are plenty of flame wars going on there. As a developer, I prefer Git above all other tools around today. Git really changed the way developers think of merging and branching. From the classic CVS/Subversion world I came from, merging/branching has always been considered a bit scary (“beware of merge conflicts, they bite you!”) and something you only do every once in a while.
关于Git作为集中的源码控制系统的优缺点,可以查看一下链接,关于这个话题,有激烈的争论。作为一个开发者,与其他版本控制工具相比,我更喜欢Git,Git真正的改变了开发者关于合并和分支的思考(think)。我曾经也用过CVS、svn,分支和合并,真的很让人头疼(合并时产生的冲突),因此,有时你每次只能做一会工作(个人理解:因为svn这种版本控制库只有一个服务仓库,涉及公共资源,只能锁定编辑)

But with Git, these actions are extremely cheap and simple, and they are considered one of the core parts of your daily workflow, really. For example, in CVS/Subversion books, branching and merging is first discussed in the later chapters (for advanced users), while in every Git book, it’s already covered in chapter 3 (basics).
但是对于Git来说,做这样的工作(分支、合并),太简单!它真的可以作为你日常工作流程中最核心的部分。例如,在有关CVS/svn的书籍中,分支和合并要放到最后一章才会阐述(针对高级用户),然后在Git相关的书籍中,首先就先跟你阐述分支和合并(第3章)。

Enough about the tools, let’s head onto the development model. The model that I’m going to present here is essentially no more than a set of procedures that every team member has to follow in order to come to a managed software development process.
关于这个工具的介绍,我们不再赘述,现在我们回到开发模式的话题上来。这个模型,基本上和每个开发团队管理软件开发流程是类似的。
  • 分布而集中
The repository setup that we use and that works well with this branching model, is that with a central “truth” repo. Note that this repo is only considered to be the central one (since Git is a DVCS, there is no such thing as a central repo at a technical level). We will refer to this repo as origin, since this name is familiar to all Git users.
我们使用这个分支模型很好工作的仓库,是真正意义上的中央仓库。这个仓库是唯一的中央仓库(因为Git本身就是分布式版本控制系统DVCS,所以这没有技术问题)。我们称这样一个中央仓库为origin,所有Git用户都知道origin这个名称。
Each developer pulls and pushes to origin. But besides the centralized push-pull relationships, each developer may also pull changes from other peers to form sub teams. For example, this might be useful to work together with two or more developers on a big new feature, before pushing the work in progress to origin prematurely. In the figure above, there are subteams of Alice and Bob, Alice and David, and Clair and David.
每个开发者,都可以从origin获得(pull)资源,同时也能推送(push)到origin。除此之外,每个开发者可以从其他开发者那里获得资源,以此组建自己的一个小组。例如,当我们要开发一个大的新功能时,我们将和其他人一起协作,在提交到中央仓库origin之前,我们需要小组内部能够互相协作,这将是十分有用的。上图中,Alice和Bob是一个小组,同时Alice和David是一个小组,Clair和David又是一个小组。
Technically, this means nothing more than that Alice has defined a Git remote, named bob, pointing to Bob’s repository, and vice versa.
从技术实现上讲,这无非是在Alice的项目里,定义了一个指向Bot的远程链接而已(git remote add bob git@bobserver bob.git),反之也是一样,如此简单!!
  • 主要的分支
At the core, the development model is greatly inspired by existing models out there. The central repo holds two main branches with an infinite lifetime:
中央仓库有2个主要的分支,这些分支将一直存在:
    • master
    • develop
The master branch at origin should be familiar to every Git user. Parallel to the master branch, another branch exists called develop.
中央仓库的master分支已经为所有Git用户熟知,与master分支并行的另外一个分支,我们称之为develop。
We consider origin/master to be the main branch where the source code of HEAD always reflects a production-ready state.
我们称origin/master为主要分支,因为分支的HEAD指向的源码总是反映了一个可以发布的产品状态(production-ready)。

We consider origin/develop to be the main branch where the source code of HEAD always reflects a state with the latest delivered development changes for the next release. Some would call this the “integration branch”. This is where any automatic nightly builds are built from.
我们称origin/develop为主要分支,因为分支的HEAD指向的源码,总是反映了下次发布前最新提交的开发代码。有些人称之为“集成分支”(integration barnch),因为我们的每晚自动构建都是基于此分支进行的。(例如hudson,可以做自动构建工作)。
When the source code in the develop branch reaches a stable point and is ready to be released, all of the changes should be merged back into master somehow and then tagged with a release number. How this is done in detail will be discussed further on.
当develop分支的源码稳定并且准备发布,所有的改变应该合并(merge)到master分支,同时做一个发布版本的标签(tag),我们将在后面讨论这个细节。
Therefore, each time when changes are merged back into master, this is a new production release by definition. We tend to be very strict at this, so that theoretically, we could use a Git hook script to automatically build and roll-out our software to our production servers everytime there was a commit on master.
因此,当每一次将所有更改合并回master时,将会产生一个新的可以发布的产品状态。我们往往对于这个操作的控制是比较严格的,每当往master分支提交时,我们可以使用Git的hook来自动构建和转出到产品服务器上。
  • 辅助分支

posted @ 2011-07-06 12:34 贝贝爸爸 阅读(531) | 评论 (0)编辑 收藏

首先,需要配置mail-service.xml
<?xml version="1.0" encoding="UTF-8"?>
<!-- $Id: mail-service.xml 62350 2007-04-15 16:50:12Z dimitris@jboss.org $ -->
<server>

  
<!-- ==================================================================== -->
  
<!-- Mail Connection Factory                                              -->
  
<!-- ==================================================================== -->

  
<mbean code="org.jboss.mail.MailService"
         name
="jboss:service=Mail">
    
<attribute name="JNDIName">java:/Mail</attribute>
    
<attribute name="User">bpm</attribute>
    
<attribute name="Password">*****</attribute>
    
<attribute name="Configuration">
      
<!-- A test configuration -->
      
<configuration>
        
<!-- Change to your mail server prototocol -->
        
<property name="mail.store.protocol" value="pop3"/>
        
<property name="mail.transport.protocol" value="smtp"/>

        
<!-- Change to the user who will receive mail  -->
        
<property name="mail.user" value="bpm"/>
        
<property name="mail.smtp.auth" value="true"/>

        
<!-- Change to the mail server  -->
        
<property name="mail.pop3.host" value="**pop3服务器地址**"/>

        
<!-- Change to the SMTP gateway server -->
        
<property name="mail.smtp.host" value="***smtp服务器地址***"/>
        
        
<!-- The mail server port -->
        
<property name="mail.smtp.port" value="25"/>
        
        
<!-- Change to the address mail will be from  -->
        
<property name="mail.from" value="bpm@eontime.com.cn"/>

        
<!-- Enable debugging output from the javamail classes -->
        
<property name="mail.debug" value="false"/>
      
</configuration>
    
</attribute>
    
<depends>jboss:service=Naming</depends>
  
</mbean>

</server>

其次新建一个jsp页面mail2.jsp,作为测试
<%@page contentType="text/html"%>
<%@ page import="javax.mail.*,javax.mail.internet.*, javax.activation.*, javax.naming.InitialContext" %> 
<h3>Test JbsssMail DB</h3> 
<%
String toAddress
=request.getParameter("MailTo");
String fromAddress
=request.getParameter("MailFrom");
String subject
=request.getParameter("MailSubject");
String content
=request.getParameter("MailContent");
InitialContext ctx 
= new InitialContext(); 
Session sessions 
= (Session) ctx.lookup("java:/Mail");
if(toAddress!=null &&!toAddress.equals("")){ 
try{
 MimeMessage msg 
= new MimeMessage(sessions);
 msg.setFrom(
new InternetAddress(fromAddress));
 msg.setRecipients(javax.mail.Message.RecipientType.TO,toAddress);
 msg.setSubject(subject);
 msg.setSentDate(
new java.util.Date());
 Multipart multipt 
= new MimeMultipart();
 MimeBodyPart msgbody 
= new MimeBodyPart();
 msgbody.setContent(content,
"text/plain");
 multipt.addBodyPart(msgbody);
 msg.setContent(multipt);
 Transport.send(msg);
 System.out.println(
"SendMail OK!");
}
catch(MessagingException e)
{
 e.printStackTrace();
}
}
%> 
<HTML>
<BODY BGCOLOR="white">
<form METHOD="POST" ACTION="mail2.jsp">
 
<table CELLSPACING="0" CELLPADDING="3" BORDER="1" WIDTH="474">
    
<tr>
      
<td width="150"><div align="left">From :</small></td>
      
<td width="324"><input TYPE="TEXT" name="MailFrom" value=""></td>
    
</tr>
    
<tr>
      
<td width="150"><div align="left">To :</small></td>
      
<td width="324"><input TYPE="TEXT" name="MailTo" value=""></td>
    
</tr>
    
<tr>
      
<td width="150"><div align="left">Subject :</small></td>
      
<td width="324"><input TYPE="TEXT" name="MailSubject" value=""></td>
    
</tr>
    
<tr>
      
<td width="150"><div align="left">Content :</small></td>
      
<td width="324"><TEXTAREA cols=50 name="MailContent" rows=8></TEXTAREA></td>
    
</tr>
    
<tr>
      
<td></td>
      
<td colspan="2" width="474"><input TYPE="Submit"></td>
    
</tr>
 
</table>
</form>
</BODY>
</HTML>

posted @ 2011-06-25 22:44 贝贝爸爸 阅读(466) | 评论 (0)编辑 收藏

git的分支处理模型,真的很爽,但关于如何对git的分支进行管理?最近有网友给我提到了git flow,呵呵,按照我的理解,应该是git的一个最佳实践吧,原文A successful Git branching model对git的分支模型作了阐述,以下我对该文章进行自己的翻译和理解,聊以日后学习,首先先看一下下面这个图:
git flow将git的分支主要分为2类:主要分支和支持分支
  • 主要分支
    • master:永远处在产品可以发布(production ready)状态
    • develop: 当前最新的开发状态
  • 支持分支
    • Feature branches: 开发新的功能,从develop分支出来,完成开发、测试后,merge回develop。
    • Release branches: 准备发布版本的分支,该分支只修复bug,完成后,merge回develop和master。
    • Hotfix branches: 来不及等待下个版本的发布,但又要马上修复bug的情况,从master分支出来,完成开发、测试后,merge回master和develop。

posted @ 2011-05-31 09:44 贝贝爸爸 阅读(669) | 评论 (1)编辑 收藏

由于最近在做的oryx-editor使用的是posgresql8.3.15,不能自动的使用yum install安装了,因为现在源里面的版本是8.1,无法满足项目要求,特安装了postgresql8.3.15,只能源码编译安装了。
----------------------------

1、下载postgresql最新版:http://www.postgresql.org/ftp/source/

wget http://wwwmaster.postgresql.org/redir/391/f/source/v8.3.15/postgresql-8.3.15.tar.gz

2、解压文件:
tar zxvf postgresql-8.3.7.tar.gz
cd postgresql-8.3.7

3、配置:
./configure --prefix=/usr/local/pgsql

4、编译:
make

5、安装:
make install

6、创建用户组和用户:
groupadd postgres
useradd -g postgres postgres

7、创建数据库库文件存储目录、给postgres赋予权限:
mkdir /usr/local/pgsql/data
cd /usr/local/pgsql
chown postgres.postgres data

8、初始化数据库目录:
切换用户
   su - postgresql

初始化数据
   /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data

启动数据库
   /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data

9、配置监听地址和端口:
vi /usr/local/pgsql/data/postgresql.conf
取消以下两行的注释
   listen_addresses = '*'

   port = 5432

10、允许远程连接:
vi /usr/local/pgsql/data/pg_hba.conf
添加
   host all all 192.168.1.0/24 trust 

   每项的具体意思在配置文件中有详细说明
配置iptables让远程主机能访问:
   vi /etc/sysconfig
   添加
      -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5432 -j ACCEPT
   service iptables restart

11、让postgresql数据库随系统启动而启动:
将启动脚本拷贝到/etc/init.d/目录下,具体执行如下命令:
cd /etc/rc.d/init.d
cp (第一步解压的安装文件目录)/postgresql-8.3.7/contrib/start-scripts/linux postgresql
chmod +x postgresql
vi postgresql
   prefix=/usr/local/pgsql
   PGDATA="/usr/local/pgsql/data"
   PGUSER=postgres
   PGLOG="/var/log/pgsql.log"

   chkconfig --add postgresql
启动数据库:
   service postgresql start

配置完毕 。

posted @ 2011-05-27 23:00 贝贝爸爸 阅读(658) | 评论 (0)编辑 收藏

1、显示数据库列表。
show databases;
2、显示库中的数据表:
use mysql;
show tables;
3、显示数据表的结构:
describe 表名;
4、建库:
create database 库名;
5、建表:
use 库名;
create table 表名 (字段设定列表);
6、删库和删表:
drop database 库名;
drop table 表名;
7、将表中记录清空:
delete from 表名;
8、显示表中的记录:
select * from 表名

  • 外网无法访问的问题
    #登录myql
    #
    mysql -u root mysql -p

    #mysql>update user set password=password('123456') where user='root';

    #mysql>fulsh privileges;
    #
    mysql>\q

posted @ 2011-05-26 21:36 贝贝爸爸 阅读(226) | 评论 (0)编辑 收藏

  • 安装python环境
#yum install python python-setuptools
 1 ##下载gitosis仓库到本地
 2 # git clone git://eagain.net/gitosis.git gitosis
 3 
 4 #安装 yum install python-setuptools
 
5 # python setup.py install --record uninstall.txt #记录需要卸载的东西
 6 
 7 #导入初始化公钥
 8 # su git
 9 [git@dev01 gitosis]$ gitosis-init < /tmp/id_rsa_yuan.pub 
10 Initialized empty Git repository in /home/git/repositories/gitosis-admin.git/
11 Reinitialized existing Git repository in /home/git/repositories/gitosis-admin.git/
12 
13 #进入自己设置的git仓库路径
14 # cd /var/git/
15 [root@dev01 git]# ln -s /home/git/repositories/ repo
16 #改变文件权限
17 [root@dev01 git]# chmod 755 /var/git/repo/gitosis-admin.git/hooks/post-update
18 
19 -----------------------
20 回到本机测试一下ssh连接
21 $ ssh git@192.168.250.231
22 ERROR:gitosis.serve.main:Need SSH_ORIGINAL_COMMAND in environment.
23 Connection to 192.168.250.231 closed.
24 
25 ##大功告成,说明gitosis生效
  • 提交本地工程到服务器
#首先clonegitosis-admin项目到本地
$ git clone git@192.168.250.231:gitosis-admin.git
Cloning into gitosis
-admin
remote: Counting objects: 
5, done.
remote: Compressing objects: 
100% (5/5), done.
remote: Total 
5 (delta 0), reused 5 (delta 0)
Receiving objects: 
100% (5/5), done.
啊啊
#修改查看到gitosis.conf
[gitosis]

[group gitosis
-admin]
writable 
= gitosis-admin
members 
= yuan
[group eontime]
writable 
= costdb \
           oryx
-editor \
           demo
/test
members 
= yuan
#如上所示,分有2个组类型admin和我们自定义的,你可以随便定义一个组,其实就是个权限集合
#
writable意思是,这个权限组有哪几个项目的写权限?这里是空格分开,如果太长就换行,例如demo/test的话,就是:
git remote add origin git@gitserver:demo/test.git

members就是有这个权限的组成员了,通过把有权限的开发者的公钥上传至keydir

最后将gitosis
-admin提交至远程
#git push remote origin master

ok,一切完成,服务端将同步有一个仓库了。

posted @ 2011-05-26 15:46 贝贝爸爸 阅读(3299) | 评论 (0)编辑 收藏

呵呵,不知道为何新建项目之后,这个东西就不见了,我觉得还是很有用的:
Global setup:

 Download and install Git
  git config 
--global user.name "yuanqixun"
  git config 
--global user.email yuanqixun@gmail.com
        

Next steps:

  mkdir activiti
-modeler
  cd activiti
-modeler
  git init
  touch README
  git add README
  git commit 
-'first commit'
  git remote add origin git@github.com:yuanqixun
/activiti-modeler.git
  git push 
-u origin master
      

Existing Git Repo
?

  cd existing_git_repo
  git remote add origin git@github.com:yuanqixun
/activiti-modeler.git
  git push 
-u origin master
      

Importing a Subversion Repo
?

  Click here
      

When you
're done:

  Continue


  • 安装eclipse的egit插件地址
https://repository.sonatype.org/content/repositories/forge-sites/m2eclipse-egit/0.13.0/N/0.13.0.201103031543/

https://repository.sonatype.org/content/sites/forge-sites/m2eclipse-subversive/0.13.0/N/0.13.0.201103011512/

posted @ 2011-05-20 17:42 贝贝爸爸 阅读(764) | 评论 (0)编辑 收藏

  • 安装
# yum install postgresql postgresql-libs postgresql-server
[root@dev ~]# service postgresql status
postmaster is stopped
[root@dev 
~]# service postgresql start
Initializing database:                                     [  OK  ]
Starting postgresql service:                               [  OK  ]


  • 设为开机启动

[root@dev ~]# chkconfig postgresql on
[root@dev ~]# chkconfig --list postgresql
postgresql      0:off   1:off   2:on    3:on    4:on    5:on    6:off
  • 配置参数

[root@dev ~]# vim /var/lib/pgsql/data/pg_hba.conf
#
 "local" is for Unix domain socket connections only
#
local   all         all                               ident sameuser
local   all         all         trust
# IPv4 local connections:
#
host    all         all         127.0.0.1/32          ident sameuser
host    all         all         127.0.0.1/32          md5
host
    all         all         192.168.28.3/32       md5 #必须有后面那个,那个是掩码,否则总报pg_hba.conf语法错
[root@dev ~]# su - postgres
-bash-3.2$ pg_ctl reload
postmaster signaled
[root@dev 
~]# vim /var/lib/pgsql/data/postgresql.conf 
listen_addresses = '*'
[root@dev 
~]# su - postgres
-bash-3.2$ pg_ctl reload
postmaster signaled
  • 常用命令

# psql -l            列出所有数据库   # psql
=> \l                列出所有数据库
=> \c cake            连接到cake数据库
=> \dt                列出所有tables
=> \d shift            查看shift表结构
=> \di                列出所有indexes
=> \d shift_pkey    列出所有index: shift_pkey
  • 测试java代码

 1 import java.sql.Connection;
 2 import java.sql.DriverManager;
 3 import java.sql.ResultSet;
 4 import java.sql.Statement;
 5 
 6 public class PostgresqlTest {
 7 
 8     /**
 9      * @param args
10      */
11     public static void main(String[] args) {
12         try {
13             Class.forName("org.postgresql.Driver").newInstance();
14             String connectUrl = "jdbc:postgresql://192.168.250.231:5432/poem";
15             Connection conn = DriverManager.getConnection(connectUrl,
16                     "poem""poem");
17             Statement st = conn.createStatement();
18             String sql = "select 1;";
19             ResultSet rs = st.executeQuery(sql);
20             while (rs.next()) {
21                 System.out.println(rs.getInt(1));
22             }
23             rs.close();
24             st.close();
25             conn.close();
26         } catch (Exception e) {
27             e.printStackTrace();
28         }
29     }
30 
31 }
32 

posted @ 2011-05-18 21:58 贝贝爸爸 阅读(3192) | 评论 (0)编辑 收藏

今天研究了git一天,发现git真的很好哦,总结为3点:
1、本地快照方式,会让提交工作很快
2、独特的快速分支处理方式,对后期的bug补丁的修改、发行将很有好处;
3、合并--git的合并发生在客户端而非svn、cvs的服务端(个人觉得这个是极大的好处,协作的svn就是在服务端,造成了每次提交有的成功了,有的不成功)

后面我会慢慢的总结进来的。

posted @ 2011-05-12 21:16 贝贝爸爸 阅读(221) | 评论 (0)编辑 收藏

卸载mysql

rpm -qa|grep -i mysql

rpm -ev MySQL-server-4.0.14-0 MySQL-client-4.0.14-0

卸载后/var/lib/mysql中的数据及/etc/my.cnf不会删除,如果确定没用后就手工删除

rm -f /etc/my.cnf

rm -rf /var/lib/mysql
#yum -y remove php
#yum -y remove mysql
#yum -y remove httpd

centos卸载系统与环境部署
centos卸载系统已被广泛应用但是也在不断的更新,这里介绍centos卸载系统设置使用,帮助大家安装更新centos卸载系统。centos安装好之后centos卸载系统自带的 php,mysql,apache

centos卸载系统可以使用rpm命令检查一下
#rpm -qa|grep -i php
#rpm -qa|grep -i mysql
#rpm -qa|grep -i httpd

centos卸载系统很多依赖。最简单的方法是使用yum卸载。由于是新安装的系统,所以问题应该不大。
#yum -y remove php
#yum -y remove mysql
#yum -y remove httpd

centos卸载系统再用rpm -qa看一下,全部卸掉了转一个系统目录约定,软件源代码包存放位置/usr/local/src源码包编译安装位置(prefix)/usr /local/software_name脚本以及维护程序存放位置/usr/local/sbinMySQL 数据库位置/var/lib/mysqlApache 网站根目录/data/wwwrootApache 虚拟主机日志根目录/data/logs/wwwApache 运行账户www:wwwyum RPM包信息文件/etc/yum.list 下面的LAMP环境部署 基本也是参考上面的文章。

系统环境部署及调整

1. 检查系统是否正常# more /var/log/messages(检查有无系统内核级错误信息)# dmesg (检查硬件设备是否有错误信息)# ifconfig(检查网卡设置是否正确)# ping www.163.com  (检查网络是否正常)

2. 关闭不需要的服务# ntsysv以下仅列出需要启动的服务,未列出的服务一律关闭:crondirqbalance (仅当服务器CPU为S.M.P架构或支持双核心、HT技术时,才需开启,否则关 闭。)microcode_ctlnetworkrandomsendmailsshdsyslog

3. 对TCP/IP网络参数进行调整,加强抗SYN Flood能力# echo ‘net.ipv4.tcp_syncookies = 1′ >> /etc/sysctl.conf# sysctl -p

4. 配置yum# rpm –import /usr/share/doc/centos-release-3/RPM-GPG-KEY-CentOS-3# yum list | tee /etc/yum.list

5. 修改命令history记录# vi /etc/profile找到 HISTSIZE=1000 改为 HISTSIZE=50

6. 定时校正服务器时间# yum install ntp# crontab -e加入一行:*/15 * * * * ntpdate 210.72.145.44## 210.72.145.44 为中国国家授时中心服务器地址。

7. 重新启动系统# init 6

8. 使用 yum 程序安装所需开发包(以下为标准的 RPM 包名称)gcc gcc-c++ gcc-g77 flex bison autoconf automake bzip2-devel zlib-devel ncurses-devel libjpeg-devel libpng-devel libtiff-devel freetype-devel pam-devel按上面步骤操作,基本没有问题,很顺利。以上介绍centos卸载系统。

posted @ 2011-05-11 09:03 贝贝爸爸 阅读(981) | 评论 (0)编辑 收藏

  • 安装相关依赖
yum install gettext-devel expat-devel curl-devel zlib-devel openssl-devel
  • 获得git源码
# wget http://kernel.org/pub/software/scm/git/git-1.7.5.tar.gz
  • 解压后编译安装
# tar xvfz git-1.7.5.tar.gz
# cd git
-1.7.5
# make prefix
=/usr/local all
# make prefix
=/usr/local install
  • 安装后结果
[root@dev git-1.7.5]# whereis git
git: /usr/local/bin/git
[root@dev git
-1.7.5]# git --version
git version 1.7.5

posted @ 2011-05-10 22:59 贝贝爸爸 阅读(480) | 评论 (0)编辑 收藏

功能说明:检查、设定系统的各种服务。

语法:chkconfig [--add][--del][--list][系统服务]
chkconfig [--level<
等级代号>][系统服务][on/off/reset]

补充说明:这个是redhat公司遵循gpl规则所开发的程序,它可以查询操作系统在每一个执行等级(runlevel),会执行哪些系统服务,其中包括各种daemon

linux os 将操作环境分为以下7个等级:


0:
开机(请不要切换到此等级)
1:
单人使用者模式的文字界面
2:
多人使用者模式的文字界面,不具有网络档案系统(NFS)功能
3:
多人使用者模式的文字界面,具有网络档案系统(NFS)功能
4:
某些发行版的linux使用此等级进入x windows system
5:
某些发行版的linux使用此等级进入x windows system
6:
重新启动

参数:    --add   新增所指定的系统服务
         --del
删除所指定的系统服务
         --level
指定该系统服务要在哪个执行等级中开启或关闭
         --list  
列出当前可从chkconfig指令管理的所有系统服务和等级代号
            on/off/reset  
在指定的执行登记,开启/关闭/重置该系统服务

chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息。谨记chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接。

语法:

    chkconfig --list [name]
    chkconfig --add name
    chkconfig --del name
    chkconfig [--level levels] name <on|off|reset>
    chkconfig [--level levels] name

    chkconfig 没有参数运行时,显示用法。如果加上服务名,那么就检查这个服务是否在当前运行级启动。如果是,返回true,否则返回false。如果在服务名后面指定 onoff或者reset,那么chkconfi 会改变指定服务的启动信息。onoff分别指服务被启动和停止,reset指重置服务的启动信息,无论有问题的初始化脚本指定了什么。onoff 关,系统默认只对运行级345有效,但是reset可以对所有运行级有效。

    --level选项可以指定要查看的运行级而不一定是当前运行级。

    需要说明的是,对于每个运行级,只能有一个启动脚本或者停止脚本。当切换运行级时,init不会重新启动已经启动的服务,也不会再次去停止已经停止的服务。

    chkconfig --list :显示所有运行级系统服务的运行状态信息(onoff)。如果指定了name,那么只显示指定的服务在不同运行级的状态。

    chkconfig --add name:增加一项新的服务。chkconfig确保每个运行级有一项启动(S)或者杀死(K)入口。如有缺少,则会从缺省的init脚本自动建立。

    chkconfig --del name:删除服务,并把相关符号连接从/etc/rc[0-6].d删除。

    chkconfig [--level levels] name <on|off|reset>:设置某一服务在指定的运行级是被启动,停止还是重置。例如,要在345运行级停止nfs服务,则命令如下:

    chkconfig --level 345 nfs off

运行级文件:

    每个被chkconfig管理的服务需要在对应的init.d下的脚本加上两行或者更多行的注释。第一行告诉chkconfig缺省启动的运行级以及启动 和停止的优先级。如果某服务缺省不在任何运行级启动,那么使用 - 代替运行级。第二行对服务进行描述,可以用\ 跨行注释。
例如,random.init包含三行:
# chkconfig: 2345 20 80
# description: Saves and restores system entropy pool for \
# higher quality random number generation.

附加介绍一下Linux系统的运行级的概念:
    Linux
中有多种运行级,常见的就是多用户的2345 ,很多人知道5是运行X-Windows的级别,而0就是关机了。运行级的改变可以通过init命令来切换。例如,假设你要维护系统进入单用户状态,那 么,可以使用init1来切换。在Linux的运行级的切换过程中,系统会自动寻找对应运行级的目录/etc/rc[0-6].d下的KS开头的文件, 按后面的数字顺序,执行这些脚本。对这些脚本的维护,是很繁琐的一件事情,Linux提供了chkconfig命令用来更新和查询不同运行级上的系统服 务。

范例:

1.
查看在各种不同的执行等级中,各项服务的状况:
$chkconfig --list

2.
列出系统服务vsftpd在各个执行等级的启动情况:
$chkconfig --list vsftpd

3.
在执行等级3,5时,关闭vsftpd系统服务:
$chkconfig --level 35 vsftpd off

4.
在执行等级235时,开启 vsftpd系统服务:
$chkconfig --level 235 vsftpd on

5.
关闭一些自己不需要的服务 ->
如果没有打印机:
chkconfig --level 235 cups off 
如果没有局域网:
chkconfig --level 235 smb off
如果不需要远程用户登录的:
chkconfig --level 235 sshd off
如果不需要定时任务的:
chkconfig --level 235 crond off
如果不需要添加新硬件的:
chkconfig --level 235 kudzu off

posted @ 2011-05-10 17:19 贝贝爸爸 阅读(167) | 评论 (0)编辑 收藏

昨天把我们的Linux服务器搭建起来之后,发现free -m后,竟然free列数值好少哦:

以上几列,说明我的机器有6g内存,我原本以为free是我们的可用内存,可我的服务器其实打开的应用不多啊,所以很费解,Google了下,找到了如下解释:
第二行(mem)的used/free与第三行(-/+ buffers/cache) used/free的区别
  • Mem行,从OS的角度来看,因为对于OS,buffers/cached 都是属于被使用,所以他的可用内存是2975M,已用内存是2947M
  • 第三行,从应用程序角度来看,对于应用程序来说,buffers/cached 是等于可用的,因为buffer/cached是为了提高文件读取的性能,当应用程序需在用到内存的时候,buffer/cached会很快地被回收。
所以从应用的角度出发,其实可用内存是
5238M≈2975M+179M+2083M(换成KB的话应该就是相等了)
所以我当前应用消耗的内存,应该是:
684M=5922M-5238M(这下应该靠谱了

posted @ 2011-05-10 08:58 贝贝爸爸 阅读(216) | 评论 (0)编辑 收藏