Tuesday, 21 December 2010

如何扩大VirtualBox磁盘容量?

  1. 创建一个更大的磁盘;
  2. 将新创建的磁盘添加到虚拟客户机上;
  3. 将Ghost光盘插入客户机;
  4. 启动客户机;
  5. 使用Ghost 将原磁盘克隆至新创建的磁盘;
  6. 克隆完成后,关机;
  7. 从客户机上摘去原磁盘;
  8. 从新启动客户机;

Sunday, 19 December 2010

如何将RHEL5.5的Java升级至1.5?

下载jdk-1_5_0_22-linux-amd64-rpm.bin

[root@localhost ~]# chmod 775 jdk-1_5_0_22-linux-amd64-rpm.bin
[root@localhost ~]# ./jdk-1_5_0_22-linux-amd64-rpm.bin

vi /etc/profile.d/java.sh 加入下述两行:
export JAVA_HOME=/usr/java/jdk1.5.0_22
export PATH=$JAVA_HOME/bin:$PATH

[root@localhost ~]# source /etc/profile.d/java.sh

[root@localhost ~]# alternatives --install /usr/bin/java java /usr/java/jdk1.5.0_22/bin/java 2


运行下述命令,并选择2:
[root@localhost ~]# alternatives --config java


Friday, 17 December 2010

如何在RHEL5.5上更改PostgreSQL的数据目录?

检查缺省数据目录的属性
# ls -lZ /var/lib/pgsql
drwx------  postgres postgres system_u:object_r:postgresql_db_t data

生成新的数据目录
# mkdir -p /opt/postgresql/data

检查新生成的数据目录属性
# ls -lZ /opt/postgresql/
drwxr-xr-x  root root root:object_r:usr_t              data

更改新生成数据目录的所有权
# chown -R postgres:postgres /opt/postgresql

修改启动代码中的相关路径
# vi /etc/rc.d/init.d/postgresql
PGDATA=/opt/postgresql/data
PGLOG=/opt/postgresql/data/pgstartup.log

创建新的数据区
# su - postgres -c "initdb -D /opt/postgresql/data"

为新数据区添加SELINUX标签
# semanage fcontext -a -t postgresql_db_t "/opt/postgresql(/.*)?"

检查新添标签是否到位
# grep -i postgresql /etc/selinux/targeted/contexts/files/file_contexts.local
/opt/postgresql(/.*)?    system_u:object_r:postgresql_db_t:s0

为新数据区贴标签
# restorecon -R -v /opt/postgresql

验证更改后数据库服务能否启动
# service postgresql start
Starting postgresql service:                               [  OK  ]

将数据库服务设置为自动启动
# chkconfig postgresql on
# chkconfig --list | grep post
postgresql      0:off   1:off   2:on    3:on    4:on    5:on    6:off

Thursday, 16 December 2010

如何让yum使用RHEL5.5光盘安装软件?

