logo

パレット - カラフルに🎨

Palette — ビジュアルページビルダー、デザインの専門知識は不要です。

ライブデモ パレットをダウンロード

Scroll

ステップ 3:データベースを作成する

15/04/2025, by Ivan

テストサイトに Drupal をインストールしている場合は、このステップを飛ばせます。インストーラースクリプトを実行する際(次のステップ)には、新しいデータベースを作成する権限を持つデータベースのユーザー名とパスワードを指定するだけで十分です。

公開 Web サーバーに Drupal をインストールしている場合は、まずデータベースを作成し、権限の低いユーザーにアクセスを付与すべきです。インストール中に指定したデータベースユーザーは、ページが読み込まれるたびにデータベースに接続します。

このページでは、次のいずれかの方法を使って Drupal データベースを作成する手順を説明します:

  • Web ベースのコントロールパネル(例:CPanel や Plesk)
  • PhpMyAdmin
  • SQL コマンドを使う(コマンドライン経由)
  • MySQL / MariaDB コマンドを使う
  • PostgreSQL コマンドを使う

MySQL / MariaDB のデータベース名で使用できる文字

  • データベース名に大文字を使うと、小文字に変換されます。
  • 使用できる文字:a..z、0..9、および「_」(アンダースコア)。

ブラウザーベースのコントロールパネルでデータベースとユーザーを作成する

ほとんどの Web ホスティングアカウントには、サイトの管理を助ける Web コントロールパネルが用意されています。これらのツールには、新しいデータベースと、データベース権限を持つ「ユーザー」を作成するための使いやすい機能が含まれています。ブラウザーベースのコントロールパネルを使ってデータベースを作成するには、そのドキュメントを参照するか、Web ホスティングプロバイダーに連絡してください。

データベース用のユーザーを作成すると、ユーザーに権限を割り当てられるページが表示されることがあります。ほとんどのコントロールパネルの「データベースウィザード」では、単に「All(すべて)」の権限を選択する(そして一覧にあれば「GRANT」のチェックを外す)だけで、ユーザーを適切に設定できます。

