以下是我的php脚本尝试连接到我的Google SQL云数据库时的sql连接代码
<?php
$con=mysqli_connect(":/cloudsql/projectID:google-cloud-instance","root","root","DATABASE");
// Check connection
if (mysqli_connect_errno())
{
echo "Oops! Something Must Have Went Wrong?: " . mysqli_connect_error()
;`
但是当我处理整个php脚本时,我收到以下错误:
"php_network_getaddresses: gethostbyname failed. errno=0Error:"
我是初学者,所以如果有人可以帮助我......
先谢谢你的帮助!
答案 0 :(得分:3)
您需要将云SQL实例名称作为'socket'参数传递给MySQLi constructor。例如
$instance_name = ":/cloudsql/projectID:google-cloud-instance";
$c = new mysqli(null, $username, $password, $database, 0, $instance_name);
如果您使用的是默认身份验证(应用程序级别身份验证),那么您可以传递root密码而无需密码进行连接。
$instance_name = ":/cloudsql/projectID:google-cloud-instance";
$c = new mysqli(null, "root", "", $database, 0, $instance_name);
答案 1 :(得分:0)
见https://developers.google.com/appengine/docs/php/cloud-sql/#PHP_Connecting_to_your_Cloud_SQL_instance。看起来你正在混合mysqli和mysql_connect语法。选择一个并按照文档中的示例进行操作。
答案 2 :(得分:0)
对于CloudSQL,建议您使用unix套接字。
如果您正在使用mysqli_connect,则可以在php.ini中指定默认套接字。
php.ini
mysqli.default_socket= '/cloudsql/CONNECTION_NAME'
$ db = mysqli_connect('localhost','USER','PASSWORD','DB');