はじめに

PostgreSQLは、柔軟なBSDスタイルのライセンスの下で提供される強力なオブジェクトリレーショナルデータベース管理システムです。 PostgreSQLには多くの高度な機能が含まれ、非常に高速で標準に準拠しています。

PostgreSQLには、C、C++、Python、Java、PHP、Rubyなどの多くのプログラミング言語のバインディングがあります。.. これは、単純なwebアプリケーションから何百万ものレコードを持つ大規模なデータベースに何かを,

クライアントのインストール

外部PostgreSQLサーバにのみ接続する場合は、メインのPostgreSQLパッケージをインストールせず、代わりにPostgreSQLクライアントパッケージをインストールしてください。 これを行うには、次のコマンドを使用します。

 sudo apt-get install postgresql-client

次のコマンドでサーバーに接続します。

 psql -h server.domain.org database user

パスワードを挿入した後、行コマンドでPostgreSQLにアクセスします。, たとえば、次のように挿入することができます

 SELECT * FROM table WHERE 1;

接続を終了します

 \q

インストール

サーバーをローカルにインストールするには、コマンドラインを使用して次のように入力します。

 sudo apt-get install postgresql postgresql-contrib

これにより、Ubuntuリリースで利用可能な最新バージョンと一般的に使用されるアドオンがインストールされます。—–

“の外部リンク”を以下より取得するためのオプション新しいリリースなどで行っています。,

PostGIS、手続き型言語、クライアントインターフェイスなどのインストール

追加のパッケージには、手続き型言語ランタイム、PostGISのようなアドオン、python用psycopg2のような言語クライアントインターフェイスなどが含まれています。 あなたはリストを取得することができます:

 apt-cache search postgres

管理

pgAdmin IIIはPostgreSQLのための便利なGUIです、それは初心者に不可欠です。 インストールするには、コマンドラインで次のように入力します。

 sudo apt-get install pgadmin3

システムからSynapticパッケージマネージャを使用することもできます>これらのパッケージをインストールするには、管理メニューを使用します。,

基本的なサーバー設定

開始するには、”postgres”と呼ばれるPostgreSQLユーザー(ロール)のパスワードを設定する必要があります。 ローカルの”postgres”Linuxユーザーとして、psqlコマンドを使用してサーバーに接続して操作することができます。

ターミナルでは、次のように入力します。

sudo -u postgres psql postgres

これは、ローカルユーザーと同じ名前のロール、つまり”postgres”という名前のデータベースに”postgres”(psqlの第1引数)という名前のロールとして接続します。,

コマンドを使用して”postgres”データベースロールのパスワードを設定します。

\password postgres

プロンプトが表示されたら、パスワードを指定します。 パスワードのテキストを非表示にすることができますから、コンソールのセキュリティのため、.

Posgresqlプロンプトを終了するには、Control+Dまたは\qと入力します。

Create database

“mydb”と呼ぶ最初のデータベースを作成するには、次のように入力します。

 sudo -u postgres createdb mydb

Postgresql8.4または9.3のサーバインストール(PgAdmin用)

PgAdminには、完全な機能のためにアドオンをインストールする必要があります。, それはサーバーインストルメンテーションを呼び出す”adminpack”アドオンは、postgresql-contribの一部であるので、あなたがまだ持っていない場合は、そのパッケージをインストールする必要があります。

 sudo apt-get install postgresql-contrib

その後、拡張機能を有効にするには、”Postgresql8.4″のために、adminpackを実行してください。sqlスクリプトは、単純に入力します。

 sudo -u postgres psql < /usr/share/postgresql/8.4/contrib/adminpack.sql

“Postgresql9.3″の場合+”postgres”データベースにadminpack”extension”をインストールします。

 sudo -u postgres psql CREATE EXTENSION adminpack;

代替サーバーセットアップ

