「PostgreSQL」の版間の差分

提供:MoodleDocs
移動先:案内検索
(Done :-))
編集の要約なし
1行目: 1行目:
PostgreSQLは、Moodleが完全にサポートする2つのデータベースの1つです。すべてのMoodleインストールにおいて、データベースは必須コンポーネントです。
{{Moodleのインストール}}
PostgreSQLは、Moodleが完全にサポートしている5つのデータベースのうちの1つです。データベースはすべてのMoodleインストールに必要なコンポーネントです。


PostgreSQLは「カリフォルニア大学バークレー校コンピュータサイエンス学科で開発されたPOSTGRES Version 4.2をベースとしたオブジェクト関係データベース (ORDBMS)」と記述されています。POSTGRESでは多くのコンセプトを開拓しましたが、かなり後になっていくつかの商用データベースのみで利用可能となりました。
==Moodleデータベースの作成==
この手順は、データベースサーバとウェブサーバが同じマシンにあることを前提としています。そうでない場合は、さらにいくつかの作業を行う必要があります。詳しくはPostgreSQLのドキュメントをご覧ください。


PostgreSQLは、このオリジナルバークレーコードのオープンソース版の子孫です。PostgreSQLでは、大部分の標準SQLをサポートし、多くの最新機能を提供します:
* PostgreSQLのコマンドラインクライアントにログインします。正確な形はPostgreSQLの設定によりますが、以下のような形になるでしょう。


* 複雑クエリ
    $ psql -U postgres
* 外部キー
    Password for user postgres:
* トリガー
* ビュー
* トランザクションの整合性
* 多版型同時実行制御
また、多くの方法でユーザがPostgreSQLを拡張することができます。例えば:


* データタイプ
インストール時に設定した 'postgres' ユーザのパスワードを入力してください。いくつかの前置きの後、プロンプト ''postgres=#'' が表示されるはずです。
* 関数
* オペレータ
* 集約関数
* インデックスメソッド
* 手続き型言語


そして、自由なライセンスのため、PostgreSQLはすべての人において、個人、商用、学術等、あらゆる目的の利用および配布を無料にて行うことができます。
* Moodleデータベースのユーザを作成し、パスワードを割り当てます:


== 関連情報 ==
    postgres=# CREATE USER moodleuser WITH PASSWORD 'yourpassword';