ユーザー名、パスワード、データベース名、ホスト名(たとえば http://example.comhttp://drupal.example.comhttp://example.com/blog などにインストールしている場合)を記録しておきます。この情報は、インストールスクリプト中にブラウザーで入力します。

注意:多くの場合、Web インターフェースを介してデータベースとユーザーを作成すると、コントロールパネルのログインユーザー名がデータベース名とデータベースユーザー名の両方にプレフィックスとして追加されます。たとえば、サイトのコントロールパネルに「webadmin」としてログインし、「drupal8db」という名前のデータベースと「d8user」というユーザーを作成した場合、インストール中に "webadmin_drupal8db" と "webadmin_d8user" を入力する必要があるかもしれません。これは、多くのホスティングアカウントが共有サーバー上にあり、各データベースとユーザー名がすべてのアカウントで一意でなければならないためです。

phpMyAdmin を使ってデータベースとユーザーを作成する

phpMyAdmin を使ってデータベースを作成する最も安全な方法は、新しいデータベースにはすべての権限を持ち、他のデータベースには一切権限を持たないユーザーを作成することです。これは、同じサーバー上のすべてのサイトで共有のユーザー名とパスワードを使うよりも安全です。

注意: この手順は、phpMyAdmin への root アクセスがあり、phpMyAdmin 3.5.x を使っていることを前提としています。

  1. root ユーザーとして phpMyAdmin にログインします。
  2. Users(ユーザー)」をクリックし、次に「Add user(ユーザーを追加)」をクリックします。(注意: root ユーザーの認証情報を使うこともできます。)
  3. Username(ユーザー名)フィールドに、希望するユーザー名を入力します。
  4. Host(ホスト)」フィールドでは、別のサーバーからアクセスするのでない限り、セキュリティを高めるために「Local(ローカル)」を選びます。
  5. ユーザーのパスワードを入力または生成します。
  6. Database for user(ユーザー用データベース) セクションで、同じ名前の「Create database(データベースを作成)」を選択し、すべての権限を付与します。
  7. COLLATION が utf8mb4_unicode_ci または utf8mb4_general_ci に設定されていることを確認します。
  • 注意: これらの照合順序(COLLATION)の違いは、文字の比較と並べ替えにあります。utf8mb4_general_ci は少し高速で、utf8mb4_unicode_ci はより正確です。迷ったら utf8mb4_unicode_ci を使ってください。
  • 注意: この過程で COLLATION を設定できない場合は、データベースを選択した後に「Operations(操作)」で後から変更できます。

   8. Go をクリックしてユーザーを作成します。

phpMyAdmin は、ユーザーアカウントと同じ名前の新しいデータベースを作成します。データベース名とユーザー名を別々にしたい場合:

  1. Databases(データベース) をクリックし、名前を変更したいデータベース名をクリックします。
  2. Operations(操作)」をクリックします。
  3. Rename database to(データベース名を変更)」セクションに、新しいデータベース名を入力します。
  4. Go をクリックします。

phpMyAdmin のさらなるヘルプについては、公式 wiki を参照してください。

コマンドラインを使ってデータベースを作成する

Web コントロールパネルを使わない場合や、MySQL、MariaDB、PostgreSQL に慣れていてそれらを好む場合は、次のセクションでその方法を説明します。

コマンドラインでの権限とデータベース作成についての詳細は、INSTALL.mysql.txt(MySQL/MariaDB)および INSTALL.pgsql.txt(PostgreSQL)にあります。

MySQL / MariaDB コマンドを使ってデータベースを作成する

注意: データベースは、照合順序 utf8mb4_unicode_ci または utf8mb4_general_ci で UTF-8(utf8mb4)エンコーディングを使う必要があります。違いは文字の比較と並べ替えに関するものです。utf8mb4_general_ci は少し高速で、utf8mb4_unicode_ci はより正確です。迷ったら utf8mb4_unicode_ci を使ってください。

MySQL のインストールと設定については、http://dev.mysql.com/doc/refman/5.7/en/index.html にアクセスしてください。

MariaDB については、https://mariadb.com/kb/en/ にアクセスしてください。

以下の例では、'username' は CREATEGRANT 権限を持つ MySQL/MariaDB ユーザーで、'databasename' は新しいデータベース名です。あなたの環境に合った名前を使ってください。

  1. 新しいデータベースを作成します:
    mysql -u username -p -e "CREATE DATABASE databasename CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci";
  2. ログインしてアクセスを設定します:
    mysql -u username -p
  3. ユーザーを作成し、権限を割り当てます:
    CREATE USER username@localhost IDENTIFIED BY 'password';
    GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES ON databasename.* TO 'username'@'localhost' IDENTIFIED BY 'password';

特殊文字は必ずエスケープしてください。たとえば、データベース名にワイルドカード文字であるアンダースコア(_)が含まれる場合は、バッククォートで囲みます。drupal_test_account.*`drupal\_test\_account`.* とすべきです。

注意 1: Drupal インストール用のユーザー/ホストの組み合わせは、列挙したすべての権限(おそらく CREATE TEMPORARY TABLES を除く)を持っていなければなりません。

注意 2: Drush で作成したデータベースダンプを復元するには、LOCK TABLES 権限を追加してください。

GRANT の詳細:http://dev.mysql.com/doc/refman/5.0/en/grant.html

  • 'databasename' — あなたのデータベース名
  • 'username' — あなたの MySQL/MariaDB ユーザー
  • 'localhost' — Drupal のホストサーバー
  • 'password' — ユーザーのパスワード
  1. 成功時の応答:
    Query OK, 0 rows affected
  2. 権限をフラッシュします:
    FLUSH PRIVILEGES;
  3. MySQL/MariaDB を終了します:
    exit
  4. 予想される応答:
    Bye

PostgreSQL を使ってデータベースを作成する

データベースは UTF-8(Unicode)エンコーディングを使う必要があります。

1. データベースユーザーを作成する

このステップは、ホストがまだユーザーを設定していない場合や、専用の Drupal ユーザーが必要な場合にのみ必要です。これは新しいユーザー「username」を作成し、パスワードの入力を求めます:

createuser --pwprompt --encrypted --no-adduser --no-createdb username

成功すると、CREATE USER と表示されます。

2. データベースを作成する

このステップは、ホストがまだデータベースを作成していない場合や、Drupal 用に新しいものが欲しい場合にのみ必要です:

createdb --encoding=UNICODE --owner=username databasename

成功すると、CREATE DATABASE と表示されます。