使用 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的主要内容,如果未能解决你的问题,请参考以下文章