· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Linuxdoc Sgml/JServ_PgSQL-KLDP

<!--post_jdbc.sgml By NoGaDa-X !!(/06/15/2000)-->
<!doctype linuxdoc system>
<article>
<title>postgreSQLÀÇ JDBC Ȱ¿ëÇϱâ 
<author>ÁÖÈ¿½Ä <htmlurl url="mailto:nogadax@kldp.org" name="nogadax@kldp.org">
<date>2000³â 6¿ù 15ÀÏ 
<abstract>ÀÌ ¹®¼­´Â "Apache-JServ ¿¡ postgreSQL ¿¬µ¿Çϱâ"¶ó´Â Á¦¸ñÀÇ ¹®¼­¸¦ ´ëÆø ¼öÁ¤, º¸¿ÏÇÑ 
°ÍÀÌ´Ù. ¶ÇÇÑ ¼­¹ö Ŭ¶óÀÌ¾ðÆ®¿¡¼­ JDBC¸¦ ¼³Á¤ÇÏ´Â »çÇ×µµ Ãß°¡ÇÏ¿´´Ù.

ÀÌ ¹®¼­´Â Æ÷½ºÆ®±×·¹½ºÀÇ JDBC¸¦ Ȱ¿ëÇÏ´Â ¹æ¹ýÀ» Å©°Ô µÎ°¡Áö·Î ³ª´©¾î ¼³¸íÇÑ´Ù. ù ¹ø
°´Â postgreSQLÀ» DB ¼­¹ö·Î Çϰí À©µµ¿ì(  Window 98 )¸¦ Ŭ¶óÀÌ¾ðÆ®·Î ÇÒ¶§ JDBCÀÇ 
¼³Á¤»çÇ׿¡ ´ëÇØ ¼³¸íÇÑ´Ù. µÎ ¹øÂ°´Â Jserv¸¦ Ãß°¡ÇÑ Apache¿¡ DB  ¼­¹ö·Î¼­ postgreSQL 
À» ¿¬µ¿Çϱâ À§ÇØ JDBCÀÇ ¼³Á¤ »çÇ׵ ´ëÇØ ¼³¸íÇÑ´Ù.</abstract>
<toc>
<sect>Áغñ »çÇ×
<p>¼³Á¤ ¹×   Å×½ºÆ®¿¡ ¾Õ¼­  ±âº»ÀûÀ¸·Î  ÁغñµÇ¾î¾ß  ÇÒ  »çÇ×ÀÌ ÀÖ´Ù.   ÀÌ¿¡ ´ëÇÑ  »çÇ×Àº  
<url url="http://www.kldp.org" name="http://www.kldp.org"> ¸¦ ÂüÁ¶Çϰųª ±âŸ ¹®¼­¸¦ ÂüÁ¶Çϱ⠹ٶõ´Ù. ´ÙÀ½Àº  ¹Ì¸® ÁغñµÇ¾î
¾ß ÇÒ »çÇ×ÀÌ´Ù. 
<itemize>       
<item>¾ÆÆÄÄ¡ 
<item>JServ 
<item>JDK1.1.x ÀÌ»ó 
<item>JSDK2.0 ÀÌ»ó 
<item>postgreSQL 
<item>Window 98 (Ŭ¶óÀ̾ðÆ®)
</itemize>
<p>ÀÌ¹Ì Å×½ºÆ®¸¦ ¸¶Ä£ ÇÊÀÚÀÇ È¯°æÀº ´ÙÀ½°ú °°´Ù. 
<itemize>
<item>¾×¼¿ ¸®´ª½º 6.1 
<item>¾ÆÆÄÄ¡ 1.3.9 
<item>JServ 1.0 
<item>JDK 1.2.2 
<item>JSDK 2.0 
<item>postgresql 6.5.3 ¹× postgresql 7.0.x
<item>Window 98 (Ŭ¶óÀ̾ðÆ®)
</itemize>
<p>±âŸ Âü°í¸¦ À§ÇÑ »çÀÌÆ®´Â ´ÙÀ½°ú °°´Ù.  
<itemize>
<item><url url="http://www.apache.kr.net"    name="http://apache.kr.net"> 
<item><url url="http://www.apache.org"       name="http://www.apache.org"> 
<item><url url="http://www.postgresql.org"   name="http://www.postgresql.org"> 
<item><url url="http://www.blackdown.org"    name="http://www.blackdown.org">
<item><url url="http://java.apache.org"      name="http://java.apache.org">
<item><url url="http://java.sun.com"         name="http://java.sun.com">
<item><url url="http://database.sarang.net"  name="http://database.sarang.net">
</itemize>
<p>±âŸ ¾à°£ÀÇ Æ÷½ºÆ®±×·¹½º ¹®¼­¿Í  Apache-JServ, Æ÷½ºÆ®±×·¹½º ¿¬µ¿ °ü·ÃÀÇ  ¼Ò½º ¿¹Á¦°¡  
ÇÊÀÚÀÇ È¨ÆäÀÌÁö¿¡ (<url url="http://user.chollian.net/~nogadax" name="http://user.chollian.net/~nogadax">) ÀÖÀ¸´Ï ÂüÁ¶Çϱ⠹ٶõ´Ù.  

<sect>Æ÷½ºÆ®±×·¹½º JDBC µå¶óÀ̹ö ¸¸µé±â 
<p>Æ÷½ºÆ®±×·¹½º´Â <bf>Type 4</bf>ÀÇ JDBC µå¶óÀ̹ö¸¦ Á¦°øÇÑ´Ù.  Type 4´Â ¼ø¼ö ÀÚ¹Ù·Î ÀÛ¼ºµÇ¾ú°í 
µ¥ÀÌÅͺ£À̽º ÀÚüÀÇ Åë½Å ÇÁ·ÎÅäÄÝ·Î Åë½ÅÇÑ´Ù. À̴ Ŭ¶óÀ̾ðÆ®ÃøÀÌ JDBC¸¦ ÅëÇØ DBMS 
¼­¹ö¿ÍÀÇ Á÷Á¢ÀûÀÎ Åë½ÅÀÌ °¡´ÉÇÔÀ» ÀǹÌÇÑ´Ù. ³×Æ®¿öÅ©»ó¿¡¼­ JDBC µå¶óÀ̹ö¸¦ ÅëÇØ °£Æí
ÇÏ°Ô Æ÷½ºÆ®±×·¹½º DB ¼­¹ö¿Í ¿¬°áÇÒ ¼ö ÀÖÀ¸¸ç À̸¦ ÀÀ¿ëÇÏ·Á´Â °³¹ßÀÚ´Â DB  ÀÇ ±â´É¿¡
¸¸ ÁýÁßÇϸç ÀÛ¾÷À» ÇÒ ¼ö ÀÖ´Ù. 

