この情報は、米国アドビシステムズ社が提供している情報をもとにローカライズし、作成したものです。日本語環境での動作保証はしておりませんのでご了承ください。

この文書では Adobe Dreamweaver の PHP サーバーモデルを使用して MySQL データベースの接続を確立する際、注意すべきいくつかの点について説明しています。

設定が正しく完了していない場合、Dreamweaver 内でエラーが発生します。Dreamweaver で MySQL の接続テストを行うと、「"An unidentified error has occured."(不明なエラーが発生しました)」というエラーが発生することもあります。

注意:

注意 : この文書では、Dreamweaver で MySQL データベースを使用する基礎知識について説明しています。MySQL アカウントの設定やセキュリティに関する施策については、MySQL のドキュメントやサードパーティのリソースで確認してください。MySQL データベースは MySQL Web サイトからダウンロードしてインストールできます。

A. MySQL の設定

MySQL にはデフォルトで「mysql」と「test」という 2 つのデータベースが含まれています。「mysql」データベースには、権限に関する情報を格納した 6 つのテーブルが存在します。ここではその中の「user」テーブルと「db」テーブルについて説明しています。

「user」テーブルには、MySQL サーバーに接続可能なユーザーと、ユーザーごとのグローバル特権についての情報が格納されています。「user」テーブルで指定された権限は MySQL サーバー上の全てのデータベースに影響するため、一般のユーザーでは「N(No)」が指定されている項目に対して、管理者には「Y(Yes)」が指定されます。「db」テーブルでは、ユーザーに対してアクセスを許可する MySQL サーバー上のデータベースと、最も一般的なユーザー権限の情報が格納されています。

注意:

注意 : MySQL データベースを視覚的に運用できる GUI ユーティリティは多数存在しますが、この文書ではネイティブのコマンドラインクライアントを使用することを前提に説明しています。

MySQL をインストールしたプラットフォームが Windows、Mac OS、Unix のどの場合でも、コマンドラインから MySQL を管理運用することができます。Windows の場合は、コマンドプロンプトを使用します。

コマンドプロンプトの cd コマンドで、MySQL インストールフォルダー内の bin フォルダーに移動します。このフォルダーはインストール時の設定や MySQL のバージョンによって異なる可能性があります。

注意:

MySQL に付属する MySQL Command Line Client を使用する場合は、この操作は必要ありません。起動時に直接 root のパスワードを求められます。

> cd\
> cd mysql\bin

MySQL のインストール時に、パスワード未設定の root アカウントが作成されます。このアカウントを使用してデータベースにログインします。root アカウントは MySQL データベース全体に対してフルコントロールの権限を保有するため、パスワードを設定することを強く推奨します。root アカウントにパスワードを設定するには、以下のコマンドを実行します。「new-password」の部分を実際に指定するパスワードに置き換えてください。

注意:

root パスワードは、MySQL のインストール時に指定することも可能です。

> mysqladmin -u root password new-password

MySQL アカウントは、各 PHP Web アプリケーションごとに個別に作成することを推奨します。アカウントは必要に応じていくつでも作成することができ、アカウントごとに異なる権限を指定することができます。Web アプリケーションのユーザーには root と同等の権限は必要ありません。

Web アプリケーション用に個別にユーザーアカウントを作成するには、MySQL に接続してスーパーユーザーアカウントとしてログインします。以下の例では root アカウントを使用しています。Enter キーを押すとパスワードの入力を求められます。

> mysql --user=root --password

または

> mysql -uroot -p

MySQL にログインしたら、Web アプリケーション用の新しいユーザーを作成します。ここでは例として「calleddbuser」という名前で作成していますが、ユーザー名は任意です。ここでは、新しいユーザーを作成する 4 つのサンプルを示します。「emp」データベースに対して、SELECT、INSERT、UPDATE、DELETE の 4 つの権限を設定しています。パスワード(以下の例では myPassword)は MySQL データベース内で暗号化されます。  

  • localhost からのみアクセスを許可する例
    GRANT SELECT, INSERT, UPDATE, DELETE ON emp.* TO dbuser@localhost IDENTIFIED BY "myPassword";
  • mySite からのみアクセスを許可する例
    GRANT SELECT, INSERT, UPDATE, DELETE ON emp.* TO dbuser@mySite IDENTIFIED BY "myPassword"; 
  • mySite.myDomain.com からのみアクセスを許可する例
    GRANT SELECT, INSERT, UPDATE, DELETE ON emp.* TO dbuser@mySite.myDomain.com IDENTIFIED BY "myPassword"; 
  • どのホストからでもアクセスを許可する例
    GRANT SELECT, INSERT, UPDATE, DELETE ON emp.* TO dbuser@"%" IDENTIFIED BY "myPassword";  

