楼主: sunbeking

postgresql入门(日文的)

[复制链接]
论坛徽章:
21
ITPUB元老
日期:2005-05-10 17:20:252012新春纪念徽章
日期:2012-02-13 15:10:582012新春纪念徽章
日期:2012-02-13 15:10:582012新春纪念徽章
日期:2012-02-13 15:10:582012新春纪念徽章
日期:2012-02-13 15:10:58马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:142012新春纪念徽章
日期:2012-02-13 15:10:58
31#
 楼主| 发表于 2005-3-23 18:12 | 只看该作者
PostgreSQL + Servlet、JSP 編2 - Servlet JDBC アクセス、getConnection

■PostgreSQL + JDBC、JAVA Servlet アクセス

  ・テスト用のテーブルを作成する。

create table testm (
  key char(8),
  data1 int8,
  data2 int8,
  data3 int8
);

insert into testm values ('a001', 1, 2, 3);
insert into testm values ('b002', 10, 20, 30);
insert into testm values ('c003', 100, 200, 300);

commit;

■PostgreSQL + JDBC、JAVA Servlet アクセステスト

  ・サーブレット(JAVA Servlet) から、JDBC で PostgreSQL にアクセスする
    には、次のようにする。

// test_postgresql.java
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;

public class test_postgresql extends HttpServlet {

