我已经设置了一个Google Cloud SQL,它运行良好,但是我在使用文档中给出的任何方法进行连接时都遇到了问题:
PDO
$db = new PDO('mysql:unix_socket=/cloudsql/hello-php:my-cloudsql-instance;charset=utf8','<username>','<password>');mysql_connect
$conn = mysql_connect(':/cloudsql/hello-php:my-cloudsql-instance', '<username>', '<password>');mysqli
$sql = new mysqli(null, '<username>', '<password>', null, null, '/cloudsql/hello-php:my-cloudsql-instance');我可以从MySQL工作台远程连接,但每当我尝试从网站使用上述功能时,我都会收到“在‘读取初始通信数据包’时丢失到MySQL服务器的连接”-但我通过授权的网络授予了Cloud SQL访问权限,并检查了给定的IP。我相信这与以下事实有关:我不是从Google App引擎连接,而是从我自己的开发数据库连接。如何从Google外部连接!?
更新:我已经用各种方法验证了我的IP,但是这个代码仍然不能工作。
$host="173.xxx.xx.xxx" <-- given from Google Developers COnsole
$db_username="root";
$db_pasword="xxxx"; <-- password I set after creating the instance
mysql_connect("$host", "$db_username", "$db_password")or die("cannot connect");此页显示以下错误:
警告: mysql_connect()函数.mysql- connect :在‘读取初始通信数据包’时丢失与MySQL服务器的连接,系统错误: 111 in /..../connect.php on line 5 cannot connect
当我尝试这个PDO连接时,我也得到一个错误:
$dsn = 'mysql:host=173.xxx.xx.xxx;dbname=database_name';
$username = 'root';
$password = 'xxxx';
$dbh = new PDO($dsn, $username, $password);未捕获异常'PDOException‘,并显示消息'SQLSTATEHY000无法连接到'173.xxx.xx.xxx’上的MySQL服务器(111)‘
发布于 2014-03-13 02:04:38
您不能使用unix套接字(仅适用于本地计算机)进行远程连接,您需要通过网络进行连接。
谷歌有一个brief description,你需要做什么来实现这一点,但基本上归结为你需要授权你想要连接的IP编号/范围,并使用实例的公共IP连接到数据库。
https://stackoverflow.com/questions/22359910
复制相似问题