微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 无法使用PDO连接到Google Cloud SQL

我是一个PHP新手.我正在尝试使用PHP和PDO连接到GAE.我尝试使用MysqL_connect()和MysqL_select_db()进行连接.我成功了.但是,当我尝试使用PDO进行连接时,出现错误

Connection Failed: sqlSTATE[HY000] [2002] No connection Could be made because the target machine actively refused it.

我的代码如下:

define('DBH_SOCKET', '/cloudsql/****:****');
define('DBH_NAME', 'wordpress_db');
define('DBH_USER', 'censored');
define('DBH_PASSWORD', 'censored');

$pdo_conn = "MysqL:unix_socket=".DBH_SOCKET.";dbname=".DBH_NAME.";charset=utf8";

try {
    $dbconn = new PDO($pdo_conn, DBH_USER, DBH_PASSWORD);
    $dbconn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}catch (PDOException $e){
    echo 'Connection Failed: ' . $e->getMessage();
}

echo "<br> var is ".$pdo_conn;

/*$conn = MysqL_connect(DBH_SOCKET, DBH_USER, DBH_PASSWORD);
if (!$conn)
    die('Connect error ('.MysqL_error());

$db_selected = MysqL_select_db(DBH_NAME, $conn);
if(!$db_selected)
    die('Cant use db: '.MysqL_error());*/

我究竟做错了什么?我在网上查看了一些教程,如http://webandphp.com/WorkingwithPHPontheGoogleCloudPlatform-166942.他们使用PHPStorm和JDBC驱动程序.但是,没有提到在官方谷歌教程中使用JDBC驱动程序.

解决方法:

在本地使用PDO进行连接时,您需要使用与本地MysqL服务器设置匹配的连接字符串,例如“MysqL:host = localhost; dbname = {db name}; charset = utf8”.

在GAE上运行时,您当前的连接字符串应该可以正常工作.您收到错误消息“无法找到套接字传输”unix“的事实 – 您是否忘记在配置PHP时启用它?”建议你可能错过了“unix_socket = / cloudsql / {project id}:{instance id}”部分.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