  public void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException {

    // HTML ヘッダ出力
    PrintWriter rw = res.getWriter();
    rw.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\">";
    rw.println("<HTML>";
    rw.println("<HEAD>";
    rw.println("<META http-equiv=\"Content-Type\" content=\"text/html; charset=Shift_JIS\">";
    rw.println("<TITLE>JAVA Servlet - PostgreSQL JDBC Test</TITLE>";
    rw.println("</HEAD>";
    rw.println("<BODY>";
    rw.println("<P>JAVA Servlet - PostgreSQL JDBC Test</P>";

    try {

      // PostgreSQL JDBC ドライバロード
      Class.forName("org.postgresql.Driver";

      // PostgreSQL JDBC 接続
      String dsn = "jdbcostgresql://sak-design:5432/sak?user=sak&password=sak";
      Connection cn = DriverManager.getConnection(dsn);

      // PostgreSQL JDBC 問い合わせ SQL 作成
      String sql = "select * from testm";
      Statement st = cn.createStatement();

      // PostgreSQL JDBC レコードセットオープン
      ResultSet rs = st.executeQuery(sql);

      // PostgreSQL JDBC レコードセットリード
      while (rs.next()) {
        rw.println("<P>" + rs.getString(1) + "</P>";
      }

      // PostgreSQL JDBC レコードセットクローズ
      rs.close();

      // PostgreSQL JDBC ステートメントクローズ
      st.close();

      // PostgreSQL JDBC 接続クローズ
      cn.close();

    }
    catch (Exception e) {

      // エラー処理
      rw.println("<P>error</P>");

    }

    // HTML テイル出力
    rw.println("</BODY>");
    rw.println("</HTML>");

  }

}

  ・JAVA ソースは、次のようにコンパイルして、test_postgresql.class を作成する。

cd /src
javac test_postgresql.java

  ・Servlet(test_postgresql.class) は、
    /jakarta-tomcat-3.3.1/webapps/sak/WEB-INF/classes/ の中に配置し、
    ブラウザより、次の URL で実行する。

http://sak-design:8080/sak/servlet/test_postgresql

使用道具 举报

回复
论坛徽章:
21
ITPUB元老
日期:2005-05-10 17:20:252012新春纪念徽章
日期:2012-02-13 15:10:582012新春纪念徽章
日期:2012-02-13 15:10:582012新春纪念徽章
日期:2012-02-13 15:10:582012新春纪念徽章
日期:2012-02-13 15:10:58马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:142012新春纪念徽章
日期:2012-02-13 15:10:58
32#
 楼主| 发表于 2005-3-23 18:13 | 只看该作者
PostgreSQL + Servlet、JSP 編3 - JSP JDBC アクセス、executeQuery

■PostgreSQL + JDBC、JAVA Server Page(JSP) アクセス

  ・テスト用のテーブルを作成する。

create table testm (
  key char(8),
  data1 int8,
  data2 int8,
  data3 int8
);

insert into testm values ('a001', 1, 2, 3);
insert into testm values ('b002', 10, 20, 30);
insert into testm values ('c003', 100, 200, 300);

commit;

■PostgreSQL + JDBC、JAVA Server Page(JSP) アクセステスト

  ・JAVA Server Page(JSP) から、JDBC で PostgreSQL にアクセスするには、
    次のようにする。

<%@ page import="java.util.*,java.sql.*;" contentType="text/html; charset=Shift_JIS"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<TITLE>JAVA Server Page(JSP) - PostgreSQL JDBC Test</TITLE>
</HEAD>
<BODY>
<P>JAVA Server Page(JSP) - PostgreSQL JDBC Test</P>
<%

  try {

    // PostgreSQL JDBC ドライバロード
    Class.forName("org.postgresql.Driver";

    // PostgreSQL JDBC 接続
    String dsn = "jdbcostgresql://sak-design:5432/sak?user=sak&password=sak";
    Connection cn = DriverManager.getConnection(dsn);

    // PostgreSQL JDBC 問い合わせ SQL 作成
    String sql = "select * from testm";
    Statement st = cn.createStatement();

    // PostgreSQL JDBC レコードセットオープン
    ResultSet rs = st.executeQuery(sql);

    // PostgreSQL JDBC レコードセットリード
    while (rs.next()) {
      out.println("<P>" + rs.getString(1) + "</P>";
    }

    // PostgreSQL JDBC レコードセットクローズ
    rs.close();

    // PostgreSQL JDBC ステートメントクローズ
    st.close();

    // PostgreSQL JDBC 接続クローズ
    cn.close();

  }
  catch (Exception e) {

    // エラー処理
    out.println("<P>error</P>";

  }

%>
</BODY>
</HTML>

  ・JSP(test_postgresql.jsp) は、ソースそのものを
    /jakarta-tomcat-3.3.1/webapps/sak/jsp/ の中に配置し、
    ブラウザより、次の URL で実行する。

http://sak-design:8080/sak/jsp/test_postgresql.jsp

使用道具 举报

回复
论坛徽章:
21
ITPUB元老
日期:2005-05-10 17:20:252012新春纪念徽章
日期:2012-02-13 15:10:582012新春纪念徽章
日期:2012-02-13 15:10:582012新春纪念徽章
日期:2012-02-13 15:10:582012新春纪念徽章
日期:2012-02-13 15:10:58马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:142012新春纪念徽章
日期:2012-02-13 15:10:58
33#
 楼主| 发表于 2005-3-23 18:13 | 只看该作者
Oracle9i + Servlet、JSP 編1 - Servlet JDBC アクセス、getConnection

■Oracle9i + JDBC、JAVA Servlet アクセス

  ・Oracle9i の JDBC ドライバは、j:/oracle/ora90/jdbc/lib/ にある。
    classes12 セットを使用してテストする。
    ドライバの配置は、次のようにした。

c:/cygnus/jakarta-tomcat-3.3.1/webapps/sak/WEB-INF/lib/classes12.jar

  ・CLASSPATH は、次のようにした。
    尚、Cygwin B20 では、「"」で囲まないと「;」でエラーになる。
    また、普通のパスは、Cygwin B20 では「:」で区切るが、CLASSPATH は、
    DOS と同じく「;」でかつ、「c:/...」のようにシステムパスから指定する
    必要がある。

export CLASSPATH=".;c:/cygnus/jakarta-tomcat-3.3.1/lib/common/servlet.jar;c:/cygnus/jakarta-tomcat-3.3.1/webapps/sak/WEB-INF/lib/classes12.jar"

  ・Oracle のファイルシステムをマウントする。
    尚、単に環境変数定義を楽にするためにマッピングしただけである。

mount -f j:/oracle/ora90 /oracle

Device           Directory           Type        Flags
c:\cygnus\cygwin-b20\share /sw/cygwin-b20/share    native      text!=binary
g:\tmp           /src                native      text!=binary
j:\oracle\ora90  /oracle             native      text!=binary
c:\cygnus        /                   native      text!=binary

  ・.bashrc に Oracle 環境変数を追加定義する。
    尚、修正後に「source /.bashrc」と実行するか、Cygwin B20 を再起動する
    必要がある。

export HOME=/
export PATH=/j2sdk/bin:/usr/local/mysql/bin:/usr/local/perl/bin:$PATH:/usr/local/pgsql/bin:/usr/local/bin:/usr/local/apache:/oracle/BIN
export POSTGRES_HOME=/usr/local/pgsql
export PGLIB=/usr/local/pgsql/lib
export PGDATA=/usr/local/pgsql/data
export LD_LIBRARY_PATH=/usr/local/pgsql/lib:/usr/local/lib:/oracle/LIB
export TOMCAT_HOME=c:/cygnus/jakarta-tomcat-3.3.1
export JAVA_HOME=/j2sdk
export CLASSPATH=".;c:/cygnus/jakarta-tomcat-3.3.1/lib/common/servlet.jar;c:/cygnus/jakarta-tomcat-3.3.1/webapps/sak/WEB-INF/lib/classes12.jar"
cd
ls -aF

  ・Oracle は、OracleServiceSAK と OracleOraHome90TNSListener のサービス
    が開始されている必要がある。
    尚、Oracle では、致命的なアクセスエラーなどが発生すると、
    Tomcat のサービスが異常終了したり、起動時エラーが発生する。
    もし、異常が発生したら、
      1. Tomcat を終了させる。
      2. ps で、/j2sdk/bin/java.exe の PID を kill する。(既にない場合もある)
      3. OracleOraHome90TNSListener サービス を再起動する。
      4. Tomcat を起動する。
    で確実に回復する。
    また、「Not Found (404)」や Tomcat の起動時にずらずらっとエラーが
    出る場合も、同様な状態になっいる可能性が高い。
    上記の手順で Oracle に関係する障害であれば回復できる。
    (タイムアウトの設定でもあるのだろうか...)

  ・上記障害は、Cygwin 2.05b、Cygipc 1.11.1、JAVA2 SDK 1.4.0 で、発生しな
    くなった。うれしい~。

■Oracle9i + JDBC、JAVA Servlet アクセステスト

  ・サーブレット(JAVA Servlet) から、JDBC で Oracle9i にアクセスする
    には、次のようにする。

// test_oracle.java
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;

public class test_oracle extends HttpServlet {

  public void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException {

    // HTML ヘッダ出力
    PrintWriter rw = res.getWriter();
    rw.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\">";
    rw.println("<HTML>";
    rw.println("<HEAD>";
    rw.println("<META http-equiv=\"Content-Type\" content=\"text/html; charset=Shift_JIS\">";
    rw.println("<TITLE>JAVA Servlet - Oracle9i JDBC Test</TITLE>";
    rw.println("</HEAD>";
    rw.println("<BODY>";
    rw.println("<P>JAVA Servlet - Oracle9i JDBC Test</P>";

    try {

      // Oracle9i JDBC ドライバロード
      Class.forName("oracle.jdbc.OracleDriver";

      // Oracle9i JDBC 接続
      String dsn = "jdbcracle:thin:@sak-design:1521:sak";
      Connection cn = DriverManager.getConnection(dsn, "sak", "sak";

      // Oracle9i JDBC 問い合わせ SQL 作成
      String sql = "select * from seqm";
      Statement st = cn.createStatement();

      // Oracle9i JDBC レコードセットオープン
      ResultSet rs = st.executeQuery(sql);

      // Oracle9i JDBC レコードセットリード
      while (rs.next()) {
        rw.println("<P>" + rs.getString(1) + "</P>");
      }

      // Oracle9i JDBC レコードセットクローズ
      rs.close();

      // Oracle9i JDBC ステートメントクローズ
      st.close();

      // Oracle9i JDBC 接続クローズ
      cn.close();

    }
    catch (Exception e) {

      // エラー処理
      rw.println("<P>error</P>");

    }

    // HTML テイル出力
    rw.println("</BODY>");
    rw.println("</HTML>");

  }

}

  ・JAVA ソースは、次のようにコンパイルして、test_oracle.class を作成する。

cd /src
javac test_oracle.java

  ・Servlet(test_oracle.class) は、
    /jakarta-tomcat-3.3.1/webapps/sak/WEB-INF/classes/ の中に配置し、
    ブラウザより、次の URL で実行する。

http://sak-design:8080/sak/servlet/test_oracle

使用道具 举报

回复
论坛徽章:
21
ITPUB元老
日期:2005-05-10 17:20:252012新春纪念徽章
日期:2012-02-13 15:10:582012新春纪念徽章
日期:2012-02-13 15:10:582012新春纪念徽章
日期:2012-02-13 15:10:582012新春纪念徽章
日期:2012-02-13 15:10:58马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:142012新春纪念徽章
日期:2012-02-13 15:10:58
34#
 楼主| 发表于 2005-3-23 18:14 | 只看该作者
Oracle9i + Servlet、JSP 編2 - JSP JDBC アクセス、executeQuery

■Oracle9i + JDBC、JAVA Server Page(JSP) アクセス

  ・Oracle9i の JDBC ドライバの配置や環境変数設定、障害問題などは、
    Oracle9i + Servlet、JSP 編1 - Servlet JDBC アクセス、getConnection
    と共通である。

■Oracle9i + JDBC、JAVA Server Page(JSP) アクセステスト

  ・JAVA Server Page(JSP) から、JDBC で Oracle9i にアクセスするには、
    次のようにする。

<%@ page import="java.util.*,java.sql.*;" contentType="text/html; charset=Shift_JIS"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<TITLE>JAVA Server Page(JSP) - Oracle9i JDBC Test</TITLE>
</HEAD>
<BODY>
<P>JAVA Server Page(JSP) - Oracle9i JDBC Test</P>
<%

  try {

    // Oracle9i JDBC ドライバロード
    Class.forName("oracle.jdbc.OracleDriver";

    // Oracle9i JDBC 接続
    String dsn = "jdbcracle:thin:@sak-design:1521:sak";
    Connection cn = DriverManager.getConnection(dsn, "sak", "sak";

    // Oracle9i JDBC 問い合わせ SQL 作成
    String sql = "select * from seqm";
    Statement st = cn.createStatement();

    // Oracle9i JDBC レコードセットオープン
    ResultSet rs = st.executeQuery(sql);

    // Oracle9i JDBC レコードセットリード
    while (rs.next()) {
      out.println("<P>" + rs.getString(1) + "</P>";
    }

    // Oracle9i JDBC レコードセットクローズ
    rs.close();

    // Oracle9i JDBC ステートメントクローズ
    st.close();

    // Oracle9i JDBC 接続クローズ
    cn.close();

  }
  catch (Exception e) {

    // エラー処理
    out.println("<P>error</P>";
  }

%>
</BODY>
</HTML>

  ・JSP(test_oracle.jsp) は、ソースそのものを
    /jakarta-tomcat-3.3.1/webapps/sak/jsp/ の中に配置し、
    ブラウザより、次の URL で実行する。

http://sak-design:8080/sak/jsp/test_oracle.jsp

使用道具 举报

回复
论坛徽章:
21
ITPUB元老
日期:2005-05-10 17:20:252012新春纪念徽章
日期:2012-02-13 15:10:582012新春纪念徽章
日期:2012-02-13 15:10:582012新春纪念徽章
日期:2012-02-13 15:10:582012新春纪念徽章
日期:2012-02-13 15:10:58马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:142012新春纪念徽章
日期:2012-02-13 15:10:58
35#
 楼主| 发表于 2005-3-23 18:14 | 只看该作者
PostgreSQL + Web 編3 - Apache、Tomcat 連携、mod_jk.dll、mod_jk.conf

■apache-1.3.20、jakarta-tomcat-3.3.1 連携

  ・Tomcat のウェブサーバの代わりに Apache を経由して、Servlet、JSP が使
    えるように設定してみる。
    作業前に全サービスを終了しておくこと。

■Apache、Tomcat 連携 DLL インストール

  ・mod_jk.dll をダウンロードし、
    /cygnus/usr/local/apache/modules/mod_jk.dll
    となるように配置する。

■Tomcat mod_jk.conf 作成

  ・Cygwin ではなく、DOS コマンドプロンプトで、次のように作成する。

set JAVA_HOME=C:\cygnus\j2sdk
set TOMCAT_HOME=C:\cygnus\jakarta-tomcat-3.3.1
c:
cd C:\cygnus\jakarta-tomcat-3.3.1\bin
startup jkconf

  ・正常に終了すると、/jakarta-tomcat-3.3.1/conf/auto/ に mod_jk.conf
    以下 5 個のファイルが作成される。

■Apache httpd.conf 修正

  ・/usr/local/apache/conf/httpd.conf の最後の行に、次のように
    Include "c:/cygnus/jakarta-tomcat-3.3.1/conf/auto/mod_jk.conf"
    を 1 行追加する。

...
...
...
#    CustomLog logs/dummy-host.example.com-access_log common
#</VirtualHost>

Include "c:/cygnus/jakarta-tomcat-3.3.1/conf/auto/mod_jk.conf"

■Tomcat server.xml 修正

  ・/jakarta-tomcat-3.3.1/conf/server.xml のウェブサーバ部分を次のように
    注釈に修正し、8080 のウェブサーバを停止する。

...
...
...
        <!--
        <Http10Connector   port="8080"
                           secure="false"
                           maxThreads="100"
                           maxSpareThreads="50"
                           minSpareThreads="10" />
        -->
...
...
...

■Apache、Tomcat 連携テスト

  ・サービスとしては、Tomcat と Apache 両方を起動する。
    URL は、次のように Apache のホームがトップになる。

http://sak-design/

  ・Servlet、JSP の URL は、次のようになる。
    (但し、実フォルダは、Tomcat 内のままである。)

http://sak-design/sak/servlet/test
http://sak-design/sak/jsp/test.jsp

■全サービス起動シェルスクリプト

  ・ipc-daemon は、「-q」でメッセージを表示しないことを発見した。
    起動順は、
      IPC
      PostgreSQL
      MySQL
      Tomcat
      Apache
    としている。

#!/bin/sh
ipc-daemon -q &
postmaster -i &
mysqld-nt --standalone &
cd /jakarta-tomcat-3.3.1/bin
startup.sh
cd
apache -k start &

■全サービス終了シェルスクリプト

  ・kill のプロセス終了ロジックには、非常にあやしいものがある。(^^;
    とりあえずは動作する。
    終了順は、
      Apache
      Tomcat
      MySQL
      PostgreSQL
      IPC
    としている。

#!/bin/sh
apache -k shutdown
cd /jakarta-tomcat-3.3.1/bin
shutdown.sh
cd
pid=`ps | grep mysqld-nt'`
kill ${pid}
pid=`ps | grep postgres'`
kill ${pid}
pid=`ps | grep ipc-daemon'`
kill ${pid}

■最終 .bashrc

export HOME=/
export PATH=/j2sdk/bin:/usr/local/perl/bin:$PATH:/usr/local/pgsql/bin:/usr/local/mysql/bin:/usr/local/bin:/usr/local/apache:/oracle/BIN
export POSTGRES_HOME=/usr/local/pgsql
export PGLIB=/usr/local/pgsql/lib
export PGDATA=/usr/local/pgsql/data
export LD_LIBRARY_PATH=/usr/local/pgsql/lib:/usr/local/lib:/oracle/LIB
export TOMCAT_HOME=c:/cygnus/jakarta-tomcat-3.3.1
export JAVA_HOME=/j2sdk
export CLASSPATH=".;c:/cygnus/jakarta-tomcat-3.3.1/lib/common/servlet.jar;C:/cygnus/jakarta-tomcat-3.3.1/webapps/sak/WEB-INF/lib/pgjdbc2.jar"
cd
ls -aF

使用道具 举报

回复
论坛徽章:
21
ITPUB元老
日期:2005-05-10 17:20:252012新春纪念徽章
日期:2012-02-13 15:10:582012新春纪念徽章
日期:2012-02-13 15:10:582012新春纪念徽章
日期:2012-02-13 15:10:582012新春纪念徽章
日期:2012-02-13 15:10:58马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:142012新春纪念徽章
日期:2012-02-13 15:10:58
36#
 楼主| 发表于 2005-3-23 18:15 | 只看该作者
PostgreSQL + Web 編4 - Cygwin 2.05b、Cygipc 1.11.1 インストール、移行

■Cygwin version 2.05b.0(5)-release (i686-pc-cygwin) インストール

  ・PostgreSQL 7.2.3、JAVA2 SDK 1.4.0 にした事に伴って、Cygwin B20 から、
    Cygwin 2.05b に環境を変更することにする。
    ついでに、インストール先も c: から j: ドライブに変更する。

  ・Tomcat 等のインストールについては、
    PostgreSQL + Web 編2 - JAVA Servlet、JSP、J2SDK、Tomcat、JDBC 環境
    を参考にして下さい。

  ・Apache、Tomcat 連携については、
    PostgreSQL + Web 編3 - Apache、Tomcat 連携、mod_jk.dll、mod_jk.conf
    を参考にして下さい。

  ・尚、Cygwin B20 での PostgreSQL 動作より、Cygwin 2.05b での動作の方が
    速いかと期待したが、ほんのわずかに速くなった程度である。(^^;
    (psql で日本語表示が可能になったのはうれしいが...)

■旧環境退避

  ・PostgreSQL 7.2.3 等は、Cygwin B20 配下のものを後で、コピーする作戦と
    するので、作業フォルダに c:/cygnus/ をそっくり退避する。
    尚、新環境に PostgreSQL の src 等はもってこないつもりなので、更に念
    をいれて MO に旧環境を保管退避しておく。

■JAVA2 SDK 1.4.0 アンインストール

  ・c:/cygnus/j2sdk/ とインストールしているので、一度アンインストール
    する。

■Cygwin B20 アンインストール

  ・c:/cygnus/ とインストールしているので、アンインストールする。
    アンインストール後も c:/cygnus/ フォルダが残るようなら、手作業で削除
    して綺麗にする。

■Cygwin 2.05b インストール

  ・まず、Cygwin の setup.exe をダウンロードする。

  ・setup.exe を起動して、次のように指定して更にダウンロードする。

      Download from Internet
      Local Packege Directory: ダウンロードフォルダ
      Direct Connection / Use IE5 Settings
      接続先: 先頭のものを選択した
      選択: 初期値
        + Devel Install    (C コンパイラ等)
        + Utils
            bzip2 Install  (解凍ツール)

  ・setup.exe のダウンロードが完了すれば、以後はローカルで処理できる。
    再度、setup.exe を起動して、次のようにインストールする。

      Install from Local Directory
      インストール先: j:\cygwin
      形式: Unix
      選択: 初期値
        + Devel Install    (C コンパイラ等)
        + Utils
            bzip2 Install  (解凍ツール)

      ** 初回は、デスクトップにアイコンを作成させると良い

■CygIPC 1.11.1 インストール

  ・cygipc-1.11-1.tar.bz2 をダウンロードし、j:/cygwin/ に置く。
    Cygwin 2.05b で、次のようにインストールする。

cd /
bunzip2 -dc cygipc-1.11-1.tar.bz2 | tar -xvf -

  ・インストールが終了すれば、j:/cygwin/ に置いた cygipc-1.11-1.tar.bz2
    は不要である。

■less.exe インストール

  ・less290i.tgz をダウンロードし、一時的な作業フォルダを作成し、そこに
    置く。Cygwin 2.05b で、次のように解凍する。

cd /workgomi
tar -zxf less290i.tgz

  ・解凍した workgomi/ の中の less290i.tgz を除く 10 個のファイルを
    /usr/local/bin/ にコピーし、workgomi/ フォルダを削除する。

  ・この less.exe で、PostgreSQL の psql による select で、日本語データ
    が普通に表示できる。

■JAVA2 SDK 1.4.0 インストール

  ・j:/cygwin/j2sdk/ とインストールする。

■PostgreSQL 7.2.3 移行

  ・/usr/local/pgsql/ にコピーする。

■Apache 1.3.20 移行

  ・/usr/local/apache/ にコピーする。
    grep を多用して、ドライブレター、フォルダ構成を新環境に修正する。

■Perl 5.6.1 移行

  ・/usr/local/perl/ にコピーする。

■PHP 4.0.6 移行

  ・/usr/local/php/ にコピーする。
    grep を多用して、ドライブレター、フォルダ構成を新環境に修正する。
    尚、Windows フォルダの php.ini も修正すること。

■MySQL 1.3.20 移行

  ・/usr/local/mysqlfront/、/usr/local/mysql/ にコピーする。
    grep を多用して、ドライブレター、フォルダ構成を新環境に修正する。

■www ウェブホーム 移行

  ・/usr/local/www/ にコピーする。
    grep を多用して、ドライブレター、フォルダ構成を新環境に修正する。

■Tomcat 3.3.1 移行

  ・/jakarta-tomcat-3.3.1/ にコピーする。
    grep を多用して、ドライブレター、フォルダ構成を新環境に修正する。
    尚、修正後に
    j:\cygwin\jakarta-tomcat-3.3.1\conf\auto\iis_redirect.reg
    は、ダブルクリックして、レジストリ再登録する。

■cygwin.bat 修正

  ・j:\cygwin\cygwin.bat では、どうしても起動直後のホームに問題がある。
    次のように修正する。

@echo off
set HOME=/

j:
chdir j:\cygwin\bin

bash --login -i

■profile 修正

  ・j:\cygwin\etc\profile の最後に「test -f ./.bashrc && . ./.bashrc 」
    を 1 行追加して、.bashrc が起動時に処理できるようにする。

...
...
...
cd "$HOME"

test -f ./.bashrc && . ./.bashrc

■.bashrc 修正

  ・旧版とはパスの初期値が少し違う。その点も含め、ドライブレター、フォル
    ダ構成を新環境に修正する。

export HOME=/
export PATH=/j2sdk/bin:/usr/local/perl/bin:$PATH:/usr/local/pgsql/bin:/usr/local/mysql/bin:/usr/local/apache:/oracle/BIN
export POSTGRES_HOME=/usr/local/pgsql
export PGLIB=/usr/local/pgsql/lib
export PGDATA=/usr/local/pgsql/data
export LD_LIBRARY_PATH=/usr/local/pgsql/lib:/usr/local/lib:/oracle/LIB
export TOMCAT_HOME=j:/cygwin/jakarta-tomcat-3.3.1
export JAVA_HOME=/j2sdk
export CLASSPATH=".;j:/cygwin/jakarta-tomcat-3.3.1/lib/common/servlet.jar;j:/cygwin/jakarta-tomcat-3.3.1/webapps/sak/WEB-INF/lib/pgjdbc2.jar"
cd
ls -aF

■mount 追加

  ・初期の mount は、次のようになっている。

j:/cygwin/bin on /usr/bin type system (binmode)
j:/cygwin/lib on /usr/lib type system (binmode)
j:/cygwin on / type system (binmode)
c: on /cygdrive/c type user (binmode,noumount)
d: on /cygdrive/d type user (binmode,noumount)
e: on /cygdrive/e type user (binmode,noumount)
f: on /cygdrive/f type user (binmode,noumount)
g: on /cygdrive/g type user (binmode,noumount)
h: on /cygdrive/h type user (binmode,noumount)
i: on /cygdrive/i type user (binmode,noumount)
j: on /cygdrive/j type user (binmode,noumount)

  ・旧版と同じく、次のように mount を追加する。

mount -f g:/tmp /src
mount -f j:/oracle/ora90 /oracle

  ・最終的な mount は、次のようになる。

j:/oracle/ora90 on /oracle type system (binmode)
j:/cygwin/bin on /usr/bin type system (binmode)
j:/cygwin/lib on /usr/lib type system (binmode)
j:/cygwin on / type system (binmode)
g:/tmp on /src type system (binmode)
c: on /cygdrive/c type user (binmode,noumount)
d: on /cygdrive/d type user (binmode,noumount)
e: on /cygdrive/e type user (binmode,noumount)
f: on /cygdrive/f type user (binmode,noumount)
g: on /cygdrive/g type user (binmode,noumount)
h: on /cygdrive/h type user (binmode,noumount)
i: on /cygdrive/i type user (binmode,noumount)
j: on /cygdrive/j type user (binmode,noumount)

■全サービス起動シェルスクリプト

  ・PostgreSQL については、pg_ctl で起動終了しないと、次回の起動でエラー
    が発生する。また、-i パラメタを指定しないと psql 等が使用できない。
    「pg_ctl -o -i start」で起動している。
    起動順は、
      IPC
      PostgreSQL
      #MySQL (注釈)
      Tomcat
      Apache
    としている。

#!/bin/sh
ipc-daemon -q &
pg_ctl -o -i start
#mysqld-nt --standalone &
cd /jakarta-tomcat-3.3.1/bin
startup.sh
cd
apache -k start &
sleep 2
ps

■全サービス終了シェルスクリプト

  ・kill のプロセス終了ロジックを Cygwin 2.05b 用に修正した。
    尚、たまに MySQL が kill さえもできない症状が発生するので、MySQL の
    サービス操作は別途行っている。
    また、PostgreSQL については、pg_ctl で起動終了しないと、次回の起動で
    エラーが発生する。
    終了順は、
      #MySQL (注釈)
      Apache
      Tomcat
      PostgreSQL
      IPC
      #MySQL kill (注釈)
    としている。

#!/bin/sh
#mysqld-nt.exe --shutdown
apache -k shutdown
cd /jakarta-tomcat-3.3.1/bin
shutdown.sh
cd
pg_ctl stop
pid=`ps | sort | grep -m1 ipc-daemon | awk '{print $1;}'`
kill ${pid}
#pid=`ps | sort | grep -m1 mysqld-nt | awk '{print $1;}'`
#kill -f ${pid}
sleep 1
ps

使用道具 举报

回复
论坛徽章:
21
ITPUB元老
日期:2005-05-10 17:20:252012新春纪念徽章
日期:2012-02-13 15:10:582012新春纪念徽章
日期:2012-02-13 15:10:582012新春纪念徽章
日期:2012-02-13 15:10:582012新春纪念徽章
日期:2012-02-13 15:10:58马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:142012新春纪念徽章
日期:2012-02-13 15:10:58
37#
 楼主| 发表于 2005-3-23 18:15 | 只看该作者

使用道具 举报

回复
论坛徽章:
0
38#
发表于 2011-10-19 13:49 | 只看该作者
发现这个帖子没人顶,我已经看了好多遍了,真的是帮助很大,谢谢分享!!!

使用道具 举报

回复
论坛徽章:
2
ITPUB十周年纪念徽章
日期:2011-11-01 16:24:512013年新春福章
日期:2013-02-25 14:51:24
39#
发表于 2011-10-21 09:41 | 只看该作者
谢谢分享

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表