Dreamweaver で MySQL に接続する

最終更新日 : 2021年4月27日

>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 つのデータベース(mysqltest)が含まれています。. mysql データベースには、特権に関する情報を保存する 6 つのテーブルが含まれています。 このセクションでは、これらのテーブルの内、2 つ (user テーブルと db テーブル)について説明します。

user テーブルは、誰が MySQL サーバーに接続するか、そのユーザーにグローバルレベルの特権があるかどうかに関する情報を保存します。 user テーブルに格納された特権は、MySQL サーバーのすべてのデータベースに影響するので、通常、管理者には Y (はい)を含むいくつかの特権フィールドがありますが、標準ユーザーの特権フィールドには N (いいえ)しかありません。 db テーブルは、ユーザーがアクセスできる MySQL サーバー上のデータベースを指定し、標準ユーザーの特権の大半を保存します

メモ:多くのサードパーティ製のグラフィックインターフェイスユーティリティは、MySQL データベースの視覚的管理に役立ちます。ただし、この文書では、ネイティブの MySQL コマンドラインクライアントを使用します。

MySQL のインストール先が UNIX、Windows、Mac OS X のいずれのマシンであっても、コマンドプロンプトウィンドウで MySQL を管理できます。 Windows の場合は、スタート/プログラム/コマンドプロンプトを選択してコマンドプロンプトを開きます。 (一部のシステムでは、コマンドプロンプトは、「スタート/すべてのプログラム」の下の「アクセサリ」にあります)。

コマンドプロンプトで以下のコマンドを入力して、mysql\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 つの特権(SELECTINSERTUPDATEDELETE)が employees データベース(以下の例の emp データベース)のどのテーブルにおいても付与されます。 MySQL データベースでは、パスワード myPassword は暗号化されます。

  • この例では、dbuserlocalhost
    からのみデータベースにアクセスできます: GRANT SELECT, INSERT, UPDATE, DELETE ON emp.* TO dbuser@localhost IDENTIFIED BY "myPassword"; {7}
  • この例では、dbusermySite
    からのみデータベースにアクセスできます: GRANT SELECT, INSERT, UPDATE, DELETE ON emp.* TO dbuser@mySite IDENTIFIED BY "myPassword"; {7}
  • この例では、dbusermySite.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_

priv

Insert_

priv

Update_

priv

Delete_

priv

localhost

emp

dbuser

Y

Y

mySite

emp

dbuser

Y

Y

mySite。

myDomain.com

emp

dbuser

Y

Y

%

emp

dbuser

Y

Y

メインの mysql データベースのユーザーテーブルに対してどのような変更が行われたかを確認するために、以下の SQL 文を実行します:
SELECT Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv FROM user WHERE User='dbuser';

以下に、上記のすべての GRANT ステートメントを実行した場合の user テーブルの内容を示します。

ホスト

ユーザー

Select_

priv

Insert_

priv

Update_

priv

Delete_

priv

localhost

dbuser

N

N

N

N

mySite

dbuser

N

N

N

×

mySite。

myDomain.com

dbuser

N

N

N

N

%

dbuser

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サーバー:mysql1.myDomain.com
ユーザー名:dbuser
パスワード:myPassword
データベース:データベースの名前を入力するか、「選択」をクリックしてサーバーで実行されているMySQLデータベースのリストから選択します。

メモ: PHP と MySQL を同じマシンで実行する場合、「MySQL サーバー」フィールドには localhost と入力する必要があります。

MySQL ユーティリティ

サードパーティツールを使用すると、SQL の知識がなくても MySQL データベースの設定と管理が可能です。 これらは、コマンドラインインターフェイスでなく、ビジュアルなインターフェイスでデータベースを操作する場合に有用なツールです。 これらのツールは、MySQL データベースを実行すマシンやローカルワークステーションにダウンロードしてインストールできます。 PHPMyAdminEMS MySQL ManagerurSQLPremiumSoft MySQL Studio などのツールがよく使用されます。