<p>¶ÇÇÑ Æ÷½ºÆ®±×·¹½º JDBC µå¶óÀ̹ö´Â Ç÷§Æû¿¡  ºñÁ¾¼ÓÀûÀ̹ǷΠÇѹø ÄÄÆÄÀÏµÈ µå¶óÀ̹ö´Â 
¾î¶² Ç÷§Æû¿¡¼­µµ »ç¿ë °¡´ÉÇÏ´Ù. ¿¹¸¦ µé¾î,  ÄÄÆÄÀÏ µÇ¾î »ý¼ºµÈ Æ÷½ºÆ®±×·¹½º JDBC µå
¶óÀ̹ö´Â À©µµ¿ì³ª ¸®´ª½º¿¡¼­ ¾î¶°ÇÑ ¼öÁ¤¾øÀÌ ¹Ù·Î »ç¿ë °¡´ÉÇÏ´Ù.

<sect1>JDBC ´Ù¿î¹Þ±â 

<p>Æ÷½ºÆ®±×·¹½º¸¦ Á÷Á¢ ¼³Ä¡ÇÏÁö ¾Ê¾Æ Æ÷½ºÆ®±×·¹½ºÀÇ ¼Ò½º°¡ ¾øÀ» °æ¿ì Æ÷½ºÆ®±×·¹½º »çÀÌÆ®
(<url url="http://www.postgresql.org" name="http://www.postgresql.org">) ¿¡¼­ RPM ÇüÅÂÀÇ JDBC µå¶óÀ̹ö¸¦ ´Ù¿î¹ÞÀ» ¼ö ÀÖ´Ù. ±×¿Ü¿¡ 
<url url="http://www.retep.org.uk" name="http://www.retep.org.uk"> ¿¡¼­ ´Ù¿î ¹ÞÀ» ¼ö ÀÖ´Ù. 

<p>´Ù¿î¹ÞÀ» ¶§ ÁÖÀÇÇÒ Á¡ÀÌ Àִµ¥ ¸¸¾à "JDK1.1.x" ¸¦ °¡Áö°í ÀÖ´Ù¸é "JDBC  1" µå¶óÀ̹ö¸¦ 
´Ù¿î¹Þ¾Æ¾ß Çϰí "JDK1.2" ÀÌ»óÀ» °¡Áö°í ÀÖ´Ù¸é "JDBC 2" µå¶óÀ̹ö¸¦ ´Ù¿î¹ÞÀ¸¸é µÈ´Ù. 

<sect1>JDBC ¸¸µé±â 

<p>JDBC µå¶óÀ̹ö°¡ ¾ø´Ù¸é À̸¦ ¸¸µé¾î¾ß ÇÑ´Ù. ¸¸¾à, Æ÷½ºÆ®±×·¹½ºÀÇ ¼Ò½º¸¦ ´Ù¿î¹Þ¾Æ Á÷Á¢ 
¼³Ä¡¸¦ ÇÑ °æ¿ìÀÌ¸é Æ÷½ºÆ®±×·¹½º ¼Ò½º µð·ºÅ丮³»ÀÇ interfaces µð·ºÅ丮¿¡ JDBC µå¶óÀ̹ö 
¼Ò½º°¡ À־ ÄÄÆÄÀÏÀ» ÇÏ¸é µÈ´Ù. 

<p>JDBC µå¶óÀ̹öÀÇ ÄÄÆÄÀϽà "JDK1.1.x" ÇÏ¿¡¼­ JDBC µå¶óÀ̹ö¸¦ ¸¸µé¸é "JDBC 1" µå¶óÀÌ
¹öÀÌ´Ù. JDK1.2 ¹öÁ¯¿¡¼­ ¸¸µé¾îÁø JDBC µå¶óÀ̹ö´Â "JDBC 2" µå¶óÀ̹öÀÌ´Ù. 

<p>ÀÌ ¹®¼­¿¡¼­´Â Æ÷½ºÆ®±×·¹½ºÀÇ ¼Ò½º µð·ºÅ丮´Â  "/usr/local/src/pgsql_¹öÁ¯" ÀÌ¶ó °¡Á¤Çϰí 
Æ÷½ºÆ®±×·¹½º°¡ ÄÄÆÄÀÏµÇ¾î ¼³Ä¡µÉ µð·ºÅ丮¸¦ "/usr/local/pgsql" À̶ó°í °¡Á¤ÇÑ´Ù. ±âŸ, Æ÷
½ºÆ®±×·¹½º "6.5.x" ¹öÀü´ëÀÇ ÄÄÆÄÀÏ ¹æ¹ý°ú Æ÷½ºÆ®±×·¹½º "7.0.x" ¹öÀü´ëÀÇ JDBC  µå¶óÀ̹ö
ÀÇ ÄÄÆÄÀÏ ¹æ¹ýÀÌ ´Ù¸£¹Ç·Î ÁÖÀÇÇÏ¿©¾ß ÇÑ´Ù. ÀÌÁ¦ JDBC µå¶óÀ̹ö¸¦ ¸¸µé¾îº¸ÀÚ. 

<sect2>postgreSQL 6.5.x µå¶óÀ̹ö ¸¸µé±â<p> 

<p>postgreSQL 6.5.x ÀÇ °æ¿ì´Â ´ÙÀ½°ú °°´Ù. 

<p>/usr/local/src/pgsql6.5.3/src/interfaces/jdbc]$<bf> make</bf>

<p>´ÜÁö À§ÀÇ µð·ºÅ丮·Î °¡¼­ "make"¸¸ ÇØÁÖ¸é µÈ´Ù. "make" ¿Ï·á  ÈÄ¿¡ ÄÄÆÄÀÏ µÈ µå¶óÀ̹ö
¸¦ È®ÀÎÇØ º¸ÀÚ. µå¶óÀ̹öÀÇ À̸§Àº "postgresql.jar" ÀÌ´Ù. ÀÌÁ¦´Â "/usr/local/pgsql" ¿¡ jdbc 
¶ó´Â µð·ºÅ丮¸¦ ¸¸µé°í "postgresql.jar" ¸¦ º¹»çÇÏÀÚ. JDBC µå¶óÀ̹ö¸¦ ÀúÀåÇÒ µð·ºÅ丮´Â 
ÀÚ½ÅÀÌ ¿øÇÏ´Â ´ë·Î ¹Ù²Ù¾îµµ ÁÁ´Ù. 

<p>/usr/local/pgsql]$ mkdir  jdbc
<p>/usr/local/pgsql]$ cp  ../src/pgsql6.5.3/src/interfaces/postgresql.jar  ./jdbc/

<sect2>postgreSQL 7.0.x µå¶óÀ̹ö ¸¸µé±â<p> 

<p>"postgreSQL 7.0.x" ÀÇ °æ¿ì´Â "6.5.x" ¿Í´Â Á»  ´Ù¸£´Ù. ¸¸¾à, "6.5.x" ó·³ "make" ¸¸ ÀÔ·Â
ÇÏ¸é ¸Þ½ÃÁö°¡ ³ª¿À´Âµ¥  ±× ³»¿ëÀº  "JDK1.1.x" ÀÌ¸é   "make  jdbc1   jar"À» ÀÔ·ÂÇϰí 
"JDK1.2.x" À̸é "make  jdbc2  jar"¸¦ ÀÔ·ÂÇ϶ó´Â  ¸Þ½ÃÁö°¡ ³ª¿Â´Ù. ¿©±â¼­´Â "JDK1.2.x" 
·Î °¡Á¤Çϰí ÄÄÆÄÀÏ ÇØº¸ÀÚ.

