PostgreSQL初期設定 in EC2
以下を参考にさせていただきました。
http://dev.classmethod.jp/cloud/aws/install-postgresql-on-aws-ec2/
手順
PostgreSQLをインストールします。
$ sudo yum update -y $ sudo yum install -y libxslt.i686 $ sudo yum install -y postgresql postgresql-server postgresql-devel postgresql-contrib postgresql-docs
バージョンを確認
$ psql --version
PostgreSQLのdataを初期化します。これは、PostgreSQLを使う上で一番最初に叩く必要があります。
$ sudo /sbin/service postgresql initdb
起動・停止・再起動は以下のようにします。
$ sudo /sbin/service postgresql start $ sudo /sbin/service postgresql stop $ sudo /sbin/service postgresql restart
chkconfigをonにしておきます。
$ sudo /sbin/chkconfig --list | grep postgresql postgresql 0:off 1:off 2:off 3:off 4:off 5:off 6:off $ sudo /sbin/chkconfig postgresql on $ sudo /sbin/chkconfig --list | grep postgresql postgresql 0:off 1:off 2:on 3:on 4:on 5:on 6:off
initdbやったら勝手に作成されるpostgresユーザのパスワードを設定してログインしてみます。PostgreSQLでは、このpostgresユーザがマスターユーザ的な扱いになるようです。
$ sudo passwd postgres $ su - postgres
postgresユーザのまま、今度はPostgreSQLの設定ファイルをいじっていきます。
$ vi /var/lib/pgsql9/data/postgresql.conf
まずはpostgresql.conf
のlisten_addresses
を*
にします。
listen_addresses = '*' # what IP address(es) to listen on;
今度はpg_hba.conf
をいじっておきます。以下をファイルの最後に追記します。
$ vi /var/lib/pgsql9/data/pg_hba.conf ## ファイル内有効行全コメント→末尾に追加 local all all trust host all all 0.0.0.0/0 md5
ユーザ設定
では今度は実際のアプリケーションで使うユーザの作成・設定をしていきます。
実行ユーザはpostgresで。
$ su - postgres
以下のようにしてユーザを作成できます。
$ createuser -AdPE testuser
そしたら以下のようにしてそのユーザが使うデータベースを作成します。
$ createdb -E UTF8 -U testuser -W testdb
次に、exitしてLinux側でもユーザを作成しておきます。PostgreSQLは基本的にLinuxユーザとDBのユーザが一致するようになっています。
$ sudo adduser testuser $ sudo passwd testuser
確認・使い方
ここまでで初期設定は終了です。確認してみます。
ログインします。
$ su - testuser
以下で、データベースの一覧を表示できます。
$ psql -l
データベースへの接続。SQLを叩けるプロンプトに入ります。
$ psql -d database_name