他のマシンからデータベースに接続するつもりがない場合、この代替セットアップはより簡単かもしれません。, Ubuntuのデフォルトでは、Postgresqlは同じマシンからのすべての接続に対して’ident sameuser’認証を使用するように設定されています。 詳細については、優れたPostgresqlのドキュメントをチェックしてくださいが、本質的にこれは、Ubuntuのユーザー名が’foo’であり、Postgresqlユーザーとして’foo’を追加すると、パスワードを,

新規インストールに接続できる唯一のユーザーはpostgresユーザーなので、ログイン名と同じ名前のデータベースアカウント(この場合はデータベーススーパーユーザー)を作成し、ユーザーのパスワードを作成する方法は次のとおりです。

 sudo -u postgres createuser --superuser $USER sudo -u postgres psql
 postgres=# \password $USER

クライアントプログラムは、デフォルトでは、Ubuntuログイン名を使用してローカルホストに接続し、ローカルホストを見つけることを期待します。その名前のデータベースも。, したがって、物事を本当に簡単にするには、上記で付与された新しいスーパーユーザー権限を使用して、ログイン名と同じ名前のデータベースを作成します。

 sudo -u postgres createdb $USER

独自のデータベースに接続してSQLを試すのは簡単です。

 psql

追加のデータベースを作成するのは簡単なので、例えば、これを実行した後です。

 create database amarokdb;

あなたはすぐ先に行くと、その音楽カタログを保存するためにpostgresqlを使用するようにamarokに指示することができます。, データベース名はamarokdb、ユーザー名はあなた自身のログイン名になり、’ident sameuser’のおかげでパスワードは必要ありませんので、空白のままにすることができます。

pgAdmin III GUIを使用して

PostgreSQLが何ができるかを知るには、グラフィカルクライアントを起動することから始めることができます。 ターミナルタイプでは:

 pgadmin3