<p> /usr/local/src/pgsql7.0.2/src/interfaces/jdbc]$<bf> make    jdbc2    jar</bf> 

<p>ÀÌÁ¦ ÄÄÆÄÀÏ µÈ µå¶óÀ̹ö¸¦ È®ÀÎÇØ  º¸ÀÚ. µå¶óÀ̹öÀÇ À̸§Àº "postgresql.jar" ÀÌ´Ù.  »ý¼ºµÈ 
JDBC µå¶óÀ̹ö´Â "/usr/local/pgsql" ¿¡ jdbc ¶ó´Â µð·ºÅ丮¸¦ ¸¸µé°í JDBC µå¶óÀ̹ö¸¦ º¹
»çÇØ ³õÀ¸¸é µÈ´Ù. 

<p> /usr/local/pgsql]$ mkdir  jdbc
<p> /usr/local/pgsql]$ cp  ../src/pgsql7.0.2/src/interfaces/postgresql.jar  ./jdbc/

<sect1>JDBC µå¶óÀ̹ö Å×½ºÆ®Ç챉  

<p>¸®´ª½º¿¡¼­ ÄÄÆÄÀÏµÇ¾î »ý¼ºµÈ  JDBC µå¶óÀ̹ö¸¦ Å×½ºÆ®ÇÏ·Á°í  ÇÏ´Â °æ¿ì "JDK"¸¦  À§ÇØ 
CLASSPATH ¸¦ ¼³Á¤ÇÏ¿©¾ß ÇÑ´Ù. CLASSPATHÀÇ ¼³Á¤ ¿¹´Â ´ÙÀ½°ú °°´Ù. 

<p><bf>export   CLASSPATH="$CLASSPATH:/usr/local/pgsql/jdbc/postgresql.jar:."</bf>

<p>À§ÀÇ export ¸í·ÉÀ» ÀÏ¹Ý ½©»ó¿¡¼­  ½ÇÇàÇÏ¿©µµ µÇ³ª ÀÌ´Â ÀÏȸ¼ºÀ̹ǷΠ¸Å¹ø  ºÎÆÃ ¶§¸¶´Ù 
export ¸í·ÉÀ» ½ÇÇàÇØÁÖ¾î¾ß ÇÑ´Ù. ÀÏȸ¼ºÀÌ ¾Æ´Ñ ¿µ±¸ÀûÀ¸·Î ¼³Á¤Çϱâ À§ÇØ ¸®´ª½ºÀÇ ºÎÆÃ
½Ã ·Î±ä °ü·Ã ¼³Á¤ ÆÄÀÏÀÎ "<bf>/etc/profile</bf>" À̳ª "/root/.bash_profile" µî¿¡ À§ÀÇ CLASSPATH 
¼³Á¤ ¿¹¸¦ Ãß°¡ÇÏ¸é µÈ´Ù. 

<p>¼³Á¤ÀÌ ³¡³ª¸é ºÎÆÃ  ÈÄ ¼³Á¤  »çÇ× ¹×  JDBC µå¶óÀ̹öÀÇ È®ÀÎÀ»  À§ÇØ Å×½ºÆ®¸¦  ÇØº¸ÀÚ. 
JDBC µå¶óÀ̹öÀÇ Å×½ºÆ®¸¦ À§ÇØ "<bf>/usr/local/src/pgsql653/src/interfaces/jdbc/example</bf>" µð·º
Å丮ÀÇ ¿¹Á¦ ¼Ò½º¸¦ ÄÄÆÄÀÏÇØº»´Ù. ´ÙÀ½Àº Å×½ºÆ®¸¦ À§ÇØ example µð·ºÅ丮ÀÇ  basic.java¸¦ 
ÄÄÆÄÀÏÇÏ´Â ¿¹ÀÌ´Ù.

<p>/usr/local/src/pgsql653/src/interfaces/jdbc/example]$ javac  basic.java

<sect>¼­¹ö Ŭ¶óÀÌ¾ðÆ® (À©µµ¿ì) ¼³Á¤ 

<p>¸®´ª½º¿¡ Æ÷½ºÆ®±×·¹½º¸¦ ¼³Ä¡ÇÑ ÈÄ Æ÷½ºÆ®±×·¹½º¸¦ DB¼­¹ö·Î Çϰí Ŭ¶óÀ̾ðÆ®ÃøÀÎ À©µµ¿ì
¿¡¼­ JDBC¸¦ ÅëÇØ  Æ÷½ºÆ®±×·¹½º¸¦ ÀÌ¿ëÇÏ·Á ÇÑ´Ù°í  °¡Á¤ÇÏÀÚ. ±âŸ À©µµ¿ìÀÇ  IP ÁÖ¼Ò´Â 
210.110.144.169 ÀÌ¶ó °¡Á¤ÇÑ´Ù. 

<p><bf>JDBC µå¶óÀ̹öÀÇ ¼³Á¤ ¼ø¼­´Â ´ÙÀ½°ú °°´Ù.</bf>

<enum>
<item><p>Æ÷½ºÆ®±×·¹½º JDBC µå¶óÀ̹ö¸¦ À©µµ¿ìÀÇ Àû´çÇÑ µð·ºÅ丮¿¡ º¹»çÇÑ´Ù. 

<item><p>À©µµ¿ìÀÇ AUTOEXEC.BAT ÆÄÀÏ¿¡ JDBC µå¶óÀ̹ö °æ·Î¸¦ CLASSPATH¿¡ µî·ÏÇÑ´Ù. 
<p>¾Æ·¡´Â AUTOEXEC.BAT ÆÄÀÏ¿¡¼­ÀÇ ¼³Á¤¿¹ÀÌ´Ù.
<p><bf>set  classpath=.;c:\postgres\jdbc_drv\postgresql.jar</bf><p>
<item><p>À©µµ¿ì¸¦ ¸®ºÎÆÃÇÑ´Ù.<p>
<item><p>À©µµ¿ì¿¡¼­ DB¼­¹ö·ÎÀÇ ¿øÇÒÇÑ Á¢±ÙÀ» Çã¿ëÇ챉  À§ÇØ ¸®´ª½º¿¡ ¼³Ä¡µÈ Æ÷½ºÆ®±×·¹½ºÀÇ 
"pg_hba.conf" ÆÄÀÏÀ» ¼öÁ¤ÇÑ´Ù. 
<p>¸¸¾à    Æ÷½ºÆ®±×·¹½ºÀÇ    °æ·Î°¡    "/usr/local/pgsql"    ÀÌ¸é    pg_hba.conf    ÆÄÀÏÀº 
"<bf>/usr/local/pgsql/data</bf>" µð·ºÅ丮¿¡ ÀÖ´Ù. 
<p>¾Æ·¡´Â ¼³Á¤ ¿¹·Î¼­ Àڽſ¡ ȯ°æ¿¡ ¸Â°Ô ¼öÁ¤ÇÑ ´ÙÀ½ pg_hba.conf ÆÄÀÏÀÇ ¸¶Áö¸· ¶óÀο¡ Ãß
°¡ÇÏ¸é µÈ´Ù.  
<p><bf>host   all   210.110.144.169   255.255.255.255   trust</bf> 
</enum>

