PerlさんPerlくん
[PgSQL]PostgreSQLインストール
最終更新:
atwikimyj
-
view
■PostgreSQLインストール
参考にしたサイト↓
postgresql.org
http://www.postgresql.org/download/
http://www.postgresql.org/download/
環境
CentOS4.5 (RH4.5のフリー版ね)
※VMserver上で起動しております。
CentOS4.5 (RH4.5のフリー版ね)
※VMserver上で起動しております。
(1)ディレクトリの作成
/usr/local/postgresql
(2)ユーザの作成
username: postgresql ,pwd : password
(3)postgreSQLのダウンロード
※ftpやる前に、、ftpでgetしたデータは
現在のカレントディレクトリに保存されます。
なので先に保存したいディレクトリに移動してから
ftpやったほうが面倒がなくて良い。
現在のカレントディレクトリに保存されます。
なので先に保存したいディレクトリに移動してから
ftpやったほうが面倒がなくて良い。
# ftp ftp.postgresql.org
ftp> name:
ここでanonymousでログイン
ftp> password:
ここで何も入力せずエンター
ftp> name:
ここでanonymousでログイン
ftp> password:
ここで何も入力せずエンター
下記にファイルはあるのでcdコマンドで移動
ftp://ftp.postgresql.org/pub/v8.2.5/postgresql-8.2.5.tar.gz
ftp://ftp.postgresql.org/pub/v8.2.5/postgresql-8.2.5.tar.gz
ftp>get postgresql-8.2.5.tar.gz
これでダウンロード完了
(4)解凍
# cd /usr/local/src
# tar txvz postgresql-8.2.5
# cd /usr/local/src
# tar txvz postgresql-8.2.5
(5)インストール
# cd postgresql-8.2.5
# ./configure
珍しくエラーなし。
# gmake
# gmake install
(6)環境変数の編集
/etc/profile をEMACSで編集。下記を追加
※このファイルはbashにて操作する場合の
初期設定ファイル(シェルスクリプトで記述)
※このファイルはbashにて操作する場合の
初期設定ファイル(シェルスクリプトで記述)
LD_LIBRARY_PATH・・bash起動時にライブラリを見に行く
パスを指定。pgsqlのライブラリをこれで使うことができる
パスを指定。pgsqlのライブラリをこれで使うことができる
PATH ・・bashでのコマンド入力時にはPATH内に定義された
実行ファイルを探し、あったらそれを実行する。なので
ソフトをインストールした際にはPATHを追加してやらんと
いかん。
実行ファイルを探し、あったらそれを実行する。なので
ソフトをインストールした際にはPATHを追加してやらんと
いかん。
*************************************
LD_LIBRARY_PATH=/usr/local/pgsql/lib
export LD_LIBRARY_PATH
PATH=/usr/local/pgsql/bin:$PATH
export PATH
MANPATH=/usr/local/pgsql/man:$MANPATH
export MANPATH
export LD_LIBRARY_PATH
PATH=/usr/local/pgsql/bin:$PATH
export PATH
MANPATH=/usr/local/pgsql/man:$MANPATH
export MANPATH
*************************************
一応ログオフ、ログインしなおす。
(7)DBの初期化(クラスタの作成)
何をしているかというと、pgSQLが使うデータの
保存先ディレクトリを指定して、そこにクラスタを
設定します。
単純に保存先の設定ではなくて、その保存先にはいろんな
pgSQL独自のデータがないといけないのでそのデータの
作成もします。
保存先ディレクトリを指定して、そこにクラスタを
設定します。
単純に保存先の設定ではなくて、その保存先にはいろんな
pgSQL独自のデータがないといけないのでそのデータの
作成もします。
initdb というコマンドを使う。
*************************************
$ su - postgres
initdb -D /usr/local/pgsql/data
initdb -D /usr/local/pgsql/data
*************************************
※initdb --helpでいろいろとコマンドが確認できる。
initdb -D (path)
initdb --pgdata=(path)
上記は同じ意味。
initdb -D (path)
initdb --pgdata=(path)
上記は同じ意味。
(8)pgSQLの起動と状態確認
pg_ctl start pgSQLを起動します。
pg_ctl status pgSQLの現在の状態を確認します。
pg_ctl status pgSQLの現在の状態を確認します。
(9)pgSQLの自動起動
サーバマシンが起動する時に自動的にPostgreSQLが
起動するようにします。Linux用に提供されている
設定ファイルを使います。
起動するようにします。Linux用に提供されている
設定ファイルを使います。
/etc/rc.d/init.d/
内のスクリプトはOS起動時に自動的に読み込まれ、実行
されます。なのでこのディレクトリにpgSQL自動実行
スクリプトを保存します。
postgres
という名前のファイルをコピーします。
(なのでpostgresという文字列をbashでコマンドとして
打つと、pgSQL起動スクリプトを実行しようとします。
通常、OS起動している状態であればすでに起動している
ので起動中のpgSQLのプロセスIDが表示され、すでに
起動してるよ!と怒られます)
ファイルのオーナーをpostgresにします。なぜならこの
ユーザでないとpgSQLが起動できないからです。
あとランレベルも下記のように設定します(わからんけど)
内のスクリプトはOS起動時に自動的に読み込まれ、実行
されます。なのでこのディレクトリにpgSQL自動実行
スクリプトを保存します。
postgres
という名前のファイルをコピーします。
(なのでpostgresという文字列をbashでコマンドとして
打つと、pgSQL起動スクリプトを実行しようとします。
通常、OS起動している状態であればすでに起動している
ので起動中のpgSQLのプロセスIDが表示され、すでに
起動してるよ!と怒られます)
ファイルのオーナーをpostgresにします。なぜならこの
ユーザでないとpgSQLが起動できないからです。
あとランレベルも下記のように設定します(わからんけど)
*************************************
# cd /etc/rc.d/init.d/ # cp -p /usr/local/src/postgresql-8.2.5/contrib/start-scripts/linux postgres # chown root.root postgres # chmod 755 postgres # chkconfig --level 2345 postgres on
*************************************
(10)pgSQLでのデータベース操作
psql -d (dbname) データベースとの接続(この後コマンドで
データベースを操作します。
psql -l 現在のデータベースのリストが表示されます。
(11)pgSQL起動後の操作
mydb=# \dt mydb内のテーブル一覧が出ます。
mydb=# \df mydb内のファンクション一覧が出ます。
mydb=# \dt mydb内のテーブル一覧が出ます。
mydb=# \df mydb内のファンクション一覧が出ます。
とりあえずこれでOKとおもわれ。