Failed to connect to Google Cloud SQL using Slim framework in Google App Engine

I am using Slim framework to create api for my application. I can’t connect to Google Cloud SQL.

I submitted the error message below.

I use this in codeigniter without any problems. Can someone help me figure out how to fix this problem.

DB Code:

function getDB() {

$dbhost=":/cloudsql/projid:instancename";
$dbuser="root";
$dbpass="";
$dbname="dbname";

$dbConnection = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass); 
$dbConnection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return $dbConnection;
}

Error message

{"error":{"text":SQLSTATE[HY000] [2002] php_network_getaddresses: gethostbyname failed. errno=0}}

PS I do not encounter this problem on Localhost.

+4
source share
2 answers

The connection string PDOshould be used mysql:unix_socketinstead mysql:host.

https://cloud.google.com/appengine/docs/php/cloud-sql/

PDO_MySQL

$db = new pdo('mysql:unix_socket=/cloudsql/<your-project-id>:<your-instance-name>;dbname=<database-name>',
  'root',  // username
  ''       // password
  );
+4
source

This is how I changed my code

Of

function getDB() {

$dbhost=":/cloudsql/projid:instancename";
$dbuser="root"; 
$dbpass="";
$dbname="dbname";

$dbConnection = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass); 
$dbConnection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return $dbConnection;
}

For

function getDB() {

    $dbConnection = new pdo('mysql:unix_socket=/cloudsql/<your-project-id>:<your-instance-name>;dbname=<database-name>',
  'root',  // username
  ''       // password
  );
    $dbConnection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    return $dbConnection;
    }
0

Source: https://habr.com/ru/post/1618456/


All Articles