<p>À§ÀÇ ¿¹¿¡ ´ëÇÑ ¼³¸íÀº ´ÙÀ½°ú °°´Ù. 
 
<p><bf>host</bf> ´Â ¿¹¾à¾î·Î¼­ Internet Domain ¹æ½ÄÀ» ÀǹÌÇÑ´Ù. <bf>all</bf>  Àº ¸ðµç µ¥ÀÌÅͺ£À̽º¸¦ ÀǹÌÇÏ
¸ç ¸¸¾à ƯÁ¤ DB·Î ¼³Á¤ÇϰíÀÚ ÇÑ´Ù¸é DB À̸§À»  ÀûÀ¸¸é µÈ´Ù. ¿¹¸¦ µé¾î Á¢±ÙÇÏ·Á´Â µ¥
ÀÌÅͺ£À̽º¸íÀÌ "nogadax"   À̸é À§ÀÇ   ¿¹¿¡¼­ "all"   ´ë½Å "nogadax"¸¦   ÀûÀ¸¸é µÈ´Ù. 
<bf>210.110.144.169</bf>´Â Æ÷½ºÆ®±×·¹½º¿¡ Á¢±ÙÇÏ·Á´Â Ŭ¶óÀ̾ðÆ®ÀÇ  IPÁּҷμ­ ¿©±â¼­´Â À©µµ¿ìÀÇ 
IP ÁÖ¼ÒÀÌ´Ù. <bf>255.255.255.255</bf> ´Â Net Mask ÀÌ´Ù. <bf>trust</bf> ´Â  Ŭ¶óÀ̾ðÆ®ÀÇ Á¢±Ù¿¡ ´ëÇÑ ÀÎÁõ 
¸Þ¼Òµå·Î¼­ trust´Â º°´Ù¸¥ ÀÎÁõ ÀýÂ÷¾øÀÌ access °¡ °¡´ÉÇÏ´Ù. ¸¸¾à <bf>crypt</bf> ÀÌ¸é  ID  ¿Í ÆÐ
½º¿öµå°¡ ÇÊ¿äÇÏ´Ù. ÀÌ¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº  "pg_hba.conf" ¼³¸íÀ» ÂüÁ¶¹Ù¶ó¸ç ÀÌ¿¡ ´ëÇÑ 
°ÍÀº <url url="http://www.kldp.org" name="http://www.kldp.org"> ¿¡ ÀÖÀ¸´Ï ÂüÁ¶Çϱ⠹ٶõ´Ù.  

<p><bf>Å×½ºÆ®</bf>
<p>Å×½ºÆ®¸¦ À§ÇØ Æ÷½ºÆ®±×·¹½ºÀÇ JDBC ¿¹Á¦ ÇÁ·Î±×·¥ ¼Ò½º¸¦ À©µµ¿ì¿¡ Àû´çÈ÷ º¹»çÇÑ ÈÄ ÄÄÆÄÀÏ ÇÑ´Ù. 
ÄÄÆÄÀÏ ¿¹´Â ´ÙÀ½°ú °°´Ù. 
<P> javac  Basic.java

<sect> Apache-Jserv¿¡ ¿¬µ¿Ç챉   

<P>ÀÌ ºÎºÐÀ» ½ÃÀÛÇϱâ Àü¿¡ JDK¸¦  À§ÇÑ <bf>CLASSPATH</bf>°¡ ¸ÕÀú ¼³Á¤µÇ¾î  ÀÖ¾î¾ß ÇÑ´Ù. À̸¦ 
À§ÇØ ¾Õ¿¡¼­ ¼³¸íÇÑ  "JDBC µå¶óÀ̹ö Å×½ºÆ®Çϱâ"¸¦ ÂüÁ¶Çϱâ¹Ù¶õ´Ù. 

<P>Apache-JServ °¡ ÀÌ¹Ì ¼³Ä¡µÇ¾î ÀÖ´Ù¸é JServ ȯ°æÆÄÀÏÀÎ "<bf>jserv.properties</bf>" °¡  ÀÖÀ» °ÍÀÌ
´Ù. ÀÌ È­Àϳ»¿¡ postgresql.jarÀÇ °æ·Î¸¦ Æ÷ÇÔ½ÃÄÑÁÖ¸é  µÈ´Ù. ÇÊÀÚÀÇ Apache-JServÀÇ È¯°æ 
ÆÄÀÏ ±¸¼ºÀº ´ÙÀ½°ú °°´Ù. 

<tscreen><verb>
 /usr/local/apache/conf]$ ls
    access.conf  
    httpd.conf    
    srm.conf   
    jserv.conf   
    jserv.properties 
    servlets.properties 
</verb></tscreen>

<p>Æ÷½ºÆ®±×·¹½ºÀÇ JDBC µå¶óÀ̹ö°¡ "jserv.proeprties" ¿¡ µî·ÏÀÌ µÇ¸é Apache-JServ ¸¦ À§ÇÑ 
ȯ°æ ¼³Á¤Àº ³¡ÀÌ´Ù. "jserv.properties" ¿¡ ´ÙÀ½Ã³·³ Ãß°¡ÇØÁÖ¸é µÈ´Ù. 

<p> <bf>wrapper.classpath=/usr/local/pgsql/jdbc/postgresql.jar</bf>

<p>À§Ã³·³ Ãß°¡¸¦ ÇÏ¿´´Ù¸é Apache-JServ ÀÇ È¯°æ¼³Á¤ ºÎºÐÀº ³¡³µ´Ù. 

<p>ÀÌÁ¦´Â "¼­¹ö Ŭ¶óÀÌ¾ðÆ® (À©µµ¿ì) ¼³Á¤" ºÎºÐ¿¡¼­ ¾ð±ÞµÇ¾ú´ø "pg_hba.conf" ÆÄÀÏÀ» ¼öÁ¤ÇÏ
¸é µÈ´Ù. ¿©±â¼­´Â Apache °¡ ¼³Ä¡µÈ °÷ÀÇ IP ÁÖ¼Ò¸¦  210.110.144.168 ¶ó°í °¡Á¤ÇÏÀÚ. ¶ÇÇÑ, 
Æ÷½ºÆ®±×·¹½ºÀÇ °æ·Î°¡ "/usr/local/pgsql" ÀÌ¸é  pg_hba.conf ÆÄÀÏÀº "/usr/local/pgsql/data" 
µð·ºÅ丮¿¡ ÀÖ´Ù. 

<p>¾Æ·¡´Â ¼³Á¤ ¿¹·Î¼­ Àڽſ¡ ȯ°æ¿¡ ¸Â°Ô ¼öÁ¤ÇÑ ´ÙÀ½ pg_hba.conf ÆÄÀÏÀÇ ¸¶Áö¸· ¶óÀο¡ Ãß
°¡ÇÏ¸é µÈ´Ù.  
<tscreen><verb>
host  all  210.110.144.168  255.255.255.255  trust 
</verb></tscreen>
<p>À§ÀÇ ¿¹¿¡ ´ëÇÑ ¼³¸íÀº ´ÙÀ½°ú °°´Ù. 
 
