【问题标题】:Unable to connect to SQL instance Database on Google Cloud无法连接到 Google Cloud 上的 SQL 实例数据库
【发布时间】:2018-07-18 16:37:48
【问题描述】:
谁能帮助我在 Google Cloud App Engine 上部署 Codeigniter 应用程序?看来我需要在某个地方定义<project-id>:<region>:<instance-name> mysqli_connect 才能工作(根据这个视频教程,我想这就是问题所在 - https://www.youtube.com/watch?v=QIWBxx0mE00).. 但我不知道在哪里.. 或者我需要修改mysqli_driver?有人吗?
【问题讨论】:
标签:
php
codeigniter
google-app-engine
google-cloud-platform
google-cloud-sql
【解决方案1】:
首先,请避免发布带有堆栈跟踪的图片,而是在原始帖子中发布错误的完整堆栈跟踪。
您使用的是 App Engine 柔性版还是标准版?另外,您希望使用第二代 Cloud SQL 实例还是第一代实例?您是将应用程序部署到 GAE 还是尝试在本地运行?
如果您希望将应用程序部署到 Google App Engine 并且您使用的是第二代 Cloud SQL 实例,那么我建议您按照为 GAE Standard 和 @987654322 提供的官方文档设置与 Cloud SQL 的连接@ 应用。
【解决方案2】:
我使用的是带有第二代 MySQL 实例的 App Engine Standard。我也尝试了第一代,正如我在此处或其他地方的其他帖子中看到的那样,但这并没有解决问题。
如果我想使用 mysql 并正确连接到云 sql 实例,我的实际问题是如何在 Codeigniter 应用程序中定义套接字。那么答案是您需要在配置中使用 PDO 作为 DB 驱动程序,而不是使用 MySQL/Mysqli。
我尝试的第一个是:
'hostname' => NULL,
'socket' =>'/cloudsql/<project-id>:<region>:<instance-name>',
'dbdriver' => 'mysqli',
但这是真正有效的:
'dsn' => 'mysqli:unix_socket=/cloudsql/<project-id>:<region>:<instance-name>;dbname=<DB_NAME>',
'hostname' => NULL,
'dbdriver' => 'pdo',
还是谢谢!