内からDBに接続しようとしたときに、私は次のようDockerfileといくつかの問題を抱えている、「接続が拒否されました」データベースが、次のエラーを返して:ここでははドッカーコンテナ
HTTP/1.1 500 Internal Server Error Content-Type: text/html {"error": {"text": SQLSTATE[HY000] [2002] Connection refused}
は、例外が発生したコードです:
// Instantiate a database connection
$container['db'] = function ($c) {
try {
$db = $c['settings']['db'];
$pdo = new PDO("mysql:host=" . $db['host'], $db['user'], $db['pass']);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
//Create database if not exists
$dbname = "`".str_replace("`","``",$db['dbname'])."`";
$pdo->query("CREATE DATABASE IF NOT EXISTS $dbname");
$pdo->query("use $dbname");
//Create tables if not exists
$pdo->query(
"CREATE TABLE IF NOT EXISTS `Assets` (
`id` INT AUTO_INCREMENT NOT NULL,
`first_property` varchar(50),
`second_property` varchar(50),
PRIMARY KEY (`id`))"
);
return $pdo;
} catch (PDOException $e) {
return $c['response']
->withStatus(500)
->withHeader('Content-Type', 'text/html')
->write('{"error": {"text": ' . $e->getMessage() . '}');
}
};
誰かが問題の可能性があることを知っていますか?
ありがとうございます!
は、PHPコードと同じコンテナにあるデータベースですか? –
^あなたのデータベースはどこですか? –
私は何も持っていません。私はコードが1つではない場合、それを作成すると思った。あなたが私に1つを含める必要があるかどうか、もしそうならばどこにどのように教えてもらえますか?ありがとうございました:) – UrmLmn