<p><bf>host</bf> ´Â ¿¹¾à¾î·Î¼­ Internet Domain ¹æ½ÄÀ» ÀǹÌÇÑ´Ù.  Internet Domain Àº ÇÁ·Î¼¼½ºÀÇ Åë
½ÅÀÌ ³×Æ®¿öÅ©°£ÀÇ ÇÁ·ÎÅäÄÝÀ» ÅëÇØ ÀÌ·ç¾îÁö°Ô ÇÏ´Â ¸ÞÄ«´ÏÁòÀ¸·Î¼­ ÇÁ¸£ÅäÄÝÀ» ÅëÇØ  DB 
¼­¹ö¿¡ Á¢±ÙÇÏ·Á´Â Host ÀÇ Á¢±ÙÀ» Á¦¾îÇÑ´Ù. <bf>all</bf> Àº ¸ðµç µ¥ÀÌÅͺ£À̽º¸¦ ÀǹÌÇÏ¸ç ¸¸¾à Ư
Á¤ DB·Î ¼³Á¤ÇϰíÀÚ ÇÑ´Ù¸é DB À̸§À» ÀûÀ¸¸é  µÈ´Ù. ¿¹¸¦ µé¾î Á¢±ÙÇÏ·Á´Â µ¥ÀÌÅͺ£À̽º
¸íÀÌ "nogadax" À̸é À§ÀÇ  ¿¹¿¡¼­ "all" ´ë½Å "nogadax"¸¦  ÀûÀ¸¸é µÈ´Ù. "<bf>210.110.144.168</bf>" 
´Â Æ÷½ºÆ®±×·¹½º¿¡ Á¢±ÙÇÏ·Á´Â Ŭ¶óÀ̾ðÆ®ÀÇ IPÁÖ¼ÒÀÌ´Ù. ¿©±â¼­´Â Apache-Jserv°¡ ¼³Ä¡µÈ 
°÷ÀÇ IP ÁÖ¼ÒÀÌ´Ù. <bf>255.255.255.255</bf> ´Â Net Mask ÀÌ´Ù. <bf>trust</bf> ´Â  Ŭ¶óÀ̾ðÆ®ÀÇ Á¢±Ù¿¡ ´ëÇÑ 
ÀÎÁõ ¸Þ¼Òµå·Î¼­ trust´Â º°´Ù¸¥ ÀÎÁõ ÀýÂ÷¾øÀÌ  access °¡ °¡´ÉÇÏ´Ù. ¸¸¾à crypt  ÀÌ¸é  ID  
¿Í ÆÐ½º¿öµå°¡ ÇÊ¿äÇÏ¸ç ´õ¿í ÀÚ¼¼ÇÑ  ³»¿ëÀº pg_hba.conf ÆÄÀÏÀ» ¼³¸íÇÑ ¹®¼­¸¦  ÂüÁ¶Çϱâ 
¹Ù¶õ´Ù.  

<sect> Æ÷½ºÆ®±×·¹½º JDBC ±âÃÊ 

<sect1>JDBC¸¦ À§ÇÑ Áغñ»çÇ× 

<p>JDBC µå¶óÀ̹ö·Î Æ÷½ºÆ®±×·¹½º¸¦ ÀÀ¿ëÇÑ ÇÁ·Î±×·¥À» Å×½ºÆ®Çϱâ Àü¿¡ Æ÷½ºÆ®±×·¹½º µð¸ó
ÀÌ È°¼ºÈ­ µÇ¾î ÀÖ¾î¾ß ÇÏ¸ç µ¥¸óÀº ´ÙÀ½ÀÇ ¿É¼Ç(i)¿¡ ÀÇÇØ ±âµ¿µÇ¾îÁ®¾ß ÇÑ´Ù. 

<p><bf>postmaster   -i &</bf>

<p>À̰ÍÀº ³×Æ®¿öÅ©¸¦ ÅëÇØ ¿¬°áÇÏ·Á´Â JDBC¸¦ À§ÇØ Çʼö »çÇ×ÀÌ´Ù. ¶ÇÇÑ pg_hba.conf ÆÄÀÏÀ» 
È®ÀÎÇϵµ·Ï ÇÑ´Ù. ¸¸¾à, ÀϹÝÀûÀÎ IPÁÖ¼Ò°¡ ¾Æ´Ñ <bf>localhost(127.0.0.1)</bf>À» »ç¿ëÇÏ·ÁÇÑ´Ù¸é ÀÌ ÁÖ
¼Ò(127.0.0.1)¿¡ ´ëÇÏ¿© pg_hba.conf ¿¡ ¼³Á¤ÇÏ¿©¾ß ÇÑ´Ù. ´ÙÀ½Àº localhost ¼³Á¤ ¿¹ÀÌ´Ù. 
<tscreen><verb>
host  all  127.0.0.1  255.255.255.255  trust
</verb></tscreen>

<sect1>µå¶óÀ̹ö ·Îµù 

<p>JDBC µå¶óÀ̹öÀÇ ·Îµù ¹æ¹ýÀº <bf>Class.forName()</bf> ¸¦ »ç¿ëÇÏ¸é  µÈ´Ù. ÁÖÀÇÇÒ Á¡ÀÌ Àִµ¥ Æ÷
½ºÆ®±×·¹½º 6.5.x ¹öÀü°ú 7.0.x  ¹öÀü´ë¿¡¼­ ¾à°£ÀÇ Â÷À̰¡ »ý°å´Ù. ÇÊÀÚ°¡  Å×½ºÆ®¸¦ ¸ñÀûÀ¸
·Î ÀÌÀü¿¡ ¸¸µé¾î ³õ¾Ò´ø ÇÁ·Î±×·¥À¸·Î 7.0.x ¹öÀü´ëÀÇ JDBC µå¶óÀ̹ö¸¦ Å×½ºÆ®¸¦ ÇØº» °á
°ú ¿¡·¯°¡ ¹ß»ýÇÏ¿´´Ù. ¿¡·¯¸¦ ÇØ°áÇϱâ À§ÇØ 7.0.x ¹öÀüÀÇ ¹®¼­¸¦ ã¾Æº» °á°ú ¾Æ¹«·± º¯µ¿
ÀÌ ¾ø¾úÁö¸¸ example µð·ºÅ丮ÀÇ ¿¹Á¦ ¼Ò½º¸¦ º¸°í ¿øÀÎÀ» ¹ß°ßÇÏ¿´´Ù. 

<p>Æ÷½ºÆ®±×·¹½º 6.5.x ¹öÀüÀÇ JDBC µå¶óÀ̹ö´Â Class.forName("<bf>postgresql.jar</bf>");  ÇÏ¸é µÇÁö¸¸ 
7.0.x ¹öÀüÀÇ JDBC µå¶óÀ̹ö´Â Class.forName("<bf>org.postgresql.jar</bf>");¸¦ ÇÏ¿©¾ß  ÇÑ´Ù. ÀÌ·¯ÇÑ 
Â÷À̸¦ ÁÖÀÇÇϱ⠹ٶõ´Ù. ´ÙÀ½Àº Æ÷½ºÆ®±×·¹½º  ¹öÀü´ëº°·Î Class.forName()¸¦ »ç¿ëÇÑ ¿¹ÀÌ
´Ù. ±âŸ ¿¹¿Ü 󸮸¦ À§ÇØ <bf>ClassNotFoundException</bf>À» »ç¿ëÇÑ´Ù. 

