【发布时间】:2015-01-12 01:12:26
【问题描述】:
我正在尝试将我的应用(来自 App Engine)连接到 Cloud SQL,但我一定遗漏了一些东西:
- 我添加了一个 Cloud SQL 实例
我已授权我的应用程序
我通过 PhpMyAdmin 添加了一个 test_db 数据库(授权我的 IP 并连接到这样做),测试用户和密码是否有效
- 最后我部署了一个包含以下几行的应用程序(用于测试连接):
.
$dbh = mysqli_init();
var_dump( mysqli_real_connect( $dbh, ':/cloudsql/my_project_id:database_name', 'test_db', 'test_db', 'test_db' ) );
var_dump( mysqli_real_connect( $dbh, 'localhost:/cloudsql/my_project_id:database_name', 'test_db', 'test_db', 'test_db' ) );
var_dump( mysqli_real_connect( $dbh, 'test_db', 'test_db', 'test_db', ':/cloudsql/my_project_id:database_name', 3306 ) );
var_dump( mysqli_real_connect( $dbh, 'test_db', 'test_db', 'test_db', 'localhost:/cloudsql/my_project_id:database_name', 3306 ) );
var_dump( mysqli_real_connect( $dbh, ':/cloudsql/my_project_id:database_name', 'test_db', 'test_db', null, 3306 ) );
var_dump( mysqli_real_connect( $dbh, 'localhost:/cloudsql/my_project_id:database_name', 'test_db', 'test_db', null, 3306 ) );
var_dump( mysqli_real_connect( $dbh, null, 'test_db', 'test_db', 'test_db', ':/cloudsql/my_project_id:database_name', 3306 ) );
var_dump( mysqli_real_connect( $dbh, 'localhost', 'test_db', 'test_db', 'test_db', ':/cloudsql/my_project_id:database_name', 3306 ) );
var_dump( mysqli_real_connect( $dbh, null, 'test_db', 'test_db', 'test_db', ':/cloudsql/my_project_id:database_name' ) );
var_dump( mysqli_real_connect( $dbh, 'localhost', 'test_db', 'test_db', 'test_db', ':/cloudsql/my_project_id:database_name' ) );
var_dump( $dbh->connect_error );
如果这些行返回 False 或 Null(即它们都不起作用),有帮助吗?
(如果有解决方案,请使用 mysqli_real_connect() 保留它,因为这是 WordPress 使用的)
更新:新错误
目前我正在使用这条线:
var_dump( mysqli_real_connect( $dbh, 'localhost', 'test_db', 'test_db', 'test_db', 3306, 'mysql:unix_socket=/cloudsql/my_project_id:database_name' ) );
我收到以下错误
无法找到套接字传输“unix” - 您是否忘记启用 是你配置PHP的时候吗?
【问题讨论】:
标签: php google-app-engine