插入RHEL5光盘
登录为root
[root@localhost ~]# mkdir dvd
[root@localhost ~]# cd /media/RHEL-5.5\ i386\ DVD/Server/
[root@localhost Server]# rpm -i createrepo-0.4.11-3.el5.noarch.rpm
[root@localhost Server]# cd /root/dvd
[root@localhost dvd]# createrepo -vpo . /media/RHEL-5.5\ i386\ DVD/
[root@localhost dvd]# ln -s /media/RHEL-5.5\ i386\ DVD/Server/ Server
[root@localhost dvd]# vi /etc/yum.repos.d/DVD.repo 并加入下述内容:
    [dvd]
    name=RHEL5 DVD
    baseurl=file:///root/dvd
    enabled=1
    gpgcheck=0
      [root@localhost dvd]# yum clean all
      [root@localhost dvd]# yum update

      例如,安装PostgreSQL
      [root@localhost ~]# yum install postgresql84 postgresql84-server postgresql84-contrib postgresql84-devel postgresql84-docs postgresql84-test
      [root@localhost ~]# chkconfig postgresql on
      [root@localhost ~]# service postgresql initdb
      [root@localhost ~]# service postgresql start


      Update 1: I found this URL is more comprehensive.

      Update 2: Here is another way, which is much simpler:

      copy the ISO image, e.g. rhel-server-6.5-x86_64-dvd.iso, to the server under /root;

      mount -o loop -t iso9660 /root/rhel-server-6.5-x86_64-dvd.iso /mnt/

      vi /etc/yum.repos.d/dvd.repo and add following content:

      [dvd]
      name=DVD
      baseurl=file:///mnt/Server
      enabled=1
      gpgcheck=0


      Thursday, 9 December 2010

      如何为Linux虚拟机设置VirtualBox共享文件夹?

      设置共享文件夹Temp后,在Linux虚拟机上运行如下命令:
      mount -t vboxsf temp /mnt
      即可在/mnt下看到共享文件夹的内容。

      Saturday, 30 October 2010

      如何使服务器免受网络攻击?

      方法1:限制客户端的连接。例如,只允许指定的客户按指定的协议连接到指定的端口等等。这种方法可以大大减小服务器遭受攻击的可能性。但是,客户端如果是动态地址,身份认证成问题。

      方法2:使用网络入侵侦测防止系统(IDS/IPS/NIPS),例如SNORT。并辅之以其他方法,例如关闭不用的服务、采用虚拟的用户等等。

      Thursday, 28 October 2010

      如何设定FC6的网址?

      将 /etc/sysconfig/network-scripts/ifcfg-eth0 内容改为:

      DEVICE=eth0
      IPADDR=192.168.1.100
      NETMASK=255.255.255.248
      BOOTPROTO=static
      ONBOOT=yes

      如何查询当前Linux的runlevel?

      who -r

      如何显示Linux命令行历史的时间?

      add following into .bashrc
      
      
      export HISTTIMEFORMAT='%F %T '
      

      Friday, 1 October 2010

      如何查看Ingres与Glassfish之间的JDBC对话?

      1.创建iijdbc.properties文件,包括如下行:
      ingres.jdbc.trace.log=../logs/iijdbc.log
      ingres.jdbc.trace.timestamp=true
      ingres.jdbc.trace.drv=5
      2.将上述文件拷贝到如下目录下:
      glassfish\domains\domain1\lib\classes
      3.重新启动Glassfish
      4.查看glassfish\domains\domain1\logs目录下的iijdbc.log文件

      Friday, 10 September 2010

      如何判断MySQL引擎是否支持Transaction?

      简单测试方法:
      BEGIN;
      UPDATE table1 SET col1='new value' WHERE row_id='row1';
      SELECT * FROM table1; -- 行row1列col1的值已经改为'new value'
      ROLLBACK;
      SELECT * FROM table1; -- 行row1列col1的值应该改为原来的值

      MyISAM不支持,InnoDB支持。使用如下命令查看table1使用的引擎类型:
      mysql> show create table table1;

      Thursday, 9 September 2010

      如何升级MySQL(4.0.15至5.1.50)?

      将MySQL4.0.15数据库下载至文件:
      mysqldump -p foo > foo1.sql;

      删除开头的长注释行:
      sed -e '/^----------[\-]*$/d' foo1.sql > foo2.sql

      用下述命令将数据库转换为使用INNODB引擎:
      echo 'SET AUTOCOMMIT = 0;' > foo.sql
      sed -e 's/TYPE=MyISAM/TYPE=INNODB/g' foo2.sql >> foo.sql
      echo 'COMMIT;' >> foo.sql
      (或者,使用ALTER TABLE t ENGINE = MYISAM;逐个表转换。)

      为了保证任何新生成的数据库使用INNODB引擎,在/etc/my.cnf中添加下述参数:
      [mysqld]
      default-storage-engine=INNODB
      为了使旧版本的ODBC能够与新版本的数据库通讯,在 /etc/my.cnf 中添加如下参数:
      [mysqld]
      old-passwords
      此外,还需将有关用户的口令设为旧的格式:
      mysql> update user set password=OLD_PASSWORD('pass1') where user='user1';

      在MySQL5.1.50生成用户boo并确认数据库foo不存在;
      将文件foo.sql上载到MySQL5.1.50:mysql -u boo -p < foo.sql

      Wednesday, 8 September 2010

      如何安装VirtualBox虚拟机?

      安装VirtualBox之前,别忘了启用BIOS中的VT-x/AMD-v开关。

      生成虚拟机时,不用担心缺省的硬盘尺寸太大,与VMware Server不同VirtualBox是根据实际需要确定硬盘文件大小。所设定的尺寸只是上限。上限设置过小,容量不够会很难改。

      如何安装MySQL ODBC 5.1.7驱动程序?

      下载并安装
      mysql-connector-odbc-5.1.7-win32.msi
      下载并安装补丁
      ftp.mysql.com/pub/mysql/download/myodbc5S5_1_7with56233patchR926win32.zip

      Monday, 6 September 2010

      如何使用NetBeans中的UML功能?

      下载6.7.1版本后,通过软件更新安装。

      如何在RHEL5上安装VirtualBox?

      安装RHEL5时必须注意勾选'Software Development'平台类型,否则安装VirtualBox时,SDL库会找不到。

      此外,如果是64位机,务必下载AMD64版本的包,并使用rpm安装,例如:
      rpm -i VirtualBox-4.1-4.1.0_73009_rhel5-1.x86_64.rpm

      最后,vi /etc/group 将用户加入vboxusers组。

      Saturday, 4 September 2010

      如何让MySQL服务器允许远程连接?

      首先,更新mysql.user表,使得root用户登录必须使用口令;其次,删除无名本地用户;最后,添加普通用户并且将其host设为%。
      此外,防火墙必须允许端口3306自内向外的新连接。

      Wednesday, 25 August 2010

      如何备份MySQL数据库?

      Download a database from the source server, use following command:
      mysqldump -u user_name -p database_name > backup_file_name

      Create the database in the destination server if it does not exist:
      create database database_name

      Upload the database onto the destination server, user following command:
      mysql -u user_name -D database_name -p < backup_file_name

      Tuesday, 24 August 2010

      如何将汉字转换成Unicode?

      使用JDK自带的命令行程序native2ascii进行转换。
      例如,
      1.将需要转换的词汇放在input.txt文件内;
      2.运行native2ascii -encoding utf-8 input.txt output.txt
      3.文件output.txt中即包含转换后的UTF-8编码
      如果需要做逆转换,可运行native2ascii -encoding utf-8 -reverse output.txt input.txt
      注意:文本文件的编码建议采用“UTF-8 without BOM”

      如何在Glassfish中设置Ingres的JDBC资源?

      将 iijdbc.jar 复制到 domain1\lib 目录下;

      重启 Glassfish;

      创建一个 JDBC connection pool 并填入如下信息:
      Name=foo_pool
      Resource Type=javax.sql.ConnectionPoolDataSource
      Datasource Classname=com.ingres.jdbc.IngresCPDataSource
      及下述附加属性:

      serverName
      portName
      databaseName
      userName
      password


      创建一个 JDBC 资源并填入如下信息:
      JNDI Name=jdbc/foo
      Pool Name=foo_pool

      攻与防

      虽然门是用来通行的,而墙是阻止通行的,精心设防的门要比不设防的墙坚固得多。从战争的角度看,只有傻瓜才会往对手设下的圈套里钻。别忘了,系统通常是在最薄弱点(内部的或外部的)被攻破的。

      创新与改进

      不追求史无前例的创新,只追求基于已有的改进。
      千里之行,始于足下;九层之台,起于垒土;不积跬步,无以至千里;不积小流,无以成江海。

      确定性

      对于未来而言,世上只有一件事是确定的,那就是‘今天将成为过去,永不再来’。
      成功的基本要素是直奔目标、不顾枝节;否则,到‘万事俱备’时东风已吹过了。
      何况做到‘万事俱备’是不可能的。因为,人生的任何决策都面临不确定因素。
      不打无准备之仗是对的。但是,准备不可能做到必胜无疑。 

      行与思

      千里之行,始于足下。看一步,走一步。

      多与少

      少则得,多则惑。

      知无知

      知乎哉?无知也。