<sect2>postgresql 6.5.X ¿¡¼­ÀÇ Class.forName() ÀÇ ¿¹<p>

<tscreen><verb>
public void  test()
throws ClassNotFoundException, FileNotFoundException,
       IOException, SQLException
{ 
   String url = "jdbc:postgresql:nogadax";  
   String usr = "postgres";  
   String pwd = "";

   Class.forName("postgresql.Driver");

   Connection db = DriverManager.getConnection(url, usr, pwd);
   ........
   ........
}
</verb></tscreen>

<sect2>postgresql 7.0.X ¿¡¼­ÀÇ Class.forName() ÀÇ ¿¹<p>

<tscreen><verb>
public void  test()
throws ClassNotFoundException, FileNotFoundException,
       IOException, SQLException
{ 
   String url = "jdbc:postgresql:nogadax";  
   String usr = "postgres";  
   String pwd = "";

   Class.forName("org.postgresql.Driver");

   Connection db = DriverManager.getConnection(url, usr, pwd);
   ........
   ........
}

</verb></tscreen>

<sect1>Connection to the Database 

<p>Æ÷½ºÆ®±×·¹½ºÀÇ µ¥ÀÌÅͺ£À̽º·ÎÀÇ ¿¬°áÀ» À§ÇÑ ¿¹´Â ´ÙÀ½°ú °°´Ù. 

<tscreen><verb>
 jdbc:postgresql:database_name 
 jdbc:postgresql://host/database_name 
 jdbc:postgresql://host:port/database_name 

</verb></tscreen>

<descrip>
<tag>host</tag>Æ÷½ºÆ®±×·¹½º DB ¼­¹öÀÇ È£½ºÆ® ³×ÀÓÀÌ´Ù. IP¸¦ Á־ µÈ´Ù.
 ¸¸¾à ÀÌ ºÎºÐÀÌ  »ý·«µÇ¸é µðÆúÆ®´Â localhost(127.0.0.1) ÀÌ´Ù.<p> 
<tag>port</tag>Æ÷½ºÆ®±×·¹½ºÀÇ µðÆúÆ® Æ÷Æ®´Â 5432 ÀÌ¸ç »ý·« °¡´ÉÇÏ´Ù.<p> 
<tag>database_name</tag>µ¥ÀÌŸº£À̽º¸í<p> 
</descrip> 

<sect2>±âŸ »çÇ×<p> 

<p>ÄÁ³ØÆ®Çϱâ À§ÇØ JDBC ·ÎºÎÅÍ Connection ÀνºÅϽº¸¦ ¾ò¾î¾ß ÇÑ´Ù. À̸¦ À§ÇØ 
DriverManager.getConnection() ¸Þ¼Òµå¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù. 

<p>Connection  db = DriverManager.getConnection(url,user,pwd); 


<p>±âŸ Æ÷½ºÆ®±×·¹½º´Â ÇϳªÀÇ ·¹ÄÚµåÀÇ Å©±â°¡<bf> 8K ¹ÙÀÌÆ®</bf>·Î Á¦ÇѵǾî ÀÖ´Ù. ¸¸¾à ÇϳªÀÇ ·¹
Äڵ尡 8K ¹ÙÀÌÆ®¸¦ ³Ñ¾î¾ß ÇÑ´Ù¸é "<bf>Large Object</bf>" ¶ó´Â ¹æ¹ýÀ» »ç¿ëÇÏ¿©¾ß ÇÑ´Ù. ÀÌ¿¡  ´ë
ÇØ¼­´Â Æ÷½ºÆ®±×·¹½º ÇÁ·Î±×·¡¸Ó °¡À̵åÀÇ JDBC ºÎºÐÀ»  ÂüÁ¶Çϱ⠹ٶõ´Ù. ¶ÇÇÑ, JDBC ¸¦ 
À§ÇÑ ³ª¸ÓÁö ÀÚ¼¼ÇÑ ºÎºÐÀº ÀÏ¹Ý JDBC ¹®¼­µéÀ» ÂüÁ¶Çϱ⠹ٶõ´Ù. 

<sect1>Jserv Å×½ºÆ®¿ë ¼Ò½º

<p>´ÙÀ½Àº Apache-Jserv ¿Í postgreSQLÀÌ ¿¬µ¿µÇ¾úÀ» ¶§ Å×½ºÆ®¸¦ À§ÇÑ ¼Ò½ºÀÌ´Ù. ´ÙÀ½ÀÇ ¼Ò½º´Â Æ÷½ºÆ®±×·¹½ºÀÇ
¿¹Á¦ ¼Ò½º·Î¼­ ´ÜÁö servlet ·Î ¹Ù²Ù¾î web »ó¿¡¼­ ½ÇÇàÀÌ µÇ°Ô²û ÇØÁØ °ÍÀÌ´Ù. 

<p>´ÙÀ½ ¿¹Á¦¸¦ ÄÄÆÄÀÏÇÏ°í ½ÇÇàÇϱ⿡  ¾Õ¼­ Æ÷½ºÆ®±×·¹½º¿¡ µ¥ÀÌŸº£À̽º¸¦  ¸¸µé¾î¾ß ÇÑ´Ù. 
¿©±â¼­´Â µ¥ÀÌŸº£À̽º À̸§ÀÌ nogadax ÀÌ´Ù. À̸¦ ÀûÀýÈ÷ ¹Ù²Ù±â ¹Ù¶õ´Ù. ¶ÇÇÑ Æ÷½ºÆ®±×·¹
½ºÀÇ À¯Àú¸íÀº postgres ÀÌ°í ÆÐ½º¿öµå´Â ¾ø´Ù. À̰÷ÀÇ ¼Ò½º¿¡¼­ÀÇ url, usr, pwd ÀÇ ¼³Á¤Àº 
´ÙÀ½°ú °°´Ù. À̸¦ ÂüÁ¶ÇÏ¿© ÀÚ½ÅÀÇ È¯°æ¿¡ ¸Â°Ô ¹Ù²Ù±â ¹Ù¶õ´Ù. 

<tscreen><verb>
 String url = "jdbc:postgresql:nogadax";  
 String usr = "postgres";  
 String pwd = "";
</verb></tscreen>

<p>ÇÊÀÚÀÇ Å×½ºÆ® ȯ°æÀº ÇÑ´ëÀÇ  PC ¿¡ Æ÷½ºÆ®±×·¹½º¿Í ¾ÆÆÄÄ¡°¡  °°ÀÌ ¼³Ä¡µÇ¾î ÀÖ´Ù. ¸¸¾à 
Å×½ºÆ®ÇÏ·Á°í Çϴ ȯ°æÀÌ  DB¼­¹ö¿Í WEB¼­¹ö°¡  ¼­·Î ´Ù¸¥  °÷¿¡ ¼³Ä¡µÇ¾î ÀÖ´Ù¸é,  Áï, 
3-Tier ȯ°æÀ̸é URL Àº À§¿Í´Â ´Ù¸£°Ô µÇ¾îÁ®¾ß ÇÑ´Ù. 

