マニュアル キャンセル

データベース接続のトラブルシューティング

 

 

Dreamweaver で権限の問題、Microsoft エラーメッセージおよび MySQL エラーメッセージのトラブルシューティングを実行します。

注意:

Dreamweaver 以降では、ユーザーインターフェイスが簡素化されています。そのため、この記事で説明されているオプションの一部が Dreamweaver 以降には存在しない場合があります。詳しくは、こちらの記事を参照してください。

権限の問題のトラブルシューティング

適切なフォルダー権限やファイル権限がないことが原因で問題が発生することがあります。データベースが Windows 2000 または Windows XP コンピューターに置かれており、Web ブラウザーで動的ページを表示したり、ライブビューのときに動的ページを表示しようとするとエラーメッセージが表示される場合は、権限に問題があると考えられます。

データベースにアクセスしようとしている Windows アカウントに、適切な権限がありません。認証済みアクセスに対しページにセキュリティが設定されている場合、そのアカウントは、匿名 Windows アカウント(初期設定では、IUSR_コンピューター名)または特定のユーザーアカウントのいずれかであることが考えられます。

権限を変更して、Web サーバーでデータベースファイルにアクセスできるように、IUSR_コンピューター名 アカウントに正しい権限を割り当てる必要があります。さらに、データベースファイルが置かれているフォルダーにも、そのデータベースに書き込むための権限がいくつか設定されているはずです。

ページへの匿名アクセスを許可する場合は、以下の手順で説明するように、IUSR_コンピューター名 アカウントにフォルダーおよびデータベースファイルに対するフル制御の権限を付与します。

さらに、データベースのパスが UNC を使用して参照されている場合(\\Server\Share)、共有のアクセス権限に、IUSR_コンピューター名 アカウントのフルアクセスを割り当てます。共有がローカル Web サーバー上である場合も、この手順で解決できます。

データベースを他の場所からコピーすると、コピー先フォルダーの権限が継承されない場合があります。その場合は、データベースに対する権限を変更する必要があります。

データベースファイルの権限の確認または変更(Windows XP)

  1. そのコンピューターに対する管理者権限を持っていることを確認します。
  2. Windows エクスプローラーで、データベースファイルまたはデータベースが格納されているフォルダーを見つけて、そのファイルまたはフォルダーを右クリックし、「プロパティ」を選択します。
  3. 「セキュリティ」タブを選択します。
    注意:

    この手順は、NTFS ファイルシステムを使用している場合のみ実行してください。FAT ファイルシステムを使用している場合は、ダイアログボックスに「セキュリティ」タブが表示されません。

  4. IUSR_コンピューター名 アカウントがグループ名またはユーザー名リストに表示されていない場合は、「追加」ボタンをクリックして追加してください。
  5. ユーザー、コンピューター、またはグループの選択ダイアログボックスで、「詳細設定」をクリックします。

    ダイアログボックスに詳細オプションが表示されます。

  6. 「場所」をクリックし、コンピューター名を選択します。
  7. 「今すぐ検索」をクリックすると、コンピューターと関連するアカウント名の一覧が表示されます。
  8. IUSR_コンピューター名 アカウントを選択してから、「OK」を 2 回クリックして、ダイアログボックスを閉じます。
  9. IUSR アカウントにすべての権限を割り当てるには、「フル コントロール」を選択してから「OK」をクリックします。

データベースファイルの権限の確認または変更(Windows 2000)

  1. そのコンピューターに対する管理者権限を持っていることを確認します。
  2. Windows エクスプローラーで、データベースファイルまたはデータベースが格納されているフォルダーを見つけて、そのファイルまたはフォルダーを右クリックし、「プロパティ」を選択します。
  3. 「セキュリティ」タブを選択します。
    注意:

    この手順は、NTFS ファイルシステムを使用している場合のみ実行してください。FAT ファイルシステムを使用している場合は、ダイアログボックスに「セキュリティ」タブが表示されません。

  4. Windows アカウントとして IUSR_コンピューター名 アカウントがアクセス許可ダイアログボックス内に表示されていない場合は、「追加」ボタンをクリックして追加してください。
  5. ユーザー、コンピューター、またはグループの選択ダイアログボックスの場所メニューからコンピューター名を選択すると、コンピューターと関連するアカウント名の一覧が表示されます。
  6. IUSR_コンピューター名 アカウントを選択して、「追加」をクリックします。
  7. IUSR アカウントにすべての権限を割り当てるには、アクセス許可メニューから「フル コントロール」を選択し、「OK」をクリックします。

    セキュリティを強化するには、データベースが格納されている Web フォルダーの読み取り権限をオフにします。この設定によって、フォルダーの参照は許可されなくなりますが、Web ページがデータベースにアクセスすることはできます。

    IUSR アカウントと Web サーバー権限について詳しくは、Adobe サポートセンターの以下のテクニカルノートを参照してください。

