我正在使用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
);