概要
新しいCraftサイトをローカルにインストールしようとすると、次のエラーが発生します。
CDbCommand failed to execute the SQL statement: SQLSTATE[3D000]: Invalid catalog name: 1046 No database selected. The SQL statement executed was: SHOW TABLES LIKE "craft_%"
ZIPをダウンロードしたばかりなので、問題のCraftのバージョンは、執筆時点で最新のものです(2.1.2563)。
障害点
少し掘り下げた後、エラーはの59行目が原因であるようです。 craft/app/etc/behaviors/AppBehavior.php
、具体的にはcraft()->db->tableExists()
への呼び出し:
$this->_isInstalled = (craft()->isConsole() || craft()->db->tableExists("info", false));
Ifそれは確かに事実です。これは、前述のcraft()->getComponent("db")
およびcraft()->getIsDbConnectionValid()
チェックに合格していることを意味します。これにより、原因について完全に困惑します。エラー。
環境情報
このサイトは、問題なく別のCraftサイトを問題なくホストしているローカルのVagrant VMで実行されています(実行されていません)。おそらく注目に値します。私はインストールしませんでしたこのサーバーで他のサイトを最初から作成します。
基本的なサーバーの仕様は次のとおりです。
- Ubuntu 12.04 LTS(64ビット)
- Apache 2.2.22
- PHP 5.4.30
データベースは確実に存在し、SequelProを使用して接続できます。
誰もがいます他にこれに遭遇しますか?
コメント
- このディスカッションを読んだことがありますか?
- やりました。 G +サイトでは、ヘルプを求めるときにSEを使用することを明示的に推奨しています。また、CPがないため、' CP経由でバグレポートを送信することはできません。また、私は'これがCraftのバグであることを示唆していません(もしそうなら、他の人は間違いなく今までにそれに遭遇したでしょう、そしてP & Tはおそらく数分で修正されたでしょう)、SEは議論に最も適切なフォーラムのようでした。
- これは'あまり答えではありません。 meaculpaとして。 VMを完全に破棄し、最初から(まったく同じプロビジョニングで)開始した後、問題は自然に解決しました。 'これが発生した理由については、特にVM構成に関して何も変更されていないため、まだ困惑していますが、今のところ、この不思議な解決策を喜んで受け入れます。問題の根本原因がわかった場合は、'実際の回答を投稿します。
- @StephenLewis I ' d先に進んで、とにかく答えとしてそれを投稿します。偶然に、他の誰かの状況を解決します。 "適切な"ソリューションを見つけた場合は、いつでも編集できます。
- @BradBell最初に試しました、しかしSEは私がさらに8時間待つと主張し、それからその厄介なベン・パリゼクが私の雷を盗んだ。私は'彼の答えを受け入れました。
答え
満足のいく答えではないかもしれません。完全を期すために、この質問はまったく同じVMを完全に破棄して再構築することで解決しました。
Twitterでの短い議論:
https://twitter.com/monooso/status/487831027327696896
オン/オフのテクニックに心からの愛情を持っています。私はそれがエレベーターを修理するのを見たことがあります!
コメント
- ベンが言ったこと…
回答
CraftとVagrantを使用しているときに、トラブルシューティング後に不快感を覚えるランダムなエラーがいくつか見られました。あなたと同じ結論に達し、破壊しました。マシンと再構築は問題を解決したように見えましたが、「私が借りていると感じた答えはまったく得られませんでした。
それで私はいくつか掘り下げました…
私は犯人を見つけましたVagrantの同期機能になります。 Vagrantが最初に登場したとき、主要な問題の1つは、フォルダーを多数のファイルやディレクトリ、別名CMSと同期することでした。直接リンクは見つかりませんが、仮想ボックスのゲスト追加ツールに問題がある人がいると思います。
あなたのvagrantマシンが本当に古いと言っているわけではないので、そうではない傾向があります。ただし、同期機能が破損したり、ディレクトリ/ファイルが同期されなかったりする場合があると言っています。
これに再び遭遇した場合は、ファイルを比較してください。ホストとゲストマシンに関する質問。特に目に見えない文字を探しています。
これも注目に値しますが、私はこれについての経験がありません。 Vagrantを使用すると、パフォーマンスの向上を主張するプロバイダーとしてVMWareを使用できます。 1つの欠点は、ライセンスに79ドルかかることですが、Vagrantの将来の開発に資金を提供することにもなります。 VMWareプロバイダーの詳細は次のとおりです。