web-dev-qa-db-ja.com

Drushデータベース接続の問題

開発サーバーでDrushを適切に動作させるのに困っています。そして、主な理由は、サイトデータベースに接続できないことに関連していると確信しています。

私のセットアップは次のとおりです:

  • ウェブサイト:Drupal 7(7.23)私の個人用(Synology)NASで実行しているウェブサイト。私のLANにあります。
  • PC OS:Windows8
  • Drush:Windowsインストーラーを使用(インストール済みバージョン:5.8)。

Drushがインストールされ、「部分的に」機能しています。つまり、いくつかの一般的なDrushコマンド(drushステータスなど)を実行できます。モジュールをダウンロードします。しかし、例えばモジュールを有効にするとエラーが発生します。キャッシュをクリアするためのオプションなどが少なくなっています。

私が得るように、Drush(構成)に何か問題があることを知っています。次の警告メッセージ:

PDO :: ___ construct():[2002]ターゲットマシンがアクティブになっているため(tcp://127.0.0.1:3306経由で接続しようとしているため)、connection.inc 517は接続できませんでした。

ステータスの概要を取得したい場合、次のようになります。

 Z:\ CMV-OpWeg> drush status 
 PDO :: __ construct():[2002] [warning] 
ターゲットマシンがアクティブなため、接続を確立できませんでした( tcp://127.0.0.1:3306を介して接続)
 environment.inc:517
 Drupal version:7.23 
 Site URI:http: //default
データベースドライバー:mysql 
データベースホスト名:127.0.0.1 
データベースユーザー名:root 
データベース名:cmv-opweg 
デフォルトのテーマ:garland 
管理テーマ:garland 
 PHP configuration:D:\ System Utilities\Drush\Php\php.ini 
 Drushバージョン:5.8 
 Drush構成:
 Drushエイリアスファイル:C:\ Users\BD/.drush/aliases.drushrc.php 
 Drupal root:Z :/ CMV-OpWeg 
サイトパス:sites/default 
ファイルディレクターyパス:sites/default/files 

そして、いくつかのDrushコマンドでエラー:

DrushはDrupalデータベースを起動(ブートストラップ)できませんでした。

Drushをインストールする前の準備から、上記のコードで、いくつかの調査を行っているときに参照しているステータス概要に3つの異なる行が欠けていることに気付きました。

データベース:接続済み
 Drupal bootstrap:Successful 
 Drupalユーザー:匿名

これが、データベース接続に問題があると私が思うことを述べてこの投稿を始めた理由です。ただし、私のDrupalサイトは正常に機能するため、これは理解できません。つまり、「settings.php」の設定​​は問題ないはずです。

これらの指針は、解決策を見つけるための十分な手掛かりを与えるべきだと考える人もいるかもしれません。私は「The Definitive Guide to Drupal 7 "by Greg Anderson」のDrushの章を通過しました。過去数週間、Drushで見つけたものをインターネットで検索して、Drushがシステムで適切に機能するようにしました。そして、はい、たくさんのチュートリアルが見つかります。私のような問題を抱えている人々からの投稿がたくさんあります(しかし正確ではありませんが、それでも動作させることができなかったか、表示されていません。

よく思いついたのは、「settings.php」の「ホスト」設定を「localhost」から「127.0.0.1。」に変更することです。上記のステータスの概要)。 「ポート」設定を「3306」に指定するための参照がいくつかありましたが、これもテストしましたが、成功しませんでした。

今、私はおそらく私の知識や経験の欠如が私の問題の明白な理由を監督しているかもしれない理由であるという事実を排除することはできません。私は(Drupalを使用して)サイトを構築するのがかなり新しいです。過去6か月間はかなり急勾配でしたDrupal学習曲線。私はDrupalコーディングをせずにサイトの構築を開始しました。Drushを2、3回見つけて、数か月前にインストールしましたが、機能しないため、そのままにしておきました。私のサイトにテーマを設定し、数か月前に作成したOmega 3サブテーマの使用を開始したいと考えていました(まだ実際には機能していません)。新しいOmega 4テーマがリリースされたため、Omega 3をスキップしてOmega 4から開始することは理にかなっています。サブテーマを作成するために、手動プロセスを説明する適切なドキュメントがないため、Drushを動作させる必要があります(私はそれを要求しましたが)。このように、Drushを動作させる必要があります。 、私がそれについて読んだすべてが私が本当にそれを使い始める必要があることを私に教えてくれるので、私は誰でも「聞く」の助けを使うことができました。

私が言及しなければならないのは、私がLinux、Apache、phpの専門家ではなく、コマンドラインで作業することは役に立たないと思います。私が読んだインターネット投稿の多くから、私は多くの背景知識を欠いていると結論づけなければなりません。しかし、私はまだあきらめず、学びたいと思っています。 Drupalができることの魅力は大きく、ほとんどの場合、私は乗車を楽しんでいます...

2
Ben

あなたのコメントから:

私がまだ試していないのは、接続パラメータを含むエイリアスを使用することです
しかし、Drushはすでにその情報を含む私のsettings.phpファイルを読み取ることができるはずなので、それは必要ではありません。

実際、Drushがsettings.phpファイルに接続できないのは当然のことです。それを説明してみましょう。

MySQLサーバーのホスト名としてsettings.php127.0.0.1またはlocalhostが含まれているとのことですが、これは、NASを含むすべてのコンピューターまたはデバイスのmyselfを意味する特別なアドレスです。

Drupal Webサイトが独自のWebサーバーでNASで実行され、127.0.0.1に接続すると、NAS上のMySQLサーバーに接続します。

一方、DrushをPCで実行して127.0.0.1に接続しようとすると、PCが指定されます。そのため、MySQLがPCではなくNASにインストールされているため、前述のエラーで接続が失敗します。

このセットアップの特別な点は、DrushをWebサーバー(NAS)とは異なるマシン(PC)にインストールすることです。したがって、DrupalをPCの観点からリモートインストールとして参照することをお勧めします。

ただし、MySQLがローカルネットワークのインターフェースをリッスンするように構成されていれば、おそらくもっと簡単な方法があります。 NASがローカルネットワークのアドレス、たとえば192.168.x.yにあった場合、NAS自体とPCの両方がこのアドレスを参照できます。 settings.phpの場合、WebサーバーからもDrushからも同じように機能します。

1
Daniel Vérité

NASのコンピューティングリソースが不足しているため、データベース接続が停止しているか、機能が低下しています。開発作業には、次の無料クラウドソリューションのいずれかを使用することをお勧めします。

  1. https://www.openshift.com/videos/openshift-express-getting-started-with-drupal
  2. http://www.turnkeylinux.org/drupal7 (ワンクリックでAmazonの無料枠を使用).
  3. https://www.acquia.com/products-services/dev-desktop Windowsでのローカル開発の場合

上記の両方には、Drushを含む完全なdrupal開発環境がプリインストールされています。

0
MyPalDrupal