2014-11-14 67 views
3

我想我的應用程序(從App引擎)連接到Cloud SQL的,我必須失去了一些東西:從App Engine的連接到雲SQL不工作

  • 我加了一個雲SQL實例
  • 我授權我的應用程序

  • 我通過phpMyAdmin的添加了一個TEST_DB數據庫(授權我的IP,並連接到做到這一點),測試用戶&密碼工作

  • 最後I D用以下行表示應用(測試連接):

$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或空(即他們沒有工作),幫助嗎?
(如果有一個解決方案,讓我們請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?

回答

1

基於https://cloud.google.com/appengine/docs/php/cloud-sql/,假設你已經創建了用戶「TEST_DB」,密碼爲「TEST_DB」訪問數據庫「TEST_DB」,你應該做的

mysqli_real_connect($dbh, null, 'test_db', 'test_db', 'test_db', null, '/cloudsql/<your-project-id>:<your-instance-name>'); 
+0

也不起作用。我認爲現在要解決的主要錯誤是我在問題底部提到的錯誤:「無法找到套接字傳輸」unix「 - 您是否忘記在配置PHP時啓用它?」 – Asaf 2014-11-19 13:27:20

+0

當您使用此連接進行連接時,錯誤消息是什麼?我還假設你已經在CloudSQL中創建了相應的用戶和數據庫? – Mars 2014-11-19 19:45:31

+0

這是我現在得到的:「訪問拒絕用戶'test_db'@'localhost'(使用密碼:YES)」,這是沒有意義的,因爲我能夠使用phpmyadmin連接(通過IP地址,但我' d寧願使用unix socket,因爲它更安全很明顯..) – Asaf 2014-11-20 08:40:45