pgAdmin IIIインターフェイスが表示されます。 “サーバーへの接続を追加”ボタン(左上)をクリックします。 新しいダイアログで、アドレス127.0.0.1を入力します(ローカルホストはデフォルトなので、省略できます。,サーバーの説明、デフォルトのデータベース(上記の例では”mydb”)、ユーザー名(”postgres”)、およびパスワード。 PgAdmin IIIがサーバーに接続できるようにするには、pg_hbaを編集するためのもう一つのステップが必要です。認証方法をpeerからmd5に変更します(パスワードを設定していない場合は機能しません)。

sudo nano /etc/postgresql/9.3/main/pg_hba.conf

行を変更します。

# Database administrative login by Unix domain socketlocal all postgres peer

# Database administrative login by Unix domain socketlocal all postgres md5

これで、サーバー設定の変更をリロードし、pgAdmin IIIをPostgreSQLデータベースサーバーに接続する必要があります。,

sudo /etc/init.d/postgresql reload

このGUIを使用すると、データベースの作成と管理、データベースのクエリ、SQlの実行などを開始できます。

サーバーの管理

PostgreSQLの管理についての詳細については、公式のPostgreSQLドキュメントを参照してください

ユーザーと権限の管理

ユーザー管理については、PostgreSQLドキュメントのクライアント認証の章で詳細に説明されています。 ユーザーを管理するには、まず/etc/postgresql/current/main/pg_hbaを編集する必要があります。,confと非常にロックダウンされ、安全であるデフォルトの設定を変更します。 たとえば、postgresに独自のユーザー(システムユーザーとリンクされていない)を管理させたい場合は、次の行を追加します。

8<-------------------------------------------# TYPE DATABASE USER IP-ADDRESS IP-MASK METHODhost all all 10.0.0.0 255.255.255.0 md58<-------------------------------------------

つまり、ローカルネットワーク(10.0.0.0/24-独自のローカルネットワークに置き換えます!),postgresユーザーに接続できるまでのネットワークのデータベースを提供する古典的なカップルユーザ/パスワードになります。

以外のユーザの接続のネットワークのためのデータベースサーバを有効にしなければなりませんPostgreSQLを聞く異なるネットワーク。, これを行うには、/etc/postgresql/current/main/postgresqlを開きます。お気に入りのエディタでconfを作成し、listen_addressesを以下のように変更します。

listen_addresses = '*'

すべてのネットワークインターフェイスでリッスンします。 他のオプションについては、listen_addressesのdocsを参照してください。

データベースに対して完全な権限を持つユーザーを持つデータベースを作成するには、次のコマンドを使用します。

sudo -u postgres createuser -D -A -P myusersudo -u postgres createdb -O myuser mydb

最初のコマンドラインでは、データベース作成権限のないユーザー(-D)を作成し、ユーザーの追加権限のないユーザー(-P)を作成し、パスワードの入力を求めます(-P)。, 第二のコマンドラインは、所有者として’myuser’を持つデータベース’mydbを作成します。

この小さな例は、おそらくあなたのニーズのほとんどに合っています。 詳細については、対応するmanページまたはオンライン文書を参照してください。

サーバーの再起動

ネットワーク/ユーザーを設定した後、サーバーをリロードする必要がある場合があります。

sudo /etc/init.d/postgresql reload

postgresqlのいくつかの設定が変更されました。,confは完全な再起動を必要とし、アクティブな接続を終了し、コミットされていないトランザクションを中止します。

sudo /etc/init.d/postgresql restart

さらに読む

Sqlに慣れていない場合は、この強力な言語を調べたいかもしれませんが、PostgreSQLのいくつかの簡単な使用はこの知識を必要としないかもしれません(単純なDjangoプロジェクトなど)。

PostgreSQLウェブサイトには、このデータベースの使用に関する豊富な情報が含まれています。 特に、チュートリアルの便利な点もののスキップすることができ設置ステップとしてだけで設置でUbuntuパッケージ。,

トラブルシューティング

fe_sendauth:パスワードが指定されていません

あなたのpg_hba。confは、元のホスト、接続方法、要求されたユーザー名/データベースに基づいて、この接続にmd5認証を使用することを指定しますが、アプリケーションがパスワードを

認証モードを変更するか、接続先のユーザーのパスワードを設定し、アプリケーションの接続設定でそのパスワードを指定します。,

FATAL:ロール”myusername”は存在しません

デフォルトでは、PostgreSQLは現在のunixユーザと同じ名前のPostgreSQLユーザに接続します。 データベースにその名前でPostgreSQLユーザーを作成していません。

適切なユーザーを作成するか、接続する別のユーザー名を指定します。 コマンドラインツールでは、-Uフラグがこれを行います。

FATAL:データベース”myusername”は存在しません

“myusername”という名前のユーザーが存在しますが、同じ名前のデータベースはありません。,

デフォルトでは、PostgreSQLは接続しているユーザーと同じ名前のデータベースに接続しますが、存在しない場合はデータベースを自動作成しません。

データベースを作成するか、接続する別のデータベースを指定します。

FATAL:ユーザー”myusername”のピア認証に失敗しました

unixソケット経由でlocalhostに接続しています。 “Myusername”という名前のユーザーが存在しますが、現在のunixユーザーはそのユーザー名と同じではありません。, PostgreSQLは、このユーザー/dbコンボのunixソケットで”ピア”認証を使用するように設定されているため、unixとpostgresqlのユーザー名を一致させる必要があります。 希望するPostgreSQLユーザーに一致するunixユーザーから接続するか、sudo-u theusername psqlを使用するか、pg_hbaを変更します。confこのユーザー名に”md5″のような別の認証モードを使用します。,

サーバーに接続できませんでした:そのようなファイルまたはディレクトリがありません

このようなエラー(インストールに応じて異なるunixソケットパスを持つ可能性があります):

 psql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

いくつかのことを意味する可能性があります:

*サーバーが実行されていません。

*サーバーはクライアントのlibpqのデフォルトとは異なるunix_socket_directoriesを持っています。

*サーバーはクライアントのlibpqのデフォルトとは異なります。

*サーバーは異なる”ポート”でリッスンしています。

*サーバーは異なる”ポート”でリッスンしています。, PostgreSQL emulates TCP/IPポートunixのソケットのポート番号の末尾のソケットファイル、例えば5432.

これらを順番に排除します。

まず、サーバーが実行されていることを確認します。 Ubuntuでは、ps-u postgres-fはユーザー postgresとして実行されているプロセスを表示します-postgresという名前の複数のプロセスを表示したいと思います。

次に、クライアントが考えている場所でサーバーがリッスンしていることを確認します。 PostgreSQLサーバのソケットディレクトリを見つけるには:

 sudo -u postgres psql -c "SHOW unix_socket_directories;"

または古いPostgreSQLバージョンでは、パラメータとしてunix_socket_directoryが名前を変更しました。, サーバーのポート(TCP/IPとunixソケットの両方に適用されます)を表示するには:

 sudo -u postgres psql -c "SHOW port;"

unixユーザpostgresでpsqlに接続できない場合は、lsofでソケットdirを確認できます。

 $ sudo lsof -U -a -c postgres COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME postgres 6565 postgres 5u unix 0xffff88005a049f80 0t0 183009 /tmp/.s.PGSQL.5432 postgres 6566 postgres 1u unix 0xffff88013bc22d80 0t0 183695 socket postgres 6566 postgres 2u unix 0xffff88013bc22d80 0t0 183695 socket

この場合、最初の行はソケットの場所です。 このサーバーには、ポート5432のsocket directory/tmpがあります。,

クライアントが別のソケットディレクトリを探している場合、おそらくunixソケットを介してデフォルトのソケットパスおよび/またはデフォルトのポートに接続しようとしています。 ほとんどの場合、LD_LIBRARY_PATHまたは/etc/ld.so.confは、PostgreSQLのバージョンに付属しているlibpqよりも前に異なるlibpqを持っています。 これは一般的にはあまり重要ではありません。, たとえば、ポート5433で/tmpでリッスンしているサーバーにユーザbobとして接続するには:

 psql -h /tmp -p 5433 -U bob ...

または接続文字列形式で接続します。

 psql "host=/tmp port=5433 user=bob ..."

libpqを使用するクライアント(すべてのPostgreSQLクライアント)でも同じように動作します。ツールに加えて、psycopg2、ruby/railsのpg gem、phpのpostgresとpdo、perlのdbb::pgなど)。, PgJDBC、py-postgresqlなどのlibpq以外のクライアントでは動作しませんが、これらのほとんどはunixソケットをまったくサポートしていません。 のお客様の文書を非libpqです。

