2015年1月17日土曜日

CentOSにPostgreSQL導入する

LAMPの続き
CentOS6.4にMySQLとは違う別のデータベースPostgreSQLを入れる
MySQLとPostgreSQLの違いは特にわかりません!


PostgreSQLの導入

  1. インストール
  2. ポスグレの公式ページから必要なパッケージ持ってくる http://www.postgresql.org/download/
    CentOSなので、図の赤枠のとこ押下
    英語でしんどいけど「CentOSは普通にyumっても最新バージョンとれないよー。最新の取り方は下の方のコマンド実行してねー
    って書いてるっぽい。。。(自信なし)
    このブログ書いてる時代(2015/01)だとコレ
    $ sudo yum install http://yum.postgresql.org/9.3/redhat/rhel-6-x86_64/pgdg-redhat93-9.3-1.noarch.rpm  # rpmみたいなやつ
    $ sudo yum install postgresql93-server postgresql93-contrib    # インストール
    $ sudo service postgresql-9.3 initdb                           # DBの初期化
    $ sudo chkconfig postgresql-9.3 on                            # 自動起動 ON
    
    ※公式ページには書いてないけど、管理者権限がいるから sudo つけるの忘れずに
  3. 起動させる
  4. $ sudo service postgresql-9.3 start                 # 起動
    $ sudo service postgresql-9.3 status              # 状態確認
    postgresql-9.3 (pid  3155) is running...          # 動いてるっぽい
    
  5. ユーザに操作権限を与える
  6. 基本的にvaigrantユーザで作業を行うのでこいつにDBの操作権限を与える
    ポスグレインストール時に、Linuxにpostgresユーザが追加されるのでパスワードを設定しとく
    $ sudo passwd postgres
    New password: 
    Retype new password:
    
    ちなみに、上のpostgresがPostgreSQLのrootユーザみないなやつなので、設定したパスワードは忘れないように
    このルートユーザ使って作業用ユーザに権限与えてく
    まずrootでログイン
    $ su - postgres
    Password:
    -bash-4.1$ psql
    
    権限付与
    create user vagrant createdb password 'vagrant' login;
    CREATE ROLE
    \du  # 確認:Role nameにvagrantが追加されてれば成功
                                         List of roles
    Role name |                   Attributes                   | Member of
    -----------+------------------------------------------------+-----------
     postgres  | Superuser, Create role, Create DB, Replication | {}
     vagrant   | Create DB                                      | {}
    # ログアウト
    postgres=# \q
    -bash-4.1$ exit
    logout
    
    準備完了!

起動のさせ方

    データベースの作成は対話式でなく、コマンドで実行する模様
    これで「testdb」ってDBが作られる。
    $ createdb testdb
    
    このコマンドで既存のDBリスト表示。
    postgres、template0、template1はデフォルトでいるDBなので、testdbが新たに追加されているのがわかる
    $ psql -l
                                      List of databases
       Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges   
    -----------+----------+----------+-------------+-------------+-----------------------
     postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 
     template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
               |          |          |             |             | postgres=CTc/postgres
     template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
               |          |          |             |             | postgres=CTc/postgres
     testdb    | vagrant  | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 
    (4 rows)
    
    あとは対話式でSQLを書いてく
    $ psql testdb # さっき作ったDBに入る
    psql (9.3.5)
    Type "help" for help.
    testdb=> 
    #  以降、普通にSQLを書く
    
    あと、絶対覚えとかないといけないのが終了させるコマンドね。対話式あるあるw
    testdb=> \q
    

以上!

0 件のコメント:

コメントを投稿