「PostgreSQL」の版間の差分

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


PostgreSQL is one of the two databases that is fully supported by Moodle. A database is a required component of any Moodle installation.
==Moodleデータベースの作成==
この手順は、データベースサーバとウェブサーバが同じマシンにあることを前提としています。そうでない場合は、さらにいくつかの作業を行う必要があります。詳しくはPostgreSQLのドキュメントをご覧ください。


PostgreSQL describes itself as "an object-relational database management system (ORDBMS) based on POSTGRES, Version 4.2, developed at the University of California at Berkeley Computer Science Department. POSTGRES pioneered many concepts that only became available in some commercial database systems much later.
* PostgreSQLのコマンドラインクライアントにログインします。正確な形はPostgreSQLの設定によりますが、以下のような形になるでしょう。


PostgreSQL is an open-source descendant of this original Berkeley code. It supports a large part of the SQL standard and offers many modern features:
    $ psql -U postgres
    Password for user postgres:


* complex queries
インストール時に設定した 'postgres' ユーザのパスワードを入力してください。いくつかの前置きの後、プロンプト ''postgres=#'' が表示されるはずです。
* foreign keys
* triggers
* views
* transactional integrity
* multiversion concurrency control
Also, PostgreSQL can be extended by the user in many ways, for example by adding new


* data types
* Moodleデータベースのユーザを作成し、パスワードを割り当てます:
* functions
* operators
* aggregate functions
* 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]
* データベースを作成します:
* [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サービスを再起動する必要があります。

関連項目