回答:
まず、データベースのユーザー名とパスワードを確認します。この手順に進む前に、MySQLでデータベースを設定しておく必要があります。ユーザーを作成し、そのユーザーにアクセス権限を付与する必要があります。
次に、MySQLサーバーの設定を確認します。デフォルトのポート番号は3306です。ただし、システム管理者が別のポート番号に変更する場合があります。または、MAMP / WAMPなどのソフトウェアパッケージを使用している場合は、ポート番号が3306以外に設定されている可能性があります。これらの場合、ポート番号をホストフィールドに明示的に入力する必要があります。
これらがすべて正しいにもかかわらずデータベース接続エラーが発生する場合は、rootアカウントを使用してデータベースにアクセスしてみてください。ルートが機能する場合は、MySQL設定の権限に問題があることを意味します。サーバーにセキュリティリスクを追加するため、将来の本番環境への展開にrootアカウントを使用することはお勧めしません。
これはかなり古い質問ですが、最近遭遇したので、この回答が他の人の役に立つことを願っています。私の問題は、新しいWAMPインストールに加えて、古いバージョンのMagentoに帰着しました。MySQL 5.6.1以降、have_innodb変数は削除されました。ただし、Magentoインストーラーはその変数をチェックし、見つからない場合はエラーをスローします。実際に例外ログを確認すると、データベースサーバーがInnoDBをサポートしていないというエラーが表示されます。ただし、catchハンドラーでは、その例外のみをログに記録し、一般的な「データベース接続エラー」メッセージをスローします。
DBがInnoDBをサポートしていることが確実な場合、最も簡単な修正は、を編集しapp\code\core\Mage\Install\Model\Installer\Db.php
、checkDatabase
メソッドを見つけて、をチェックするtryブロックの最後の部分をコメント化することですhave_innodb
。通常、コアファイルの編集は推奨しませんが、これはインストーラーを機能させるためだけなので、十分に安全です。
app/code/core/Mage/Install/Model/Installer/Db.php
checkDatabase($data)
関数を見つけるこの関数の最後には、次のコードがあります。
Mage::throwException(Mage::helper('install')->__('Database connection error.'));
次のように変更します。
Mage::throwException(Mage::helper('install')->__($e->getMessage()));
Magentoをインストールするブラウザーに移動し、Continue
ボタンをクリックします
私の場合、次のエラーメッセージが表示されました。
データベースサーバーはInnoDBストレージエンジンをサポートしていません。
そこで、これを解決するために、同じcheckDatabase
関数でInnoDBチェックにコメントを付けました。
// check InnoDB support
/*if (!isset($variables['have_innodb']) || $variables['have_innodb'] != 'YES') {
Mage::throwException(Mage::helper('install')->__('Database server does not support the InnoDB storage engine.'));
}*/
その後、Magentoをインストールすることができました。
このコードを使用して、データベース接続エラーの種類の詳細を確認したり、ユーザー名とパスワードが正しいかどうかを確認したりできます
<?php
$mysqli=mysqli_connect("host","user","password","database name");
if(mysqli_connect_errno()){
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}else{
echo "Connection succesfull!";
}
?>
このスクリプトをphpファイルとして保存し、サーバーに配置します。出力は接続エラーになります。エラーがない場合、出力は「接続成功!」になります。「host」-ここに入力できます「localhost」、「user」-ここにデータベースのユーザー名を入力する必要があります、「password」-ここにデータベースのパスワードを入力する必要があります、「database name」-ここにデータベース名を入力する必要があります