* [http://www.postgresql.org PostgreSQL home page]
適切な強さのパスワードを入力します。実際の認証方法はPostgreSQLサーバのpg_hba.confファイルに依存することに注意してください。いくつかの認証方法 (identなど) はパスワードを必要としません。詳細については、以下の 'クライアント認証' のセクションを参照してください。
 
* データベースを作成します:
 
    postgres=# CREATE DATABASE moodle WITH OWNER moodleuser;
 
==文字セットと照合順序==
 
PostgreSQLサーバのデフォルト照合順序があなたのニーズに合わない場合、あなたのMoodleデータベースに対して、明示的にLC_CTYPE (文字分類) およびLC_COLLATE (文字列ソート順序) 設定を行うことができます。以下の例では、チェコのMoodleサイト用に最適化された 'moodle' という新しいデータベースを作成します:
 
    postgres=# CREATE DATABASE moodle WITH OWNER moodleuser ENCODING 'UTF8' LC_COLLATE='cs_CZ.utf8' LC_CTYPE='cs_CZ.utf8' TEMPLATE=template0;
 
詳しくは、PostgreSQLマニュアルの [http://www.postgresql.org/docs/9.1/static/multibyte.html 文字セットサポート] の章を参照してください。
 
データベースが正しく作成されたことを確認するには、psqlのコンソールで ''\l'' を使用するか、''psql -l'' シェルコマンドを実行してください。以下のような結果が得られるはずです
 
    postgres=# \l
                                      List of databases
      Name    |  Owner    | Encoding |  Collation  |    Ctype    |  Access privileges 
    -----------+------------+----------+-------------+-------------+-----------------------
    moodle    | moodleuser | UTF8    | cs_CZ.utf8  | cs_CZ.utf8  |
    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
 
== クライアント認証 ==
 
クライアント認証は、PostgreSQLがどのユーザアカウントでどのホストからどのデータベースに接続できるかを決定する方法です。PostgreSQLはこれをMySQLとは全く異なる方法で処理します。これは、MySQLに慣れているシステム管理者がPostgreSQLサーバをセットアップする際の潜在的な落とし穴になります。
 
上記の手順に従っても、Moodleがあなたのデータベースに接続できず、'Ident authentication failed (ID認証に失敗しました)' というエラーが表示される場合、あなたのクライアント認証ファイルをチェックしてください。
 
MySQLでは、データベース上でユーザアカウントを作成したり、権限を付与したりする際に、'moodleuser'@'servername' 構文を使ってアクセスを制御しています。PostgreSQLでは、PostgreSQLの 'data' フォルダにある 'pg_hba.conf' というクライアント認証ファイルを使用します。このファイルには、どのユーザがどのデータベースへの接続を許可されているか、接続を許可されているIPアドレス、接続に使用できる認証方法のリストがあります。
 
クライアント認証ファイルの中に、次の行('#' 記号で始まる)があります。これは、各データを追加する順序を示すものです。Moodleが同じマシン上のPostgreSQLサーバに接続する許可を与えるには、次の行を追加して、DATABASEおよびUSER列をあなたの実際のデータベース名および上記で設定したユーザ名に変更してください。METHODフィールドは "password" と書いてください - 実際のパスワードはここに書かないでください。
 
    # TYPE      DATABASE    USER            CIDR-ADDRESS        METHOD
    host        moodle      moodleuser      127.0.0.1/32        password
 
あなたのデータベースが、あなたのMoodleインストールとは別のサーバに存在する場合、上記のIPアドレスを一致するように変更することができます。この場合、2つのサーバ間の接続が安全でない限り、メソッドフィールドで 'パスワード' を使用しないことをお勧めします。 'パスワード' はパスワードをプレーンテキストで送信します。このような状況では、METHODを代わりに 'md5' に変更することを検討する必要があります。
 
クライアント認証ファイルを変更したら、PostgreSQLサービスを再起動する必要があります。
 
== See also ==
 
* [http://www.postgresql.org PostgreSQLホームページ]
* [http://wiki.postgresql.org/wiki/Tuning_Your_PostgreSQL_Server PostgreSQLサーバのチューニング]
* [[Arguments in favour of PostgreSQL]]
* [[Arguments in favour of PostgreSQL]]
* [http://moodle.org/mod/forum/view.php?id=45 Using Moodle databases forum]
* [https://en.wikipedia.org/wiki/PostgreSQL PostgreSQL - Wikipedia]
* [http://en.wikipedia.org/wiki/Postgres Wikipedia article on PostgerSQL]
* MDL-55124 - Moodle 3.2以降のPostgreSQL接続でコネクションプーラ (pgbouncer) をサポートしました。
* Using Moodle [http://moodle.org/mod/forum/discuss.php?d=49195 Upgrading to 1.6 and may need to switch to PostgreSQL] フォーラムディスカッション - 英語


[[Category:管理者]]
[[カテゴリ:SQLデータベース]]
[[Category:開発者]]
[[Category:SQLデータベース]]


[[en: PostgreSQL]]
[[en:PostgreSQL]]
[[es:PostgreSQL]]

2022年2月1日 (火) 04:31時点における版

PostgreSQLは、Moodleが完全にサポートしている5つのデータベースのうちの1つです。データベースはすべてのMoodleインストールに必要なコンポーネントです。

Moodleデータベースの作成

この手順は、データベースサーバとウェブサーバが同じマシンにあることを前提としています。そうでない場合は、さらにいくつかの作業を行う必要があります。詳しくはPostgreSQLのドキュメントをご覧ください。

  • PostgreSQLのコマンドラインクライアントにログインします。正確な形はPostgreSQLの設定によりますが、以下のような形になるでしょう。
   $ psql -U postgres
   Password for user postgres:

インストール時に設定した 'postgres' ユーザのパスワードを入力してください。いくつかの前置きの後、プロンプト postgres=# が表示されるはずです。

  • Moodleデータベースのユーザを作成し、パスワードを割り当てます:
   postgres=# CREATE USER moodleuser WITH PASSWORD 'yourpassword';

適切な強さのパスワードを入力します。実際の認証方法はPostgreSQLサーバのpg_hba.confファイルに依存することに注意してください。いくつかの認証方法 (identなど) はパスワードを必要としません。詳細については、以下の 'クライアント認証' のセクションを参照してください。

  • データベースを作成します:
   postgres=# CREATE DATABASE moodle WITH OWNER moodleuser;

文字セットと照合順序

PostgreSQLサーバのデフォルト照合順序があなたのニーズに合わない場合、あなたのMoodleデータベースに対して、明示的にLC_CTYPE (文字分類) およびLC_COLLATE (文字列ソート順序) 設定を行うことができます。以下の例では、チェコのMoodleサイト用に最適化された 'moodle' という新しいデータベースを作成します:

   postgres=# CREATE DATABASE moodle WITH OWNER moodleuser ENCODING 'UTF8' LC_COLLATE='cs_CZ.utf8' LC_CTYPE='cs_CZ.utf8' TEMPLATE=template0;

詳しくは、PostgreSQLマニュアルの 文字セットサポート の章を参照してください。

データベースが正しく作成されたことを確認するには、psqlのコンソールで \l を使用するか、psql -l シェルコマンドを実行してください。以下のような結果が得られるはずです

   postgres=# \l
                                      List of databases
      Name    |  Owner     | Encoding |  Collation  |    Ctype    |   Access privileges   
   -----------+------------+----------+-------------+-------------+-----------------------
    moodle    | moodleuser | UTF8     | cs_CZ.utf8  | cs_CZ.utf8  | 
    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

クライアント認証

クライアント認証は、PostgreSQLがどのユーザアカウントでどのホストからどのデータベースに接続できるかを決定する方法です。PostgreSQLはこれをMySQLとは全く異なる方法で処理します。これは、MySQLに慣れているシステム管理者がPostgreSQLサーバをセットアップする際の潜在的な落とし穴になります。

上記の手順に従っても、Moodleがあなたのデータベースに接続できず、'Ident authentication failed (ID認証に失敗しました)' というエラーが表示される場合、あなたのクライアント認証ファイルをチェックしてください。

MySQLでは、データベース上でユーザアカウントを作成したり、権限を付与したりする際に、'moodleuser'@'servername' 構文を使ってアクセスを制御しています。PostgreSQLでは、PostgreSQLの 'data' フォルダにある 'pg_hba.conf' というクライアント認証ファイルを使用します。このファイルには、どのユーザがどのデータベースへの接続を許可されているか、接続を許可されているIPアドレス、接続に使用できる認証方法のリストがあります。

クライアント認証ファイルの中に、次の行('#' 記号で始まる)があります。これは、各データを追加する順序を示すものです。Moodleが同じマシン上のPostgreSQLサーバに接続する許可を与えるには、次の行を追加して、DATABASEおよびUSER列をあなたの実際のデータベース名および上記で設定したユーザ名に変更してください。METHODフィールドは "password" と書いてください - 実際のパスワードはここに書かないでください。

   # TYPE      DATABASE    USER            CIDR-ADDRESS        METHOD
   host        moodle      moodleuser      127.0.0.1/32        password

あなたのデータベースが、あなたのMoodleインストールとは別のサーバに存在する場合、上記のIPアドレスを一致するように変更することができます。この場合、2つのサーバ間の接続が安全でない限り、メソッドフィールドで 'パスワード' を使用しないことをお勧めします。 'パスワード' はパスワードをプレーンテキストで送信します。このような状況では、METHODを代わりに 'md5' に変更することを検討する必要があります。

クライアント認証ファイルを変更したら、PostgreSQLサービスを再起動する必要があります。

See also