带有 php 的谷歌云 sql

Ela*_*lad 0 google-cloud-sql google-compute-engine

我在用 php 连接我的数据库云 sql 时遇到问题。我已经尝试了所有可能的连接方式(pdo、mysqli 和 mysql),但都没有奏效。

我已经为 can sql 实例放置了一个 IPv4,并在允许的网络部分授权了计算引擎 IP。当我尝试从计算引擎连接时

mysql --host=cloud_sql_IP --user=my_user --password
Run Code Online (Sandbox Code Playgroud)

它正在工作,我能够看到表格。

在 php 端,我把这个代码:

    $db = mysql_connect(<CLOUD_SQL_IPV4>, 'root', '');
    if (!$db){
       die('Connect Error (' . mysql_error());
    }
Run Code Online (Sandbox Code Playgroud)

我收到“连接错误(权限被拒绝)”

当我尝试这种方式时:

$conn = mysql_connect(":/cloudsql/<COMPUTE_INSTANCE>:<DB>", "root", "");
if (!$conn) {
    die('Connect Error (' . mysql_error());
}
Run Code Online (Sandbox Code Playgroud)

我得到:“连接错误(没有这样的文件或目录”

我还应该做什么?

谢谢!

Ela*_*lad 6

深入研究 2 天后,我设法连接了云数据库

首先运行这个以获得权限修复(centos)

setsebool httpd_can_network_connect=1
Run Code Online (Sandbox Code Playgroud)

对于 php,它应该这样写:

new mysqli(
    <IP_V4>, // host
    'root', // username
    '',     // password
    <DB_NAME>, // database name
    null,
    '/cloudsql/<GCE_INSTANCE>:<DB>'
);
Run Code Online (Sandbox Code Playgroud)