Ubuntuでpostgresqlをインストールからリモートアクセスまでの Hand

Source: Internet
Author: User
Tags psql

Postgresqlサーバの Li accentuate on げに less しハマりましたので, メモしておきます.

os:ubuntu14.04 LTS

インストール

Initially はpostgresqlをインストールします.
Ordinary occupies apt-get コマンドを make えばインストールできますので, special pen すべきことはありません.

$ sudo apt-get update$ sudo apt-get install-y postgresql-9.3

  

インストールが out ましたら, /etc/init.d/ occupies start with のスクリプトが make されるはずです.
startコマンドでサーバを accentuate on げられますが, このままでは connect Yobitsugi できません.

$/etc/init.d/postgresql Start * Starting PostgreSQL 9.3 database server                 [OK]$/etc/init.d/postgresql Status9.3/main (Port 5432): online$ psqlpsql:fatal:  role "root" does not exist

  

ここではスーパユーザのrootでdbに Connect Yobitsugi していますので, ロールrootは exist しませんと anger られました.

ロールの Setting

Postgresqlは Copyright Limited Management にロール (role) が make われています.
ロールはunixのgroupに like ていて, a 々のdbに 's really into するアクセスまたは on きの Copyright Limited が set されています.

そのロールを made into するには two-way りのやり square があります.

ひとつはユーザpostgresでpostgresqlにログインして, ロールを setting slew えます.

Moo a つはシェルで createuser のコマンドを make います.
このコマンドはpostgresqlのインストールと at the same time occupies set されたもので, the createuser name しただけで name がnameのロールが into されます.

ここでは a つ method だけを Ming したいと think います.

Originally のインストールが out たら, postgresというユーザかつ the same name のロールが as られます.
デフォルトでは, postgresのロールはpostgresqlにとってのスーパユーザであり, ロール set the Slew ふれ合える copyright limit ちます.

では, postgresアカウントに cut moistened for えて, postgresqlサーバにログインします.

$ su-postgres$ psqlpsql (9.3.5) Type ' help ' for help.postgres=#

  

ユーザ name とdb and えずにそのまま psql コマンドを make えば, オペレーティングシステムのユーザと the same name のユーザとdbが make われます. ですので psql のコマンドは psql --username=postgres --dbname=postgres と with waists means ちます. そしてrootと against ってpostgresというロールはありますので, this は ログインできました.

This のログインした state で SELECT rolname FROM pg_roles; または \du コマンドで, save のロールを see ることができます.
デフォルトでは He のロールが existence しませんので, the only のロールはスーパユーザのpostgresだけです.

postgres=# \du                             List of roles Role name |                   Attributes                   | Member of-----------+------------------------------------------------+-----------Postgres  | Superuser, create role, create DB, Replication | {}

  

He のロールを as らず, スーパユーザのpostgresでdbを for moistened, and することは very likely ですが, ただスーパーユーザでログインすることはセキュリティ good にあまり, やはりスーパーユーザ outside のロールを make ったほうが ho かと convenient ですので.

The new しくロールを るには CREATE ROLE name; または CREATE USER name; のコマンドを make えば into されます.
Make したあとでもロールの attribute slew more することはできますが, make time occupies the following のキーワードを make うことで attribute to pay plus することができます.

    • LOGIN
    • SUPERUSER
    • Createdb
    • Createrole
    • REPLICATION
    • PASSWORD

The attributes are detailed しい stating はここにあります.
Https://www.postgresql.jp/document/9.3/html/role-attributes.html

The hand begins めにhellopsqlという name のロールを makes 前転して開脚座り, the LOGIN CREATEDB PASSWORD attribute is added します.

postgres=# CREATE ROLE hellopsql LOGIN createdb PASSWORD ' Hello '; CREATE rolepostgres=# \du                             List of roles Role name |                   Attributes                   | Member of-----------+------------------------------------------------+-----------Hellopsql | Create DB                                      | {} Postgres  | Superuser, create role, create DB, Replication | {}

  

これで がhellopsqlでパスワードがhelloのロールが made into されました before the name.

Early speed Hellopsqlのロールでログインしたいのですが, まだこのロールでアクセスできるdbが make られていませんので, the second はdbの make occupies into りたいと think います.

Dbの made into

