我一直在嘗試過去2天從appengine連接到cloudsql,我能夠通過IP連接從一個Linux的網絡服務器,但不能從具有相同的應用程序引擎建立。無法連接到谷歌雲從應用引擎
我的連接字符串如下: 請注意實際的appid替換還有DBNAME
app.yaml中
env_variables:
MYSQL_DSN: mysql:unix_socket=/cloudsql/appid:us-central1:sql-instance-1;dbname=dbname
MYSQL_USER: root
MYSQL_PASSWORD: ''
在phpfile
$dsn = getenv('MYSQL_DSN');
$user = getenv('MYSQL_USER');
$password = getenv('MYSQL_PASSWORD');
if (!isset($dsn, $user) || false === $password) {
throw new Exception('Set MYSQL_DSN, MYSQL_USER, and MYSQL_PASSWORD environment variables');
}
$conn = new PDO($dsn, $user, $password);
的以上是從https://cloud.google.com/appengine/docs/standard/php/cloud-sql/ 獲得我已經嘗試使用密碼,並沒有使用密碼。我已經嘗試了用戶名root,作爲用戶名與密碼和用戶名沒有。
我使用的第二代設置,和Flex PHP的環境中,我不斷收到錯誤如下:
短錯誤
SQLSTATE[HY000] [2002] No such file or directory
完整的錯誤
Fatal error: Uncaught PDOException: SQLSTATE[HY000] [2002] No such file or directory in /app/dbconn.php:12 Stack trace: #0 /app/dbconn.php(12): PDO->__construct('mysql:unix_sock...', 'root', '') #1 /app/api.user.php(2): include_once('/app/dbconn.php') #2 {main} thrown in /app/dbconn.php on line 12
甚感現在沒有想法。請注意,sql和app都在同一個項目中。
你能設法解決這個問題嗎?我得到了同樣的一個。 –
@IlkerBaltaci我從來沒有找到解決方案,而是最終使用他們的虛擬機/計算引擎。 – Shaun