公式PostgreSQLダウンロード

PostgreSQLプロジェクトは、Ubuntuソフトウェアリポジトリを含むダウンロード場所の公式リストをダウンロードページに提供します。 特に、Ubuntuユーザーが新しいPostgreSQLバージョンよりパッケージをそのUbuntuのリリースapt-getの使用によapt.postgresql.org.

サポートとサービスのPostgreSQLのサービス-サポートページです。,

EnterpriseDB

PostgreSQL Linuxのダウンロードページには、EnterpriseDBによって構築された”グラフィカルインストーラ”に関するセクションが含まれています。 ダウンロードしインストーラの変更その性質を実行してコマンドです。拡張子を実行)、”sudo whateveritwas”のようにコマンドプロンプトから実行します。走る”。 サーバーで起動する構成済みのDBサーバーインスタンス

  • pgAdmin III UIクライアントアプリケーション
  • インストールされたソフトウェアはUbuntu software centerと統合されないことに注意してください。, その結果、Ubuntuからセキュリティ更新を受け取ることはありません。 しかし、インストールバージョンはマッチし、最新のUbuntuのバージョン。

    ターンキー Linux

    UbuntuベースのPostgreSQLアプライアンスは、Ubuntu上でPostgreSQLを起動して実行する最も簡単な方法の一つです。 これは、Ubuntu10.04.1(Lucid LTS)に基づく統合済みのターンキー Linuxソフトウェアアプライアンスのファミリの一部です。