mysql – 无法使用Google App Engine上的Slim框架连接到Google Cloud SQL

我正在使用Slim框架为我的应用程序构建api.我无法连接到Google Cloud SQL.

我在下面提供了错误消息.

我一直在codeigniter中使用它没有任何问题.有人可以帮我理解如何解决这个问题.

数据库代码:

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":{"text":SQLSTATE[HY000] [2002] php_network_getaddresses: gethostbyname failed. errno=0}}

附:我在Localhost上没有遇到这个问题.

解决方法:

你的PDO连接字符串应该使用mysql:unix_socket而不是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
  );
上一篇:Php Slim无法处理自定义errorHandler的错误


下一篇:【DB笔试面试389】在Oracle中,什么是绑定变量窥探?