Dbの made into にも two-way りのやりかたがあります.

ひとつはpostgresqlのシェルで CREATE DATABASE のコマンドを make えば into できます.

Moo つはインストールと at the same time occupies set されたシェルコマンドの to createdb make ってdbを into します.

また, make したdbを confirm したい はpostgresqlのシェルで SELECT datname FROM pg_database; または コマンドを \l make えば confirm することができます.

postgres=# CREATE DATABASE hellopsql OWNER hellopsql; CREATE databasepostgres=# \l                              List of Databases   Name    |   Owner   | Encoding  | Collate | Ctype |   Access privileges   -----------+-----------+-----------+---------+-------+-----------------------Hellopsql | Hellopsql | Sql_ascii | C       | C     |  Postgres  | Postgres  | Sql_ascii | C       | C     |  Template0 | Postgres  | Sql_ascii | C       | C     | =c/postgres + | | | | |       postgres=ctc/postgres template1 | postgres  | Sql_ascii | C       | C     | =c/postgres + | | | | |       postgres=ctc/postgres (4 rows)

  

これでロールとdbの Ready が whole えました.
あとで psql --username=hellopsql --password --dbname=hellopsql のコマンドを into force しただけで Yobitsugi できるはずです.

もし under the のようにpeerなんとかのエラーが out てきましたら, moo a hand and えてクライアント recognized the proof of the slew ふれ合える necessary があります.

$ psql--username=hellopsql--password--dbname=hellopsql             password for user hellopsql:psql:FATAL:  Peer Authentication failed for user "Hellopsql"

  

クライアント

これはiptablesのようなものです. どのipからどのユーザからの Connect Yobitsugi すか, what the way to recognize the method to make うかなど 様 々な set ができます.

デフォルトの set では, ローカルからの Yobitsugi mode は になっていますので, ログインに ったユーザ name が this クライアントのオペレーティングシステムにおけるユーザ と ident the same でなければなりません.
つまりhellopsqlで Connect Yobitsugi したいのなら, オペレーティングシステムにhellopsqlというユーザを for にっては, そのユーザで to Yobitsugi しなければなりません.

このデフォルト set のままだといろいろ inconvenience ですので, once the/etc/postgresql/9.3/main/ph_hba.confの set slew more したいと think います.

Detailed しい stating しますが omitted, detailed しく know りたい square は under のサイトを reference してください.
Https://www.postgresql.jp/document/9.3/html/auth-pg-hba-conf.html
http://qa.atmarkit.co.jp/q/2604

$ vi/etc/postgresql/9.3/main/ph_hba.conf

  

ちなみに private ファイルはこんな Sense じです.

/etc/postgresql/9.3/main/ph_hba.conf# TYPE  DATABASE        USER            ADDRESS                 method# ローカルから and つスーパーユーザの connect Yobitsugi はpeer to make いますlocal all             postgres                                peer#ローカルから and つスーパーユーザ the Yobitsugi not conditional で pass   すlocal All             all                                     trust# IPv4 local connections:host    all             127.0.0.1/32            md5# IPv6 Local connections : Host    all             :: 1/128                 md5#リモートから and つスーパーユーザの yobitsugi        しますhost all Postgres 0.0.0.0 /0               reject# TCP connections by Md5host    all             0.0.0.0/0               MD5

  

Set the Slew more したら /etc/init.d/postgresql restart でサーバを again しましょう.

$/etc/init.d/postgresql Restart * Restarting PostgreSQL 9.3 database server                             [OK]

  

リモートからの Connect Yobitsugi

デフォルトの set ではリモート Yobitsugi はできません.
リモートで したい は/etc/postgresql/9.3/main/postgresql.confの Setting ファイルを slew able necessary があります.

$ vi/etc/postgresql/9.3/main/postgresql.conf

listen_addressesの Linked Fields 前転して開脚座り, それを under developed Slew えましょう.

/etc/postgresql/9.3/main/postgresql.conf
Listen_addresses= ' * '

Set the Slew more したら /etc/init.d/postgresql restart で again します.

$/etc/init.d/postgresql Restart * Restarting PostgreSQL 9.3 database server                             [OK]

  

Ubuntuでpostgresqlをインストールからリモートアクセスまでの Manual

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.