Microsoft エラーメッセージのトラブルシューティング

これらの Microsoft エラーメッセージは、IIS(Internet Information Server)を Access や SQL Server などの Microsoft データベースシステムで使用する場合に動的ページを要求すると表示されることがあります。

注意:

Adobe では、Microsoft Windows および IIS などのサードパーティ製ソフトウェアに関するテクニカルサポートは提供していません。この情報を参照しても問題が解決しない場合には、Microsoft テクニカルサポートに問い合わせるか、Microsoft サポート Web サイト(http://support.microsoft.com/)を参照してください。

80004005 番のエラーについて詳しくは、Microsoft Web サイトの記事「Active Server Pages および Microsoft Data Access Components におけるエラー 80004005 のトラブルシューティング ガイド(Q306518)」(http://support.microsoft.com/default.aspx?scid=kb;ja-jp;Q306518)を参照してください。

[[参照]80004005—データソース名が見つかりません。デフォルトドライバーが指定されていません]

このエラーは、動的ページを Web ブラウザーやライブビューで表示しようとすると発生します。エラーメッセージは、使用しているデータベースおよび Web サーバーによって異なります。エラーメッセージのバリエーションには、他に次のようなものがあります。

  • 80004005—ドライバーの SQLSetConnectAttr は失敗しました

  • 80004005—一般的なエラー。レジストリキー 'DriverId' を開けません

    考えられるいくつかの原因と解決策を次に示します。

  • ページから DSN を検索できません。Web サーバーとローカルマシンの両方で DSN が作成済みであることを確認してください。

  • DSN が、システム DSN としてではなくユーザー DSNとして設定されている可能性があります。ユーザー DSN を削除して、システム DSN を作成し、置き換えてください。

注意:

ユーザー DSN を削除しないと、重複する DSN 名により新たに ODBC エラーが発生します。

Microsoft Access を使用している場合、データベースファイル(.mdb)がロックされていることも考えられます。異なる DSN 名からデータベースにアクセスすると、ロックされることがあります。Windows エクスプローラーで、データベースファイル(.mdb)が保存されているフォルダー内にロックファイル(.ldb)がないか調べ、ある場合はその .ldb ファイルを削除してください。他の DSN が同じデータベースファイルをポイントしている場合、今後エラーが発生しないようにするため、その DSN を削除します。必要な変更を加えたら、コンピューターを再起動します。

[[参照]80004005—'(不明)' を使用できません。ファイルは既に使用されています]

このエラーは、Microsoft Access データベースを使用中に、動的ページを Web ブラウザーやライブビューで表示しようとすると発生します。このエラーメッセージには、他に「80004005—Microsoft Jet データベースエンジンはファイル '(不明)' を開けません」があります。

原因として、権限の問題が考えられます。いくつかの具体的な原因と解決策を以下に示します。

  • Internet Information Server のアカウント(通常 IUSR)に、ファイルベースのデータベースまたはそのファイルを含むフォルダーに対する正しい Windows の権限がないことが考えられます。ユーザーマネージャーで IIS アカウント(IUSR)に対する権限を確認してください。

  • 一時ファイルを作成または破壊する権限がない可能性もあります。ファイルおよびフォルダーに対する権限を確認してください。一時ファイルを作成または破壊する権限があることを確認します。一時ファイルは通常、データベースと同じフォルダーに作成されますが、さらに ¥Winnt などの別のフォルダー内に作成されることもあります。

  • Windows 2000 では、Access データベース DSN に対し、タイムアウト値の変更が必要になる場合があります。タイムアウト値を変更するには、スタート/設定/コントロール パネル/管理ツール/データソース(ODBC)を選択します。「システム DSN」タブをクリックし、正しい DSN をハイライトにし、「構成」ボタンをクリックします。「オプション」ボタンをクリックしてページのタイムアウト値を 5000 に変更します。

    それでも問題が解決されない場合は、以下の Microsoft Knowledge Base の記事を参照してください。

  • PRB: 80004005 「'(不明)' は既に使用されているので、使用できませんでした」(http://support.microsoft.com/default.aspx?scid=kb;ja-jp;Q174943

  • PRB: Active Server Pages で Microsoft Access のデータベース接続が失敗します(http://support.microsoft.com/default.aspx?scid=kb;ja-jp;Q253604

  • PRB: Access 使用時に「ファイル '(不明)' を開くことができませんでした」エラー(http://support.microsoft.com/default.aspx?scid=kb;ja-jp;Q166029

[[参照]80004005—ログインに失敗しました()]

このエラーは、Microsoft SQL Server の使用中に、動的ページを Web ブラウザーやライブビューで表示しようとすると発生します。

このエラーは、送信されてきたログオンアカウントまたはパスワードを SQL Server が受け付けないか、認識しない場合(標準セキュリティ使用時)、または Windows アカウントが SQL アカウントに対応付けられていない場合(統合セキュリティ使用時)に SQL Server で発生します。

原因と解決策を以下に示します。

  • 標準セキュリティ使用時には、アカウント名およびパスワードが間違っている可能性があります。接続ストリングで定義されている必要のある、システム管理者のアカウントとパスワード(UID=sa、パスワードなし)を試してください(DSN では、ユーザー名とパスワードは保存されません)。

  • 統合セキュリティ使用時には、そのページを呼び出している Windows アカウントを調べ、対応付けられている SQL アカウント(ある場合)を調べてください。

  • SQL Server では SQL アカウント名の中にアンダースコアを使用できません。Windows の IUSR_machinename アカウントを、手動で同名の SQL アカウントに対応付けると、失敗します。アンダースコアを使用しているアカウントを、 アンダースコアを使用していない SQL のアカウント名に対応付けてください。

[[参照]80004005—更新可能なクエリを使用してください]

このエラーは、イベントによりレコードセットが更新されたり、データがレコードセットに挿入されると発生します。

考えられるいくつかの原因と解決策を次に示します。

  • データベースを格納するフォルダーに設定された権限に対する制限が多すぎます。IUSR 権限を読み書き可能に設定する必要があります

  • データベースファイル自体の権限で、完全に読み書きが有効になっていません。

  • データベースが Inetpub/wwwroot ディレクトリ以外に置かれている可能性があります。データベースが wwwroot ディレクトリに置かれていないと、データの表示および検索はできても更新できません。

  • レコードセットが更新不可能なクエリーに基づいています。更新不可能なクエリーの良い例は、データベース内の結合です。クエリーを再構成して、更新可能にします。

    このエラーについて詳しくは、Microsoft Knowledge Base の記事「PRB: テーブルのレコードを更新すると、ASP エラー「クエリを更新できません」が発生する」(http://support.microsoft.com/default.aspx?scid=kb;ja-jp;Q174640)を参照してください。

[[参照]80040e07—条件式のデータタイプが一致しません]

このエラーは、サーバーが「レコードの挿入」または「レコードの更新」サーバービヘイビアーを含むページを処理しようとし、サーバービヘイビアーで Microsoft Access データベース内の日付/時刻列の値を空文字列("")に設定しようとすると発生します。

Microsoft Access は、強力なデータタイプ付けを特徴としており、指定された列の値に対し厳格な規則があります。SQL クエリー内の空文字列値は、Access の日付/時刻列に格納できません。現時点の回避策としては、Access の日付/時刻列に空文字列("")を挿入または更新しない、あるいは使用するデータタイプに対し指定された値の範囲に対応しない他の値を挿入または更新しないようにする方法しかありません。

[「参照」80040e10—パラメーターが少なすぎます]

このエラーは、SQL クエリーで指定した列がデータベーステーブル内に存在しない場合に発生します。SQL クエリーとデータベーステーブル内の列名を確認してください。このエラーは多くの場合、入力の際に文字を間違えることが原因です。

[[参照]80040e10—COUNT フィールドが不正です]

このエラーは、Web ブラウザーで「レコードの挿入」サーバービヘイビアーを含むページをプレビューし、これを使用して Microsoft Access データベースにレコードを挿入しようとすると発生します。

フィールド名に疑問符(?)が含まれるデータベースフィールドにレコードを挿入しようとしている 可能性があります。疑問符は、Microsoft Access などの一部のデータベースエンジンでは特殊文字として扱われます。したがって、データベースのテーブル名やフィールド名に使用すべきではありません。

データベースシステムを開き、フィールド名から疑問符(?)を削除し、このフィールドを参照しているページのサーバービヘイビアーを更新します。

[[参照]80040e14—INSERT INTO ステートメントのシンタックスエラー]

このエラーは、サーバーが「レコードの挿入」サーバービヘイビアーを含むページを処理しようとすると発生します。

このエラーは通常、データベース内のフィールド、オブジェクト、または変数の名前に関する以下の問題の 1 つ以上が原因で発生します。

  • 予約語を名前として使用している。大半のデータベースには予約語がいくつかあります。例えば、「date」は予約語であり、データベース内の列名に使用することはできません。

  • 名前の中で特殊文字を使用している。例えば、以下の特殊文字があります。

    . / * : ! # & - ?

  • 名前の中でスペースを使用している。

    このエラーは、データベース内のオブジェクトに対して定義した入力マスクに、挿入されたデータが適合しない場合にも発生します。

    この問題を解決するには、データベース内で列名を指定するときに、「date」、「name」、「select」、「where」、「level」などの予約語を使用しないようにします。さらに、スペースと特殊文字は削除してください。

    一般的なデータベースシステムの予約語は、以下の Web ページを参照してください。

  • Microsoft Access(http://support.microsoft.com/default.aspx?scid=kb;ja-jp;Q209187

  • MySQL(http://dev.mysql.com/doc/mysql/en/reserved-words.html

[[参照]80040e21—Insert または Update の ODBC エラー]

このエラーは、サーバーが「レコードの更新」または「レコードの挿入」サーバービヘイビアーを含むページを処理しようとすると発生します。データベースでは、サーバービヘイビアーが実行しようとする更新または挿入操作を処理できません。

考えられるいくつかの原因と解決策を次に示します。

  • サーバービヘイビアーが、データベーステーブルのオートナンバーフィールドを更新するか、またはレコードをオートナンバーフィールドに挿入しようとしています。オートナンバーフィールドはデータベースシステムによって自動的に値が埋め込まれるため、外部的に値を埋め込もうとしても失敗します。

  • サーバービヘイビアーで更新または挿入しているデータが、そのデータベースフィールドに合わない間違った型です。例えば、データをブール(yes/no)型フィールドに挿入する、文字列を数値型フィールドに挿入する、表示書式が間違っている文字列を日付/時刻型フィールドに挿入するなどです。

[[参照]800a0bcd—BOF または EOF が true です]

このエラーは、動的ページを Web ブラウザーやライブビューで表示しようとすると発生します。

この問題は、空のレコードセットから抽出したデータをページに表示しようとすると発生します。この問題を解決するには、次のように「領域の表示」サーバービヘイビアーを、ページに表示する動的コンテンツに適用します。

  1. ページ上の動的コンテンツをハイライト表示します。

  2. サーバービヘイビアーパネルでプラス「+」ボタンをクリックし、領域の表示/レコードセットが空でない場合は領域を表示を選択します。

  3. 動的コンテンツの提供元のレコードセットを選択し、「OK」をクリックします。

  4. ページ上の動的コンテンツの各エレメントに対し、手順 1 ~ 3 を繰り返します。

MySQL エラーメッセージのトラブルシューティング

MySQL 4.1 への PHP データベース接続をテストすると、「Client does not support authentication protocol requested. Consider upgrading MySQL client」というエラーメッセージが表示されることがよくあります。

以前のバージョンの MySQL に戻すか、PHP 5 をインストールしていくつかの DLL(ダイナミックリンクライブラリ)をコピーする必要があります。詳細な手順については、PHP 開発環境の設定を参照してください。

ヘルプをすばやく簡単に入手

新規ユーザーの場合