PostgreSQLのインストール・設定方法。
対象:Linux Fedora, RedHat
useradd postgres chown postgres:postgres /usr/local/src/postgresql-7.4.6/ mkdir /usr/local/pgsql chown postgres:postgres /usr/local/pgsql vi ~/.bash_profile export PATH="$PATH":/usr/local/pgsql/bin export PG_HOME=/usr/local/pgsql export PGLIB=$PG_HOME/lib export PGDATA=$PG_HOME/data export MANPATH="$MANPATH":$PG_HOME/man export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":"$PGLIB" #Javaを使う場合 export ANT=/usr/local/ant/bin/ant export CLASSPATH=/usr/local/ant/lib/ant.jar \ :/usr/local/jaxp-1.1/jaxp.jar \ :/usr/local/jaxp-1.1/crimson.jar \ :/usr/local/jaxp-1.1/xalan.jar ./configure --enable-multibyte=EUC_JP \ --with-perl \ --with-java make make install initdb vi /usr/local/pgsql/data/postgresql.conf tcpip_socket = true (JDBCなどを使う場合には必要) silent_mode = true ssl = true (ssl通信を行う場合(証明書などが必要)) syslog = 2 # range 0-2 (ログをsyslogに出力する為に必要) syslog_facility = 'LOCAL0' 起動 /usr/local/pgsql/bin/pg_ctl start 停止 /usr/local/pgsql/bin/pg_ctl stop
vi /etc/rc.d/init.d/postgres #!/bin/sh # # postgres - This script is used to start/stop # the postgreSQL listener process. # chkconfig: 345 85 15 # description: Starts and stops the PostgreSQL backend daemon\ # that handles all database requests. # processname: postmaster PGACCOUNT="postgres" PGDATA="/usr/local/pgsql/data" POSTMASTER="/usr/local/pgsql/bin/postmaster" PG_CTL="/usr/local/pgsql/bin/pg_ctl" # Source function library. . /etc/rc.d/init.d/functions # case "$1" in start) echo -n "Starting postgres: " su - $PGACCOUNT -c "$POSTMASTER -i -S -D $PGDATA start" echo touch /var/lock/subsys/postgres ;; stop) echo -n "Stopping postgres: " su - $PGACCOUNT -c "$PG_CTL -w -D $PGDATA -m f stop" echo rm -f /var/lock/subsys/postgres ;; *) echo "Usage: $0 {start|stop}" exit 1 esac exit 0パーミッション変更
postgresを操作できるユーザでアクセス。 su - postgres testdbというデータベースを作成。 createdb testdb testdbにログイン。 psql testdb testtableというテーブルを作成。 create table testtable( id int2, name text); テーブルに値を入れる。 insert into testtable values('1','test1'); insert into testtable values('2','test2'); insert into testtable values('3','test3'); insert into testtable values('4','テスト4'); 入れた値を表示。 select * from testtable; 入れた値を削除。 delete from testtable where id=4;
su - postgres cd /usr/local/src/postgresql-7.4.6/src/interfaces/jdbc/ make cp jars/postgresql.jar $JAVA_HOME/jre/lib/ext cp jars/postgresql.jar $TOMCAT_HOME/common/libpostmasterを起動する際は、
su - postgres ユーザ追加 createuser testuser Shall the new user be allowed to create databases? (y/n) n Shall the new user be allowed to create more new users? (y/n) n ユーザ削除 dropuser testuser
su - postgres createuser nobody grant all on テーブル名またはDB名 to nobody