2013年08月01日
【OSS-DB試験対策】Silver PostgreSQLインストールしちゃいますか
さて、LPICも全制覇しましたし、違う資格の勉強しましょう。
Xenの構築、ホームページの作成、LPICレベル3の技術解説などの
課題を背負いながら、OSS-DBを受験しようと思います。
目標は長めにとって、今月末くらいまでですかね。
SQL自体は勉強が初めてではありません。
PostgreSQLを一度ソースインストールし、下記の本を一冊読んでます。
どれだけ翔泳社好きなんだと・・・
この本は、OSS-DBのPostgreSQL以外のSQL言語でも使える本で、
言語ごとに特殊な記述が必要なときには、別で解説してくれます。
とーっても読みやすいです。
今の仕事に就く前は、Oracleを組み込んだソフトウェアを保守してましたが、
俺はSQL覚えられない。と思い込んだほど、SQL嫌いでしたが、すんなり読めました。
でも、相関サブクエリの概念がいまいち飲み込めないんだよな・・・
さて、雑談はさておきまして、CentOS6.3にPostgreSQLをインストールしていきます。
PostgreSQL自体は、ソースインストールしますが、
その他必要ファイルはyumでインストールしてしまいます。
インストール&設定には、たびたびroot権が必要になるため、
suしてからvisudoコマンドで作業アカウントに対してsudoの権限を与えておく。
%user ALL=(ALL) ALL
↑作業者のアカウント
postgresql 9.2.4
readline-devel 6.0.4
zlib-devel 1.2.3
gcc 4.4.7
↑これがないと、configure: error: no acceptable C compiler found in $PATH
解凍して、作業ディレクトリへ
Postgresのインストールディレクトリを作成
(インストール先は任意)
configureにてmakeファイルを生成 --prefixにてインストール先を指定
(インストール先は任意)
ソースファイルのコンパイル。
成功すると「All of PostgreSQL successfully made. Ready to install.」
make
root権を持ってインストール。root権が無いとエラーになります
成功すると「PostgreSQL installation complete.」
現状、データベースの権限はrootにある事を確認。
drw-r--r--. 6 root root 4096 7月 31 02:26 2013 .
drwxr-xr-x. 13 root root 4096 7月 31 02:13 2013 ..
drwxr-xr-x. 2 root root 4096 7月 31 02:26 2013 bin
drwxr-xr-x. 6 root root 4096 7月 31 02:26 2013 include
drwxr-xr-x. 3 root root 4096 7月 31 02:26 2013 lib
drwxr-xr-x. 6 root root 4096 7月 31 02:26 2013 share
データベース管理用のユーザーを作成(ユーザー名は任意)
/usr/local/pgsql配下のファイルのオーナー権をdbaに変更
dbaにもsudoの権限を与えておく
%dba ALL=(ALL) ALL
dbaユーザにスイッチしてから、ホームディレクトリへ移動
.bashrcにてPATHにPostgreSQLの実行コマンドのディレクトリを登録しておく
(次回ログイン時に有効)
# User specific aliases and functions
export PATH=$PATH:/usr/local/pgsql/bin
export MANPATH=$MANPATH:/usr/local/pgsql/man
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/pgsql/lib
export PGDATA=/usr/local/pgsql/data
一度suしてdbaにて入り直すとPATHが通ったことが確認できる
/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/hiroki/bin:/usr/local/pgsql
データベース格納領域の初期化、オプションとして、文字コードを指定し、
ロケール(言語などによる処理)を無効化しています。
initdbコマンドを実行したユーザーがPostgreSQLのスーパーユーザーとして認識されます。
成功するとSuccess. You can now start the database server usingの文字列が返ってきます
PostgresSQLのプロセスを起動させます
成功すると、server startedの文字列が返ってきます
もし、操作が終わりプロセスを停止する場合は、
プロセスを終了します。
「psql データベース名 ユーザー名」で接続します。
初めからあるデータベースは、「postgres」です。
[dba@localhost ~]$ psql postgres dba
psql (9.2.4)
Type "help" for help.
データベースから抜けるときはメタコマンドの「\q」コマンドで抜けます
データベースに接続した状態であれば、新たなデータベースを作成できます
CREATE DATABASE
次回ログイン時にtest1を指定して起動すれば、test1にテーブルを作成したりできます。
ここまでです。簡潔に細やかに記載しました。
2度目のインストールなので、ざっと1時間くらいですかね。
PostgreSQLは、結構すんなりソースインストールできる方だと思います。
initdbのあたりがちょっと特殊ですかね。
次回からはコマンドなどのお勉強。しばらくSQL続きます。
Xenの構築、ホームページの作成、LPICレベル3の技術解説などの
課題を背負いながら、OSS-DBを受験しようと思います。
目標は長めにとって、今月末くらいまでですかね。
SQL自体は勉強が初めてではありません。
PostgreSQLを一度ソースインストールし、下記の本を一冊読んでます。
CD付 SQL ゼロからはじめるデータベース操作 (プログラミング学習シリーズ) 新品価格 |
どれだけ翔泳社好きなんだと・・・
この本は、OSS-DBのPostgreSQL以外のSQL言語でも使える本で、
言語ごとに特殊な記述が必要なときには、別で解説してくれます。
とーっても読みやすいです。
今の仕事に就く前は、Oracleを組み込んだソフトウェアを保守してましたが、
俺はSQL覚えられない。と思い込んだほど、SQL嫌いでしたが、すんなり読めました。
でも、相関サブクエリの概念がいまいち飲み込めないんだよな・・・
さて、雑談はさておきまして、CentOS6.3にPostgreSQLをインストールしていきます。
PostgreSQL自体は、ソースインストールしますが、
その他必要ファイルはyumでインストールしてしまいます。
作業前に
インストール&設定には、たびたびroot権が必要になるため、
suしてからvisudoコマンドで作業アカウントに対してsudoの権限を与えておく。
su
visudo
visudo
%user ALL=(ALL) ALL
↑作業者のアカウント
必要なファイルを用意
postgresql 9.2.4
wget http://ftp.postgresql.org/pub/source/v9.2.4/postgresql-9.2.4.tar.bz2
readline-devel 6.0.4
yum -y readline-devel
zlib-devel 1.2.3
yum -y zlib-devel
gcc 4.4.7
yum -y gcc
↑これがないと、configure: error: no acceptable C compiler found in $PATH
解凍&インストール
解凍して、作業ディレクトリへ
tar jxvf postgresql-9.2.4.tar.bz
cd postgresql-9.2.4
cd postgresql-9.2.4
Postgresのインストールディレクトリを作成
(インストール先は任意)
sudo mkdir -m 775 /usr/local/pgsql
configureにてmakeファイルを生成 --prefixにてインストール先を指定
(インストール先は任意)
./configure --prefix=/usr/local/pgsql
ソースファイルのコンパイル。
成功すると「All of PostgreSQL successfully made. Ready to install.」
make
root権を持ってインストール。root権が無いとエラーになります
成功すると「PostgreSQL installation complete.」
sudo make install
ユーザー作成 & 所有権変更
現状、データベースの権限はrootにある事を確認。
sudo ls -la /usr/local/pgsql/
drw-r--r--. 6 root root 4096 7月 31 02:26 2013 .
drwxr-xr-x. 13 root root 4096 7月 31 02:13 2013 ..
drwxr-xr-x. 2 root root 4096 7月 31 02:26 2013 bin
drwxr-xr-x. 6 root root 4096 7月 31 02:26 2013 include
drwxr-xr-x. 3 root root 4096 7月 31 02:26 2013 lib
drwxr-xr-x. 6 root root 4096 7月 31 02:26 2013 share
データベース管理用のユーザーを作成(ユーザー名は任意)
sudo useradd dba
sudo passwd dba
sudo passwd dba
/usr/local/pgsql配下のファイルのオーナー権をdbaに変更
sudo chown -R dba /usr/local/pgsql/
sudo chgrp -R dba /usr/local/pgsql
sudo chgrp -R dba /usr/local/pgsql
dbaにもsudoの権限を与えておく
su
visudo
visudo
%dba ALL=(ALL) ALL
PostgreSQLの起動
dbaユーザにスイッチしてから、ホームディレクトリへ移動
su dba
cd ~
cd ~
.bashrcにてPATHにPostgreSQLの実行コマンドのディレクトリを登録しておく
(次回ログイン時に有効)
vi .bashrc
# User specific aliases and functions
export PATH=$PATH:/usr/local/pgsql/bin
export MANPATH=$MANPATH:/usr/local/pgsql/man
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/pgsql/lib
export PGDATA=/usr/local/pgsql/data
一度suしてdbaにて入り直すとPATHが通ったことが確認できる
echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/hiroki/bin:/usr/local/pgsql
データベース格納領域の初期化、オプションとして、文字コードを指定し、
ロケール(言語などによる処理)を無効化しています。
initdbコマンドを実行したユーザーがPostgreSQLのスーパーユーザーとして認識されます。
成功するとSuccess. You can now start the database server usingの文字列が返ってきます
initdb --encoding=UTF8 --no-locale
PostgresSQLのプロセスを起動させます
成功すると、server startedの文字列が返ってきます
pg_ctl -w start
もし、操作が終わりプロセスを停止する場合は、
pg_ctl stop
プロセスを終了します。
データベースに接続
「psql データベース名 ユーザー名」で接続します。
初めからあるデータベースは、「postgres」です。
psql postgres dba
[dba@localhost ~]$ psql postgres dba
psql (9.2.4)
Type "help" for help.
データベースから抜けるときはメタコマンドの「\q」コマンドで抜けます
\q
データベースに接続した状態であれば、新たなデータベースを作成できます
CREATE DATABASE test1;
CREATE DATABASE
次回ログイン時にtest1を指定して起動すれば、test1にテーブルを作成したりできます。
ここまでです。簡潔に細やかに記載しました。
2度目のインストールなので、ざっと1時間くらいですかね。
PostgreSQLは、結構すんなりソースインストールできる方だと思います。
initdbのあたりがちょっと特殊ですかね。
次回からはコマンドなどのお勉強。しばらくSQL続きます。