主催者
>11>Adobe Dreamweaver で MySQL を設定し、MySQL データベース接続を作成し、MySQL ユーティリティを使用する方法について説明します。
この文書の対象者は、PHP 5x を実行しているサーバーを使用する Dreamweaver Creative Suite ユーザーです。
Dreamweaver を使用している場合、データベース接続の詳細については、以下の文書をご覧ください。
概要
この文書では、Dreamweaver での PHP サーバーモデル使用時に、MySQL データベース接続を正常に行うための重要なファクターのいくつかを説明します。また、基本的な MySQL ユーザーアカウント設定についても説明します。この記事では、ローカルコンピューターまたはリモートコンピュータ―に MySQL をインストールおよび設定していると想定します。
設定が正しく完了しない場合、Dreamweaver でエラーが発生します。Dreamweaver で MySQL 接続をテストする際によく発生するエラーは、「An unidentified error has occurred (未知のエラーが発生しました)」です。
メモ:この文書の内容は基本的な入門ガイドです。特定のセキュリティ要件に合わせて MySQL アカウント設定を調整するには、MySQL 文書などのサードパーティ製リソースを参照してください。MySQL のダウンロードとインストールについては、MySQL Web サイトにアクセスしてください。
MySQL の設定
MySQL データベースのデフォルトインストールには、2 つのデータベース(mysql と test)が含まれています。.mysql データベースには、特権に関する情報を保存する 6 つのテーブルが含まれています。このセクションでは、これらのテーブルの内、2 つ (user テーブルと db テーブル)について説明します。
user テーブルは、誰が MySQL サーバーに接続するか、そのユーザーにグローバルレベルの特権があるかどうかに関する情報を保存します。user テーブルに格納された特権は、MySQL サーバーのすべてのデータベースに影響するので、通常、管理者には Y (はい)を含むいくつかの特権フィールドがありますが、標準ユーザーの特権フィールドには N (いいえ)しかありません。db テーブルは、ユーザーがアクセスできる MySQL サーバー上のデータベースを指定し、標準ユーザーの特権の大半を保存します
メモ:多くのサードパーティ製のグラフィックインターフェイスユーティリティは、MySQL データベースの視覚的管理に役立ちます。ただし、この文書では、ネイティブの MySQL コマンドラインクライアントを使用します。
MySQL のインストール先が UNIX、Windows、Mac OS X のいずれのマシンであっても、コマンドプロンプトウィンドウで MySQL を管理できます。Windows の場合は、スタート/プログラム/コマンドプロンプトを選択してコマンドプロンプトを開きます。(一部のシステムでは、コマンドプロンプトは、「スタート/すべてのプログラム」の下の「アクセサリ」にあります)。
コマンドプロンプトで、以下のコマンドを入力することで、現在のディレクトリを wmysql\bin ディレクトリに変更します。
> cd\> cd mysql\bin
MySQL のインストール時に、パスワードなしで root というアカウンが作成されます。このアカウントを使用してデータベースにログインできます。root は MySQL データベースを完全にコントロールできるので、アドビでは、このアカウントにパスワードを割り当てることを強く推奨しています。root アカウントにパスワードを割り当てるには、以下のコマンドを実行すると、root のパスワードが new-password に設定されます。new-password は、推察されにくい任意のパスワードで置き換える必要があります。
> mysqladmin -u root password new-password
PHP Web アプリケーションごとに別々の MySQL アカウントを作成します。MySQL アカウントは好きなだけ作成し、各アカウントに異なる権限や特権を割り当てることができます。Web アプリケーションユーザーは、root アカウントと同じレベルの特権を必要としません。
Web アプリケーション用の別個のユーザーアカウントを作成するには、MySQLに 接続し、以下のいずれかの方法を使用して、スーパーユーザーアカウントでログインします。以下の例でスーパーユーザー特権のあるアカウントは、root アカウントです。Enter キーを押すと、MySQL からパスワードの入力を促すプロンプトが表示されます。
> mysql --user=root --password
-または-
> mysql -uroot -p
いったん MySQL にログインしたら、Web アプリケーション用に dbuser (この名前は任意)というユーザーを作成します。以下に、この新しいユーザーの設定例を 4 つ示します。4 例すべてで、dbuser という名前に新規ユーザーが作成されます。このユーザーには、4 つの特権(SELECT、INSERT、UPDATE、DELETE)が employees データベース(以下の例の emp データベース)のどのテーブルにおいても付与されます。MySQL データベースでは、パスワード myPassword は暗号化されます。
- この例の dbuser は、localhost からしかデータベースにアクセスできません。
GRANT SELECT, INSERT, UPDATE, DELETE ON emp.* TO dbuser@localhost IDENTIFIED BY "myPassword"; - この例の dbuser は、mySite からしかデータベースにアクセスできません。
GRANT SELECT, INSERT, UPDATE, DELETE ON emp.* TO dbuser@mySite IDENTIFIED BY "myPassword"; - この例の dbuser は、mySite.myDomain.com からしかデータベースにアクセスできません。
GRANT SELECT, INSERT, UPDATE, DELETE ON emp.* TO dbuser@mySite.myDomain.com IDENTIFIED BY "myPassword"; - この例の dbuser は、任意のホストからデータベースにアクセスできます。
GRANT SELECT, INSERT, UPDATE, DELETE ON emp.* TO dbuser@"%" IDENTIFIED BY "myPassword";
GRANT ステートメントを実行したら、以下のコマンドで emp データベースから mysql データベースに戻ります。
>use mysql
メインの mysql データベースの db テーブルにどのような変更が行われたのかを観察するには、以下の SQL ステートメントを実行します。
SELECT Host, Db, User, Select_priv, Insert_priv, Update_priv, Delete_priv FROM db WHERE User='dbuser';
以下に、上記のすべての GRANT ステートメントを実行した場合の db テーブルの内容を示します。
|
Db |
ユーザー |
Select_ |
Insert_ |
Update_ |
Delete_ |
localhost |
emp |
dbuser |
Y |
Y |
Y |
Y |
mySite |
emp |
dbuser |
Y |
Y |
Y |
Y |
mySite. |
emp |
dbuser |
Y |
Y |
Y |
Y |
% |
emp |
dbuser |
Y |
Y |
Y |
Y |
メインの mysql データベースの user テーブルにどのような変更が行われたのかを観察するには、以下の SQL ステートメントを実行します。
SELECT Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv FROM user WHERE User='dbuser';
以下に、上記のすべての GRANT ステートメントを実行した場合の user テーブルの内容を示します。
主催者 |
ユーザー |
Select_ |
Insert_ |
Update_ |
Delete_ |
localhost |
dbuser |
N |
N |
N |
N |
mySite |
dbuser |
N |
N |
N |
N |
mySite. |
dbuser |
N |
N |
N |
N |
% |
dbuser |
N |
N |
N |
N |
メモ:セキュリティ上の理由で、user テーブルの dbuser アカウントは、root アカウントや MySQL 管理者アカウントのような管理者権限を必要としない限り、変更しないでください。これらの権限を付与すると、dbuser はシステムデータベースにアクセスできるようになります。
MySQL は、その起動時および GRANT ステートメントと REVOKE ステートメントの発行時に user テーブルと db テーブルを自動的に読み込みます。user テーブルと db テーブルを手動で変更した場合は、以下のコマンドを使用してテーブルを再度読み込み、変更内容を処理してください。
> flush privileges;
Dreamweaver での PHP / MySQL サイト定義の設定
Dreamweaver で MySQL データベースに正常に接続できるかどうかは、サイト定義時に正しい「サイト定義」を入力したかどうかによって決まります。以下の PHP / MySQL サイト定義例では、mySite.myDomain.com として識別されるマシンで実行される Linux PHP サーバーを使用しています。MySQL は mysql1.myDomain.com として識別される別のマシンで実行され、Dreamweaver はローカルワークステーションで実行されます。ワークステーションと Linux Web サーバー間のファイル転送には、FTP が使用されます。
- ローカル情報:
- サイト名: mySite
- ローカルルートフォルダー: C:\mySite\
- リモート情報:
- アクセス: FTP
- FTP ホスト: mySite.myDomain.com
- ホストディレクトリ: /htdocs/
- ログイン: webadmin
- パスワード: *********
- テストサーバー:
- サーバーモデル: PHP / MySQL
- アクセス: FTP
- FTP ホスト: mySite.myDomain.com
- ホストディレクトリ: /htdocs/
- ログイン: webadmin
- パスワード: *********
- URL プレフィックス: http://mySite.myDomain.com/
Dreamweaver で MySQL データベース接続を作成する
一度 MySQL ユーザーアカウントを設定してサイトを定義すると、Dreamweaver で MySQL データベースに接続できます。上記の設定を使用した場合、Dreamweaver の MySQL 接続ダイアログボックスの設定例は以下のようになります。
接続名:名前(connEmp など)を選択します。
MySQL Server: mysql1.myDomain.com
ユーザー名: dbuser
パスワード: myPassword
データベース:データベースの名前を入力するか、「選択」ボタンをクリックして、サーバーで実行される MySQL データベースのリストから選択します。
メモ: PHP と MySQL を同じマシンで実行する場合、「MySQL サーバー」フィールドには localhost と入力する必要があります。
MySQL ユーティリティ
サードパーティツールを使用すると、SQL の知識がなくても MySQL データベースの設定と管理が可能です。これらは、コマンドラインインターフェイスでなく、ビジュアルなインターフェイスでデータベースを操作する場合に有用なツールです。これらのツールは、MySQL データベースを実行すマシンやローカルワークステーションにダウンロードしてインストールできます。PHPMyAdmin、EMS MySQL Manager、 urSQL、PremiumSoft MySQL Studio などのツールがよく使用されます。