GRANT ステートメントの実行後、以下のコマンドを実行して emp データベースから mysql データベースに切り替えます。

>use mysql

以下の SQL ステートメントを実行し、mysql データベースの db テーブルに適用された変更内容を確認します。

SELECT Host, Db, User, Select_priv, Insert_priv,    Update_priv, Delete_priv   FROM db   WHERE User='dbuser';

前述の GRANT ステート面を実行した場合、以下のように反映されます。

Host Db User Select_

priv
Insert_

priv
Update_

priv
Delete_

priv
localhost emp dbuser Y Y Y Y
mySite emp dbuser Y Y Y Y
mySite.myDomain.com emp dbuser Y Y Y Y
% emp dbuser Y Y Y Y

以下の SQL ステートメントを実行し、mysql データベースの user テーブルに適用された変更内容を確認します。

SELECT Host, User, Select_priv, Insert_priv,    Update_priv, Delete_priv   FROM user   WHERE User='dbuser';

前述の GRANT ステート面を実行した場合、以下のように反映されます。

Host User Select_

priv
Insert_

priv
Update_

priv
Delete_

priv
localhost dbuser N N N N
mySite dbuser N N N N
mySite.myDomain.com dbuser N N N N
% dbuser N N N N

注意:

注意 : user テーブル内の dbuser アカウントについては、セキュリティ保護の観点から、root または管理者アカウントと同等の権限を付与する必要がある場合を除き、原則として変更しないことを推奨します。これらの権限が付与されると、dbuser はシステムデータベースにアクセスできるようになります。

user テーブルと db テーブルは、MySQL の起動時および GRANT/REVOKE ステートメントの発行時に自動的に読み込まれます。user テーブルおよび db テーブルに何らかの変更を行った場合、以下のコマンドを実行してテーブルを再読み込みしてください。

> flush privileges;

B. PHP/MySQL の Dreamweaver サイト定義

Dreamweaver から MySQL に接続するには、正しいサイト定義を設定する必要があります。以下のサンプルは mySite.myDomain.com 上で PHP を実行する Linux サーバーのサイト定義の例です。MySQL は mysql1.myDomain.com 上で個別に実行されている前提で、Dreamweaver はローカルワークステーションで実行されています。ワークステーションと Linux Web サーバー間のファイル転送は FTP を使用します。

ローカル情報

  • サイト名 : mySite
  • ローカルサイトフォルダー : C:\mySite\

リモート情報

  • 使用する接続 : FTP
  • FTP アドレス : mySite.myDomain.com
  • ルートディレクトリ : /htdocs/
  • ユーザー名 : webadmin
  • パスワード : *************

テストサーバー

  • サーバーモデル : PHP MySQL
  • FTP アドレス : mySite.myDomain.com
  • ルートディレクトリ : /htdocs/
  • ユーザー名 : webadmin
  • パスワード : *************
  • Web URL : http://mySite.myDomain.com/

C. Dreamweaver から MySQL データベースに接続

MySQL ユーザアカウントの設定および Dreamweaver サイト定義が完了したら、Dreamweaver 内で MySQL データベースに接続できるようになります。上記のサンプルの場合、Dreamweaver の MySQL 接続ダイアログボックスでは以下のように入力します。

  • 接続名 : 名前を選択します。(例:connEmp)
  • MySQL サーバー : mysql1.myDomain.com
  • ユーザ名 : dbuser
  • パスワード : 設定したパスワード
  • データベース : データベースの名前を入力するか、または「選択」ボタンをクリックして MySQL データベースのリストから選択します。

メモ : PHP と MySQL が、Dreamweaver と同じコンピュータ上で実行されている場合は、「MySQL サーバー」フィールドに「localhost」と入力してください。

D. MySQL ユーティリティ

PHPMyAdminEMS MySQL ManagerurSQLPremiumSoft MySQL Studioなどのサードパーティ製ユーティリティは GUI ベースのため、SQL ステートメントの知識が無くても MySQL データベースを管理運用することができます。

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

法律上の注意   |   プライバシーポリシー