IT”õ–Y˜^

LINUXŠÖ˜A .NETŠÖ˜A DBŠÖ˜A ³‹K•\Œ» ‚»‚Ì‘¼ î•ñ

PostgreSQL‚͈ȉº‚̃TƒCƒg‚Ń_ƒEƒ“ƒ[ƒhB
http://www.postgresql.org/

ƒOƒ‹[ƒv‚ƃ†[ƒU[‚ðì‚è‚Ü‚·B
iƒT[ƒo[OS‚ª FreeBSD ‚ÌꇂÍAuseradd ‚Ì‘ã‚í‚è‚É adduser ‚Æ‚µ‚Ü‚·Bj

# groupadd postgres
# useradd -g postgres -d /usr/local/pgsql postgres
# passwd postgres
ƒCƒ“ƒXƒg[ƒ‹æƒfƒBƒŒƒNƒgƒŠ‚ð쬂µ‚Ü‚·B

# mkdir /usr/local/pgsql
# chown -R postgres:postgres /usr/local/pgsql


# su - postgres
ƒ_ƒEƒ“ƒ[ƒh‚µ‚½tarƒ{[ƒ‹‚ð“WŠJ‚µ‚Ü‚·Bi_‚Í‚ðƒ^ƒCƒv‚µ‚Ü‚·j

$ cd /usr/local/src
$ tar zxvf postgresql-7.4.5.tar.gz
$ cd postgresql-7.4.5
$ ./configure \
--enable-multibyte=EUC_JP \
--prefix=/usr/local/pgsql
¨
$ ./configure \
--enable-mb=EUC_JP \
--prefix=/usr/local/pgsql
ƒRƒ“ƒpƒCƒ‹‚µ‚Ü‚·Bi‚‚¢‚łɃeƒXƒg‚à‚µ‚Ä‚¨‚«‚Ü‚·Bj

$ make all
$ make check
ƒCƒ“ƒXƒg[ƒ‹‚µ‚Ü‚·Bi‚‚¢‚łɃƒO‚ðì‚Á‚Ä‚¨‚«‚Ü‚·Bj

$ make install
$ make install >& install.log
PostgreSQL‚ð‹N“®‚·‚郆[ƒU[ postgres ‚Ì .bash_profile ‚ð•ÒW‚µ‚Ü‚·B

$ vi ~/.bash_profile
export PATH=$PATH:/usr/local/pgsql/bin
export POSTGRES_HOME=/usr/local/pgsql
export PGLIB=$POSTGRES_HOME/lib
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":"$PGLIB"
export MANPATH="$MANPATH":$POSTGRES_HOME/man
export PGDATA=/usr/local/pgsql/data
Ý’è‚𔽉f‚³‚¹‚Ü‚·B

$ source ~/.bash_profile
ƒf[ƒ^ƒx[ƒX‚ð‰Šú‰»‚µ‚Ü‚·B

$ /usr/local/pgsql/bin/initdb -E UTF-8 --no-locale -D /usr/local/pgsql/data
uSuccess. You can now start the database `v‚Æ•\ަ‚³‚ê‚ê‚άŒ÷‚Å‚·B


$ pg_ctl -w start
‚Ü‚½‚Í

$ postmaster -S -i
upostmaster successfully startedv‚Æ•\ަ‚³‚ê‚ê‚άŒ÷‚Å‚·B
Ž„‚͈ȉº‚̃Rƒ}ƒ“ƒh‚Å‹N“®‚µ‚Ä‚¢‚Ü‚·B

$ pg_ctl -o "-S -i" start
’âŽ~‚·‚éꇂ͈ȉº‚̂悤‚É‚µ‚Ü‚·B

$ pg_ctl -w stop

PostgreSQL‚̃T[ƒoƒvƒƒZƒX‚ð’âŽ~‚·‚éÛ‚ÉAƒf[ƒ^ƒx[ƒX‚ÉÚ‘±‚µ‚Ä‚¢‚郆[ƒU[‚ª‚¢‚éꇂÍAã‹L‚̃Rƒ}ƒ“ƒh‚ł͒âŽ~‚Å‚«‚Ü‚¹‚ñB‚±‚ÌꇂÍA-mƒIƒvƒVƒ‡ƒ“‚ðŽg—p‚µ‚Ä’âŽ~•û–@‚ðŽw’肵‚Ü‚·B

$ pg_ctl -m ’âŽ~•û–@ [sbfbi] stop

’âŽ~•û–@‚É‚ÍAsAfAi ‚ðˆø”‚Æ‚µ‚ÄŽw’è‚Å‚«‚Ü‚·B‚»‚ꂼ‚êAsmartAfastAimmediate‚ð•\‚µ‚Ü‚·Bˆø”sismartj‚ÍAV‹K‚ÌÚ‘±‚ð‹‘”Û‚µAŠù‘¶‚ÌÚ‘±‚ªØ’f‚³‚ê‚é‚܂ő҂Á‚Ä‚©‚ç’âŽ~‚µ‚Ü‚·B‘Oq‚Ì-mƒIƒvƒVƒ‡ƒ“‚ðŽw’肵‚È‚¢ê‡‚Í‚±‚Ì•û–@‚Å’âŽ~ˆ—‚ªs‚í‚ê‚Ü‚·B

@‚±‚̂ق©Afifastj‚ÍAŠù‘¶‚ÌÚ‘±‚ð‹­§“I‚ÉØ’f‚µ‚Ä‚©‚ç’âŽ~‚µAiiimmediatej‚ÍA“KØ‚ÈI—¹Žè‡‚𓥂܂¸‚É‚½‚¾‚¿‚É’âŽ~‚µ‚Ü‚·B





‘¼‚̃zƒXƒg‚©‚çÚ‘±‚Å‚«‚邿‚¤‚ÉÝ’è‚ð•ÏX‚µ‚Ü‚·B

$ vi /usr/local/pgsql/data/pg_hba.conf
ˆÈ‰º‚ÍÝ’è—á‚Å‚·B

# ‚·‚ׂĂÌÚ‘±‚ð‹–‰ÂiŠëŒ¯j
host all 0.0.0.0 0.0.0.0 trust
# ƒf[ƒ^ƒx[ƒX–¼database‚Ö‚Ì‚·‚ׂĂÌÚ‘±‚ð‹–‰Â
host database 0.0.0.0 0.0.0.0 trust
# ƒpƒXƒ[ƒh”FØ‚ðs‚È‚¤
host all 0.0.0.0 0.0.0.0 password
# 192.168.0.10‚©‚ç‚ÌÚ‘±‚ð‹–‰Â
host all 192.168.0.10 255.255.255.255 trust




# cd /etc/init.d/
# vi pgsql
ˆÈ‰º“à—e
#!/bin/sh
#
# chkconfig: 35 86 15
# description: PostgreSQL

PGACCOUNT="postgres"
PGDATA="/usr/local/pgsql/data"
PGLOG="/var/log/postgresql.log"
PG_CTL="/usr/local/pgsql/bin/pg_ctl"

. /etc/rc.d/init.d/functions

case "$1" in
start)
echo -n "Starting postgres: "
su - $PGACCOUNT -c "$PG_CTL -D \
$PGDATA -o \"-i\" -l $PGLOG start"
;;
stop)
echo -n "Stopping postgres: "
su - $PGACCOUNT -c "$PG_CTL -D $PGDATA stop"
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac

exit 0


¡ƒ†[ƒU[쬓™
i‚Pjƒ†[ƒU[ì¬
C:>createuser -a -d -U postgres -P ƒ†[ƒU[–¼
Enter password for new role: [쬂·‚郆[ƒU‚̃pƒXƒ[ƒh‚ð“ü—Í]
Enter it again: [쬂·‚郆[ƒU‚̃pƒXƒ[ƒh‚ðÄ“ü—Í]
Password: [postgres(ƒX[ƒp[ƒ†[ƒU)‚̃pƒXƒ[ƒh‚ð“ü—Í]
CREATE ROLE
i‚Qjƒf[ƒ^ƒx[ƒXì¬
C:>createdb -E UTF-8 -T template0 --lc-ctype=ja_JP.utf8 -O userName -U userName ƒf[ƒ^ƒx[ƒX–¼
Password: [-O‚ÅŽw’肵‚½ƒI[ƒi‚̃pƒXƒ[ƒh‚ð“ü—Í]
CREATE DATABASE
i‚Rjƒf[ƒ^ƒx[ƒXƒ_ƒ“ƒvo—Í
:>pg_dump -Fc -b -U userName -f o—̓tƒ@ƒCƒ‹–¼ dbName
Password: [-U‚ÅŽw’肵‚½Ú‘±ƒ†[ƒU‚̃pƒXƒ[ƒh‚ð“ü—Í]


¡ƒRƒ}ƒ“ƒh
œ•\‚̈ꗗ‚Ì•\ަ

psql# \dt

œ•\‚Ì€–ڈꗗ‚Ì•\ަ

psql# \d •\–¼

œƒCƒ“ƒfƒbƒNƒX‚̈ꗗ‚Ì•\ަ

psql# \di •\–¼

œƒ†[ƒUˆê——‚Ì•\ަ

psql# select usename from pg_user;

œƒf[ƒ^ƒx[ƒXˆê——‚ÆAƒf[ƒ^ƒx[ƒX‚Ì•¶ŽšƒR[ƒh‚Ì•\ަ

psql# \l


@ƒŠƒ“ƒN

Apache 2.0‚ÆTomcat 5.0‚̘AŒg
dnotify‚ð—˜—p‚·‚éê‡
SQL‚̃eƒNƒjƒbƒN‚ð‹L
Oracle‚̃eƒNƒjƒbƒN‚ð‹L
VARCHAR2‚ðNUMBER‚ɕϊ·‚·‚éÛAŒ…”‚Å“{‚ç‚ê‚邯‚«‚ÉŒ…”‚𖳎‹‚·‚éfunction
trac‚Ìݒ胃‚
inotify‚ð—˜—p‚·‚éê‡
ŠÄŽ‹ƒT[ƒo[‚ÌÝ’
SSLƒL[ì
ŠÄŽ‹ƒT[ƒo[‚ÌÝ’
[IT”õ–Y˜^]‚̃TƒCƒg“à‚É‚ ‚镶̳͂Šm«‚ɂ‚¢‚Ă͈êØÓ”C‚ðŽ‚¿‚Ü‚¹‚ñB
ŽÀŠJ”­‚ÌÛ‚É‚ÍA‹Zp“I“à—e‚Í\•ªŠm”F‚µ‚½ã‚Åì‹Æ‚µ‚Ä‚­‚¾‚³‚¢B

(C) 2010 IT”õ–Y˜^ All rights reserved.