web-dev-qa-db-ja.com

PDOexception error [データベース] .semaphoreは存在しません

drupal 7でウェブサイトを作成しました。ローカルホストでテストして正常に動作しました。ここで、メインサーバーでサイトをホストします。そのため、サイトディレクトリをサーバーにアップロードし、対応するデータベースを作成し、データベース名、ユーザー、パスワードでsettings.phpファイルを更新しました。

サイトのインストールプロセスが完了していることを願っています。サイトはサーバー内にデプロイされ、データベースが作成されます。サイトのアドレスを指定すると、PDO例外エラーが表示されます。

PDOException: SQLSTATE[42S02]: Base table or view not found: 1146 Table '[database].semaphore' doesn't exist: SELECT expire, value FROM {semaphore} WHERE name = :name; Array ( [:name] => variable_init ) in lock_may_be_available() (line 167 of /home/cpath/D-6.12/Apache2/htdocs/[htdocs]/includes/lock.inc).

drupalサイトを再インストールしてみましたが、うまくいきませんでした。

drupal.org に示されているすべての解決策を確認して試しましたが、問題を解決できませんでした。

あなたの貴重な提案に感謝します。

2
GIRI

この質問は重複しています。私はすでにこれを here で回答しています。これは、データベースエンジンがMyISAMからInnoDBに変換する必要があるためです。詳細については、そのリンクにアクセスしてください。

1
M a m a D

データベースエンジンを変更しても効果はありません。理解しておくべきことは、drupalセマフォです。このリンクをたどってください: https://www.drupal.org/project/flood_sem セマフォを理解したい場合あなたの場合、これはdrupalが依存するセマフォのこのテーブルが、移行またはインストール中の設定ミスのために存在しないことを意味します。drupalを実行する必要があります。 =インストールスクリプト。

ただし、セマフォテーブルはinnoDBでは実行されませんが、myISAMは、PHPプロセスがdrupalテーマフォーム、テーマテーブルなどのようなデータのサードパーティサービスを呼び出す)であるためです。

理解してほしい。

1

Drupal 7を開発サイトからラップトップの別の開発サイトに移動するときに、この同じエラーメッセージに遭遇しました。Drupalデータベースのテーブルを確認すると、完全なSQLダンプがインポートされていないことが判明しました( Adminer および「サーバーから」オプション、adminer.sqlを使用)。

Drupalダンプの終わり近くにある7つのデータベーステーブルをアルファベット順に検索します:user *ビュー*ウェブフォーム*ワークベンチ* xmlsitemap *すべてインポートされたかどうかを確認します。

次に、drush sql-cli < database.sqlを使用して、drush sql-dropですべてのテーブルを削除した後、SQLダンプをDrupalデータベースにインポートしました。

0
frederickjh