「PostgreSQL」の版間の差分

提供:MoodleDocs
移動先:案内検索
編集の要約なし
 
(2人の利用者による、間の6版が非表示)
1行目: 1行目:
作成中です - [[利用者:Mitsuhiro Yoshida|Mitsuhiro Yoshida]] 2008年2月3日 (日) 11:09 (CST)
{{Moodleのインストール}}
PostgreSQLは、Moodleが完全にサポートしている5つのデータベースのうちの1つです。データベースはすべてのMoodleインストールに必要なコンポーネントです。


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


PostgreSQLは「カリフォルニア大学バークレー校コンピュータサイエンス学科で開発されたPOSTGRES, Version 4.2をベースとしたオブジェクト関係データベース (ORDBMS)」と記述されています。POSTGRESでは多くのコンセプトを開拓しましたが、かなり後になっていくつかの商用データベースのみで利用可能となりました。
* PostgreSQLのコマンドラインクライアントにログインします。正確な形はPostgreSQLの設定によりますが、以下のような形になるでしょう。


PostgreSQLは、このオリジナルのバークレーコードのオープンソースの子孫です。PostgreSQLでは、大部分の標準SQLをサポートし、多くの最新機能をいて供します:
    $ psql -U postgres
    Password for user postgres:


* 複雑クエリ
インストール時に設定した 'postgres' ユーザのパスワードを入力してください。いくつかの前置きの後、プロンプト ''postgres=#'' が表示されるはずです。
* 外部キー
* トリガー
* ビュー
* トランザクションの整合性
* 多版型同時実行制御
また、多くの方法でユーザがPostgreSQLを拡張することができます。例えば:


* データタイプ
* Moodleデータベースのユーザを作成し、パスワードを割り当てます:
* 関数
* オペレータ
* 集約関数
* index methods
* procedural languages


And because of the liberal license, PostgreSQL can be used, modified, and distributed by everyone free of charge for any purpose, be it private, commercial, or academic."
    postgres=# CREATE USER moodleuser WITH PASSWORD 'yourpassword';


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


* [http://www.postgresql.org PostgreSQL home page]
* データベースを作成します:
* [[Arguments in favour of PostgreSQL]]
* [http://moodle.org/mod/forum/view.php?id=45 Using Moodle databases forum]
* [http://en.wikipedia.org/wiki/Postgres Wikipedia article on PostgerSQL]
* Using Moodle [http://moodle.org/mod/forum/discuss.php?d=49195 Upgrading to 1.6 and may need to switch to PostgreSQL] forum discussion


[[Category:管理者]]
    postgres=# CREATE DATABASE moodle WITH OWNER moodleuser;
[[Category:開発者]]
[[Category:SQLデータベース]]


[[en: PostgreSQL]]
==文字セットと照合順序==
 
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サービスを再起動する必要があります。
 
== 関連項目 ==
 
* [http://www.postgresql.org PostgreSQLホームページ]
* [http://wiki.postgresql.org/wiki/Tuning_Your_PostgreSQL_Server PostgreSQLサーバのチューニング]
* [[PostgreSQLを使う理由]]
* [https://en.wikipedia.org/wiki/PostgreSQL PostgreSQL - Wikipedia]
* MDL-55124 - Moodle 3.2以降のPostgreSQL接続でコネクションプーラ (pgbouncer) をサポートしました。
 
[[カテゴリ:SQLデータベース]]
 
[[en:PostgreSQL]]
[[es:PostgreSQL]]

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

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サービスを再起動する必要があります。

関連項目