数据库连接

MemFire Cloud 提供了几种连接Postgres数据库的方式:

  1. 直接连接:使用Postgres标准连接系统直接与数据库进行连接和交互。
  2. 无服务器API连接:使用无服务器API以编程方式来访问数据库。

直接连接

每个MemFire Cloud 应用内置一个完整的Postgres数据库,你可以使用任何支持Postgres的工具来连接到数据库。你可以在控制台内的数据库设置中获取连接信息:

  1. 来到左侧菜单栏的 设置部分
  2. 点击数据库
  3. 启用数据库直连
  4. 找到应用的连接信息

步骤

白名单

MemFire Cloud内置白名单功能,开启白名单后,只允许白名单内的IP地址段访问你的数据库。关闭白名单后,访问你数据库的IP地址不受限制,即任何IP地址只要有连接信息都可以与你的数据库进行直连。 在进行白名单配置时,要遵循CIDR规则。MemFire Cloud中白名单功能 默认是关闭的,需用户手动开启。

白名单

无服务器API连接#

MemFire Cloud 提供了自动更新API,极大简化了操作数据库中数据的步骤(包括数据查询、插入、更新等等)。同时我们也提供了一些不同类型的API来满足你的业务需求。

  • REST:通过REST接口与你的数据库进行交互。
  • GraphQL:通过GraphQL接口与你的数据库互动。
  • Realtime:通过websockets监听数据库变化。

案例教程

案例1 使用Navicat连接#

Navicat是一个用于管理Postgres数据库的图形用户界面(GUI)工具。你可以使用它连接到你的数据库:

步骤1

新建一个连接,选择:PostgreSQL Navicat1

步骤2

在你的MemFire Cloud控制台中找到“连接信息”,并添加此处。点击“测试连接”,若返回成功弹窗则表明连接建立成功。 Navicat1

连接成功后即可管理和查询你的数据。 Navicat结果

案例2 使用python连接#

配置:本例中选用pycharm编辑器,python3.8版本。

步骤1

在 MemFire Cloud 控制台中启用数据库直连,找到python的“连接字符串”。 python字符串

步骤2

在pycharm编辑器中,导入第三方库 psycopg2psycopg2是一个流行的Python库,用于连接和操作PostgreSQL数据库。如果尚未安装此库,请通过以下命令进行安装:

pip install psycopg2

或者在pycharm的 Python Interpreter中进行设置,步骤如下:

python库1 python库2

步骤3

完成psycopg2的安装后,将连接字符串中的[YOUR-PASSWORD]替换为数据库的实际密码。[YOUR-HOST]替换为数据库的主机地址。 [USER-NAME]替换为你的用户名。端口号默认为:10010,数据库名称默认为:postgres。建立与MemFire Cloud应用数据库连接,然后对数据库进行操作。

代码如下:

1import psycopg2
2
3# 定义连接字符串
4connection_string = "user=[USER-NAME] password=[YOUR-PASSWORD] host=[YOUR-HOST] port=5432 dbname=postgres"
5
6try:
7    # 连接到数据库
8    connection = psycopg2.connect(connection_string)
9
10    # 创建一个游标对象
11    cursor = connection.cursor()
12
13    # 执行SQL查询或其他数据库操作
14    # 注:city是本次数据库中想要操作的表名
15    cursor.execute("SELECT * FROM city;")
16    rows = cursor.fetchall()
17
18    # 输出查询结果
19    for row in rows:
20        print(row)
21
22    # 关闭游标和连接
23    cursor.close()
24    connection.close()
25
26except psycopg2.Error as error:
27    print("Error connecting to the database:", error)

这段代码返回数据库中表“city”的全部内容。可以看出,返回结果与表中数据一致。

python结果 本地表

:如编译不通过,尝试将python连接字符串中参数database改为dbname。因为psycopg2库并不认可database这个参数

案例3 使用Nodejs连接#

配置:本例中选用VScode编辑器,node.js版本v16.19.0

步骤1

在 MemFire Cloud 控制台中启用数据库直连,找到nodejs的“连接字符串”。 nodejs字符串

步骤2

确保你的系统上已经安装了Node.js和npm。创建一个新的Node.js项目或使用现有项目。进入项目目录并安装pg库,这是Node.js中常用的PostgreSQL客户端。

npm install pg

步骤3

创建一个JavaScript文件(本例app.js)并在文件开头导入pg库,使用连接字符串建立数据库连接: 将连接字符串中的[YOUR-PASSWORD]替换为数据库的实际密码。[YOUR-HOST]替换为数据库的主机地址。[USER-NAME]替换为你的用户名。端口号默认为:10010,数据库名称默认为:postgres。然后对数据库进行操作。

代码如下:

1const { Client } = require('pg');
2
3const connectionString = 'postgresql://[USER-NAME]:[YOUR-PASSWORD]@[YOUR-HOST]:5432/postgres';
4
5const client = new Client({
6  connectionString: connectionString,
7});
8
9// 连接数据库
10client.connect()
11  .then(() => {
12    console.log('已连接到数据库');
13    // 现在你可以使用 'client' 对象执行查询
14  })
15  .catch((err) => {
16    console.error('连接数据库出错', err);
17  });
18
19//查询数据库
20  client.query('SELECT * FROM city;')
21  .then((result) => {
22    console.log('查询结果:', result.rows);
23  })
24  .catch((err) => {
25    console.error('执行查询出错:', err);
26  });

app.js 文件所在的目录下执行 node app.js,运行app.js文件,可得到返回结果

node app.js

这段代码返回数据库中表“city”的全部内容。可以看出,返回结果与表中数据一致。

nodejs结果 本地表