如何建立与远程数据库的连接?

Posted

技术标签:

【中文标题】如何建立与远程数据库的连接?【英文标题】:How do I establish a connection to a remote database? 【发布时间】:2022-01-12 00:22:31 【问题描述】:

我只是想理解一般概念。

我在 Google Cloud Platform 上有一个 LAMP 堆栈虚拟机实例,并带有 mysql 数据库。

我已经通过 phpMyAdmin 网页界面创建了一个数据库。

我的 index.php 文件包含使用该数据库中数据的 php 代码。

重要提示:项目文件存储在我家(本地)的电脑上。

问题:我的项目中有一个 config.php 和 index.php 文件,但不知道我应该做什么来连接/“对话”到正在运行的数据库GCP 虚拟机实例。

我尝试将我的 config.php 中的“DBHOST”值更改为数据库主机名,但这显然没有做任何事情,因为我看不出有足够的信息来连接到数据库。

这是我的 config.php 文件

<?php
define('DBHOST', 'localhost');
define('DBNAME', 'business_covid');
define('DBUSER', 'testuser');
define('DBPASS', 'hidden');
define('DBCONNSTRING','mysql:dbname=business_covid;charset=utf8mb4');
?>

我是否需要比这更多的信息并且是一个正确配置的 config.php 文件来连接数据库?

【问题讨论】:

你没有说太多,我想如果你陈述了这些,那么你已经创建了数据库并且可以在 php 之外或使用 phpMyAdmin 连接它? 您是否尝试过使用 MySQLi 或 PDO? -> 推荐:w3schools.com/php/php_mysql_connect.asp 这是一个关于连接性的相当广泛的问题。您需要首先回答很多问题,例如,您要连接的远程数据库在哪里?数据库是否在您的机器上,并且您希望 GCP 上的 PHP 页面在本地连接到您的机器?或者您是否尝试在 GCP 上运行 Cloud SQL 实例并且想要连接到该实例?从广义上讲,您将更改为指向新数据库的 dbhost 变量。但根据数据库所在的位置,会有更多涉及的步骤。 @Shlomtzion 是的,数据库已创建,我通过 GCP 中提供的 phpMyAdmin Web 界面进行连接 @GabeWeiss 是的,我正在尝试连接 GCP 上的 Cloud LAMP 实例 【参考方案1】:

你可以试试这个方法吗?

$username = 'testuser';

$password = 'hidden';

$dbName = 'business_covid';

$dbHost = "127.0.0.1";

// Connect using TCP

$dsn = sprintf('mysql:dbname=%s;host=%s', $dbName, $dbHost);

// Connect to the database

$conn = new PDO($dsn, $username, $password, $connConfig);

查看链接了解更多信息: https://cloud.google.com/sql/docs/mysql/connect-run#php

【讨论】:

您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。 查看链接了解更多信息:cloud.google.com/sql/docs/mysql/connect-run#php

以上是关于如何建立与远程数据库的连接?的主要内容,如果未能解决你的问题,请参考以下文章

无法与 PyMySQL 建立远程连接(pymysql.err.InternalError:数据包序列号错误)

客户端怎么连接服务器

电脑如何和虚拟机建立连接

远程RPC调用实现过程

如何在VBA中用ADO连接远程的access数据库

git本地仓库与远程仓库建立连接