<p>ÀÚ½ÅÀÇ È¯°æÀ» Àû¿ëÇϱâ À§ÇØ ´ÙÀ½ÀÇ ¿¹¸¦ ÂüÁ¶Çϱ⠹ٶõ´Ù. Âü°í·Î IP ÁÖ¼Ò 210.110.144.162 ´Â 
Æ÷½ºÆ®±×·¹½º DB ¼­¹öÀÇ IPÁÖ¼ÒÀÌ¸ç Æ÷Æ® ¹øÈ£°¡ »ý·«µÇ¾úÀ¸¹Ç·Î µðÆúÆ® ¹øÈ£ "5432"·Î ÀÚµ¿ ¼ÂÆÃµÈ »óÅÂÀÌ´Ù.

<p>  String  url= "jdbc:postgresql://210.110.144.162/nogadax";

<p>±âŸ Class.forName()À» ¹öÀü¿¡ µû¶ó  ÀûÀýÈ÷ ¼öÁ¤Çϱ⠹ٶõ´Ù.  ¾Æ·¡ÀÇ Å×½ºÆ®¿ëÀÇ ¼Ò½º´Â 
Æ÷½ºÆ®±×·¹½º 6.5.3 ÀÇ JDBC µå¶óÀ̹ö¸¦ ±âÁØÀ¸·Î ÀÛ¼ºµÇ¾úÀ¸¹Ç·Î Class.forName()ÀÌ  ¾Æ·¡
¿Í °°´Ù. 

<p>   Class.forName("postgresql.Driver");

<p>±×·¯¹Ç·Î 7.0.x ÀÇ JDBC µå¶óÀ̹ö¿¡¼­ Å×½ºÆ®¸¦ ÇÏ·Á¸é  "<bf>org.postgresql.Driver</bf>" ·Î ¼öÁ¤ÇÏ
¸é µÈ´Ù.  

<p>¶ÇÇÑ ÄÄÆÄÀÏµÈ ¼­ºí¸´Àº ¸®Æ÷ÁöÅ丮¿¡ ÀÖ¾î¾ß ÇÑ´Ù. ¸®Æ÷ÁöÅ͸®´Â ¼­ºí¸´À» À§ÇÑ ³í¸®ÀûÀÎ
µð·ºÅ丮ÀÌ´Ù. À̰ÍÀº zone ¿Í ¿¬°áµÇ¾îÁö´Âµ¥ zoneÀº URL¿¡  ÷°¡µÇ¾îÁø´Ù. ¸¸¾à zone ÀÇ 
À̸§ÀÌ servlet ÀÌ°í  ¾Æ·¡ÀÇ ¿¹Á¦¼Ò½º¸¦ ÄÄÆÄÀÏ  ÈÄ  ÁöÁ¤µÈ ¸®Æ÷ÁöÅ͸®¿¡  ÀÖ´Ù¸é ½ÇÇàÀ»  
À§ÇØ ºê¶ó¿ìÁ®ÀÇ URL â¿¡ ´ÙÀ½Ã³·³ ÀÔ·ÂÇØÁÖ¸é µÇ´Âµ¥ Àڽſ¡°Ô ¸Â°Ô ¹Ù²Ù¾îÁÖ¸é µÈ´Ù. 

<p>http://localhost/servlet/Hello

<p>ȤÀº

<p>http://210.110.144.162/servlet/Hello

<p>ȤÀº

<p>http://nogadax.tit.ac.kr/servlet/Hello

<p>´ÙÀ½Àº "Hello.java" ¶ó´Â Å×½ºÆ®¿ëÀÇ ¼Ò½ºÀÌ´Ù. 

<tscreen><verb>
-------------------------------
import java.io.*;
import javax.servlet.*;
import java.sql.*;
import java.text.*;
import javax.servlet.http.*;

public class Hello extends HttpServlet
{ 
  Connection db;  
  Statement  st;
  PrintWriter out;

  public void doGet (HttpServletRequest request,
                     HttpServletResponse response) 
  throws ServletException, IOException  
  {   
   String title = "Example Apache JServ Servlet";
   response.setContentType("text/html");
   out = response.getWriter();
   out.println("<HTML><HEAD><TITLE>");
   out.println(title);
   out.println("</TITLE></HEAD><BODY bgcolor=\"#FFFFFF\">");
   out.println("<H1>" + title + "</H1>");
   out.println("<H2>Congratulations, Apache JServ is working!</H2>");
   try {
        test();
       } catch(Exception ex){
          out.println("<h2>DB error!</h2>");
         }
   out.println("</BODY></HTML>");
   out.close();
   }

   public void cleanup()
   {  
     try {
         st.executeUpdate("drop table basic");
       } catch(Exception ex) {  }
   }
         
   public void doexample() throws SQLException
   {
     out.println("<br><h2>Running tests:</h2>");
     st.executeUpdate("create table basic (a int2, b int2)");
     st.executeUpdate("insert into basic values (1,1)");
     st.executeUpdate("insert into basic values (2,1)");
     st.executeUpdate("insert into basic values (3,1)");
     st.executeUpdate("update basic set b=8");
     out.println("<h2>Updated "+st.getUpdateCount()+" rows</h2>");
     PreparedStatement ps = db.prepareStatement("insert into
                                               basic values (?,?)");
     for(int i=2;i<5;i++) {
            ps.setInt(1,4);             // "column a" = 5
            ps.setInt(2,i);             // "column b" = i
            ps.executeUpdate(); 
      }
     ps.close();                
     out.println("<h2>performing a query</h2>");
     ResultSet rs = st.executeQuery("select a, b from basic");
     if(rs!=null) {
         while(rs.next()) {
               int a = rs.getInt("a");
               int b = rs.getInt(2); 
               out.println("<h2>  a="+a+" b="+b+"</h2>");
          }
         rs.close(); 
     }
   }

   public void  test()
   throws ClassNotFoundException, FileNotFoundException,
                                 IOException,SQLException
   { 
    String url = "jdbc:postgresql:nogadax";  
    String usr = "postgres";  
    String pwd = "";
    Class.forName("postgresql.Driver");
    db = DriverManager.getConnection(url, usr, pwd);
    out.println("<h2>Connecting to Database URL = " + url +"</h2>");
    out.println("<h2>Connected...Now creating a statement</h2>");
    st = db.createStatement();
    cleanup();    
    doexample();    
    cleanup();
    out.println("<h2>Now closing the connection</h2>");
    st.close();   
    db.close();
   }//end test
 }
</verb></tscreen>

<p><bf>½ÇÇà °á°ú</bf> 

<p>½ÇÇà °á°ú´Â ´ÙÀ½°ú °°´Ù. ¾Æ·¡¿¡¼­ º¸¿©Áö´Â URLÀÌ ´Ù¸¦ ¼ö ÀÖ´Ù. 

<tscreen><verb>
Example Apache JServ Servlet
Congratulations, Apache JServ is working!
Connecting to Database URL = jdbc:postgresql:nogadax
Connected...Now creating a statement

Running tests:

Updated 3 rows
performing a query
a=1 b=8
a=2 b=8
a=3 b=8
a=4 b=2
a=4 b=3
a=4 b=4

Now closing the connection

</verb></tscreen>

<sect>Æ÷½ºÆ®±×·¹½º À¯Àú ¸¸µé±â 

<p>JDBC ·Î ¿¬°áÀ» ÇÒ ¶§ »õ·Î¿î À¯Àú¸í°ú ÆÐ½º¿öµå¸¦ ÁÖ°í ½ÍÀ» ¶§°¡ ÀÖÀ» °ÍÀÌ´Ù. À̸¦ À§ÇØ
Æ÷½ºÆ®±×·¹½ºÀÇ À¯Àú¿Í À¯Àú¿¡ ´ëÇÑ ÆÐ½º¿öµå¸¦ ¸¸µå´Â ¹æ¹ýÀ» °£´ÜÈ÷ ¼Ò°³ ÇϰڴÙ. 

<p>¸ÕÀú Æ÷½ºÆ®±×·¹½ºÀÇ ½´ÆÛ °èÁ¤(DBA)¸¦ "postgres" ¶ó°í °¡Á¤ÇÏÀÚ.

<p>¿©±â¼­´Â µ¥ÀÌÅͺ£À̽ºÀÇ »õ·Î¿î À¯Àú¸¦ »ý¼ºÇÏ°í ±× À¯ÀúÀÇ µ¥ÀÌÅͺ£À̽º¸¦ »ý¼ºÇÒ °ÍÀÌ´Ù. 
¼ø¼­´Â ´ÙÀ½°ú °°´Ù. 

<p><bf>1.</bf> postgres °èÁ¤¿¡ ÆÐ½º¿öµå¸¦ »ý¼ºÇÑ´Ù. À̸¦ À§ÇØ Æ÷½ºÆ®±×·¹½ºÀÇ Æ¯º°ÇÑ µ¥ÀÌÅͺ£À̽ºÀÎ 
"<bf>template1</bf>" ¿¡ Á¢¼ÓÇÑ´Ù.  ÆÐ½º¿öµå¸¦ "123qwe" ¶ó°í °¡Á¤ÇÑ´Ù.

<tscreen><verb>
postgres]$ psql template1
.......
template1=>alter user postgres with password '123qwe';
ALTER USER
template1=>\q
postgres]$ 
</verb></tscreen>

