我一直在尝试过去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