使用 PHP 连接到 App Engine 中的本地 MySQL

Posted

技术标签:

【中文标题】使用 PHP 连接到 App Engine 中的本地 MySQL【英文标题】:Connect to local MySQL in App Engine with PHP 【发布时间】:2013-05-22 11:47:37 【问题描述】:

我正在测试新的 App Engine php SDK(开发环境),但在连接到本地 mysql 时遇到问题。

我用必要的参数启动 dev_appserver.py,告诉它我的 MySQL 在哪里 (--mysql_host=localhost --mysql_port=3306 --mysql_user=admin --mysql_password=password 但仍然无法使用PHP 脚本中的 mysqli_connect 命令。

我在某处读到,使用这些命令,甚至应该路由与 cloudSQL 的连接...

有什么建议接下来要看什么吗?

【问题讨论】:

【参考方案1】:

如果您在开发环境中测试它,那么您现在可以简单地忽略 cloudSQL 路由。

我认为您需要执行以下操作验证您可以使用简单的 MySQL 连接功能进行连接,然后确保已安装 MySQLi(因为未包含 Google App Engine 的 Web 安装步骤)

$link = mysql_connect('localhost', 'admin', 'password');
if(!$link) 
    die('Could not connect: ' . mysql_error());
else
   mysql_close($link);
   echo 'Connected successfully and everything seems fine .... Checking MySQLi Installation<br><br>';
   if(function_exists('mysqli_connect')) 
     echo 'MySQLi is Installed :S';
   else
     echo 'Oops. You need to reconfigure Your PHP Installation to Include MySQLi';
   

如果您收到如下回复:

连接成功,一切正常....检查 MySQLi 安装

哎呀。您需要重新配置 PHP 安装以包含 MySQLi

那么您可能需要重新运行配置以启用 MySQLi 和 PDO 驱动程序

./configure --prefix=$PWD/installdir --enable-bcmath --with-mysql --with-pdo-mysql --with-mysqli

【讨论】:

【参考方案2】:

您的开发服务器可能正在错误的位置查找套接字文件。查找文件 mysql.sock

常见的地方有:

/Applications/MAMP/tmp/mysql/mysql.sock
or /tmp/mysql.sock
or /var/mysql/mysql.sock

如果您不想移动任何东西或直接连接到套接字,请设置符号链接:

$con = mysql_connect(':/Applications/MAMP/tmp/mysql/mysql.sock', 'root', '1234');

【讨论】:

以上是关于使用 PHP 连接到 App Engine 中的本地 MySQL的主要内容,如果未能解决你的问题,请参考以下文章

无法通过 unix 套接字从托管在不同 GCP 项目中的 App Engine 柔性环境连接到 Cloud SQL

如何使用App Engine上的Python标准环境连接到Cloud SQL上的Postgres

App Engine Java Servlet 未连接到 Cloud SQL

无法从在具有自定义运行时的 Docker 中运行 .NET Core 应用程序的 App Engine 连接到 Google Cloud SQL 中的 postgres

使用 TCP 的 App Engine PostgreSQL 连接错误

连接到 GCP App Engine 上的 SocketIO 服务器时如何使用域而不是公共 IP?