<p><bf>2.</bf> "pg_hba.conf" ÆÄÀÏÀ»  ¼öÁ¤ÇÑ´Ù. ¸¸¾à,  DB ¼­¹ö·Î Á¢¼ÓÇÏ·Á´Â  ÀÚ½ÅÀÇ Host  ÀÇ IP °¡ 
"210.110.144.169" ÀÌ¸é ´ÙÀ½Ã³·³ ¼öÁ¤ÇÑ´Ù. 

<tscreen><verb>
 local  all                                     crypt 
 host   all   127.0.0.1        255.255.255.255  crypt
 host   all   210.110.144.169  255.255.255.255  crypt
</verb></tscreen>

<p>Âü°í·Î host ·Î ½ÃÀÛÇÏ´Â ¶óÀÎÀº DB ¼­¹ö¿¡ Á¢±ÙÇÏ·Á´Â Ŭ¶óÀÌ¾ðÆ®¸¦ Á¦¾îÇÏ·Á ÇÑ´Ù. ±×·¯
¹Ç·Î DB ¼­¹öÀÇ IP ¸¦ ÁÖ´Â °ÍÀÌ ¾Æ´ÔÀ» ÁÖÀÇÇϱ⠹ٶõ´Ù. ¶ÇÇÑ "<bf>crypt</bf>"´Â DB ¼­¹ö·ÎÀÇ Á¢
±Ù Á¦¾î ¸Þ¼ÒµåÀ̹ǷΠ"crypt"¸¦ Àû¿ëÇÑ ÈĺÎÅÍ´Â  DB¼­¹ö·ÎÀÇ Á¢¼ÓÀ» À§ÇØ °èÁ¤°ú ÆÐ½º¿ö
µå°¡ ÇÊ¿äÇÏ´Ù.  

<p><bf>3.</bf> ´Ù½Ã Æ÷½ºÆ®±×·¹½º ½´ÆÛ°èÁ¤À¸·Î "template1" µ¥ÀÌÅͺ£À̽º¿¡ Á¢¼ÓÇÑ ÈÄ »õ·Î¿î µ¥ÀÌÅͺ£
À̽º À¯Àú¸¦ »ý¼ºÇÑ´Ù. »õ·Î »ý¼ºÇÒ À¯Àú¸¦ "nogadax" ¶ó°í °¡Á¤Çϸç ÀÌ À¯Àú¿¡°Ô µ¥ÀÌÅͺ£
À̽º¸¦ »ý¼ºÇÒ ¼ö ÀÖ´Â ±ÇÇÑÀ» ÁÙ °ÍÀ̸ç ÀÌ ¿É¼ÇÀº "<bf>createdb</bf>" ÀÌ´Ù. ±âŸ  "<bf>createuser</bf>" ¶ó
´Â ¿É¼Çµµ Àִµ¥ ÀÌ ¿É¼ÇÀº  ´Ù¸¥ À¯Àú¸¦ »ý¼ºÇÒ ¼ö ÀÖ´Â  ±ÇÇÑÀ» ÁØ´Ù. ¶ÇÇÑ, "template1" 
¿¡ Á¢¼ÓÀ» À§ÇÑ ¿É¼Ç "<bf>-u</bf>"¸¦  ÁÖ¾î¾ß ÇÏ¸ç ¿É¼ÇÀ» ÁØ ÈĺÎÅÍ´Â  °èÁ¤°ú ÆÐ½º¿öµå¸¦ ¹¯´Â´Ù. 
ÀÌ ¿É¼ÇÀ» ÁÖ´Â ÀÌÀ¯´Â pg_hba.conf ¿¡ "crypt" Á¢±Ù Á¦¾î ¸Þ¼Òµå¸¦ ÁÖ¾ú±â ¶§¹®ÀÌ´Ù. 

<tscreen><verb>
postgres]$ psql -u template1
Username : postgres
Password :
.........
template1=> create user nogadax with password 'qwert' createdb ;
CREATE  USER
template1=>\q
postgres]$

</verb></tscreen>

<p><bf>4.</bf> »ý¼ºµÈ nogadax À¯Àú·Î template1 µ¥ÀÌÅͺ£À̽º¿¡ Á¢¼ÓÇÑ µÚ "nogadax"ÀÇ µ¥ÀÌÅͺ£À̽º
¸¦ »ý¼ºÇÏÀÚ. µ¥ÀÌÅͺ£À̽º¸íÀº "test" ¶ó°í °¡Á¤ÇÑ´Ù. 

<tscreen><verb>
postgres]$ psql -u template1
Username : nogadax 
Password :
..............
template1=>create database test;
CREATE DATABASE 
template1=>\q
postgres]$ psql -u test
Username : nogadax 
Password :
................
test=> \q
postgres]$

</verb></tscreen>
</article>


ID
Password
Join
Be careful how you get yourself involved with persons or situations that can't bear inspection.


sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2003-08-10 11:52:30
Processing time 0.0077 sec