跳到主要内容
版本:v3

LeanDB MySQL 使用指南

LeanDB MySQL 是云引擎提供的托管数据库,开发者可以在云引擎中使用 MySQL 客户端类库连接,访问完整的 MySQL 功能,更多其他托管数据库请查看 云引擎服务总览

创建和管理实例

开发者可以在 开发者中心 > 你的游戏 > 游戏服务 > 云服务 > 云引擎 > 数据库 > MySQL 页面创建和管理 LeanDB MySQL 实例。

创建实例

警告
LeanDB 实例一旦创建就会开始计费,如余额不足可能会导致账号因欠费被停用。

点击 创建实例 可在控制台中看到一些配置项:

  • 实例名称 用于在云引擎中通过环境变量引用到该 LeanDB 实例,在账户下需唯一。
  • 内存规格 目前提供 0.5GB1GB2GB4GB 几种,代表不同的运算能力,是计费的基础。
  • 存储空间 每个实例默认有 20G 的存储空间,可以选配 100G 或者 500G 的存储空间。

在调整好规格后,可以在控制台上看到当前规格的价格。

点击展开 LeanDB 计费详情

LeanDB 按天进行扣费,使用时间不足一天也按一天计费,每天扣除前一天的费用。LeanDB 基于开发者选择的实例规格进行计费,与实际用量无关(即使创建后未使用也会计费)。各规格的价格可以在创建 LeanDB 时或价格页面查看,扣费记录可在开发者中心的账单中查看。

危险
如账号欠费停用超过一个月,LeanDB 及其中的数据会被彻底删除。

MySQL 版本

目前 LeanDB 仅提供 MySQL 5.6 版本。

在线扩容

目前 LeanDB MySQL 不提供自助扩容的能力,如需扩容请提交工单联系我们的技术支持。

管理共享

可以使用控制台上的「管理共享」功能将 LeanDB 实例共享给其他应用,被共享的应用的 LeanDB 页面可能看到这个实例,相关的环境变量也会出现在其他应用的云引擎中。

在云引擎中使用

LeanDB 所在的应用的云引擎在部署时,会被注入几个包含 MySQL 连接信息的环境变量,包括:

  • MYSQL_HOST_<NAME>
  • MYSQL_PORT_<NAME>
  • MYSQL_ADMIN_USER_<NAME>
  • MYSQL_ADMIN_PASSWORD_<NAME>

其中 <NAME> 是你在创建 LeanDB 时为它指定的名字,如果你的 LeanDB 名为 MYRDB 的话,就会有名为 MYSQL_HOST_MYRDB 的环境变量(以及其他三个)。

在 Node.js 中你可以这样连接到 MySQL:

const mysql = require("mysql");
const Promise = require("bluebird");

const mysqlPool = Promise.promisifyAll(
mysql.createPool({
host: process.env["MYSQL_HOST_MYRDB"],
port: process.env["MYSQL_PORT_MYRDB"],
user: process.env["MYSQL_ADMIN_USER_MYRDB"],
password: process.env["MYSQL_ADMIN_PASSWORD_MYRDB"],
database: "test",
connectionLimit: 10,
})
);

mysqlPool
.queryAsync("SELECT 1 + 1 AS solution")
.then((rows) => {
console.log("The solution is", rows[0].solution);
})
.catch((err) => {
console.error(err);
});
  • 你需要运行 npm install --save mysql bluebird 来安装上面代码中用到的依赖
  • 更多的用法请参考 mysqljs/mysql 的文档

管理数据

除了在云引擎中通过编程的方式访问 LeanDB,我们还提供了用于进行管理、调试或一次性数据操作的方式。

在线管理面板

为方便开发和调试,我们为开发者提供了一个 Web 界面来对 MySQL 进行管理,你可以在控制台上点击「管理员面板」链接来访问这个 Web 界面。

开发者可以在这个页面上进行 SQL 查询和更新,创建和管理数据库,创建和管理索引等操作。

使用命令行工具连接

使用 命令行工具 CLI 提供的 tds db shell 可以打开一个连接到云端 LeanDB 的交互式 shell,用于执行查询:

$ tds db shell mysqldb
Welcome to the MySQL monitor.
Your MySQL connection id is 3450564
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> use test
Database changed
mysql> insert into users set name = 'leancloud';
Query OK, 1 row affected (0.04 sec)
mysql> select * from users;
+------+-----------+
| id | name |
+------+-----------+
| 1 | zhenzhen |
| 2 | leancloud |
+------+-----------+
2 rows in set (0.06 sec)

使用 tds db proxy 可以将云端 LeanDB 导出到本地的一个端口,供本地的程序或图形化的数据库客户端连接:

$ tds db proxy myredis
[INFO] Now, you can connect myredis via [redis-cli -h 127.0.0.1 -a hsdt9wIAuKcTZmpg -p 5678]

保持这个终端运行(不要关闭),就可以在本地的 5678 端口访问到云端的 LeanDB 了。你可以使用本地的 GUI 客户端来浏览操作云端的 LeanDB。在使用 tds up 进行开发测试时,也可以使用这个功能连接到云端的 LeanDB,设置环境变量(来自前面 tds db proxy 的输出):

export REDIS_URL_myredis=redis://default:hsdt9wIAuKcTZmpg@127.0.0.1:5678
备注
tds db 命令访问云端 LeanDB 实例仅用于本地开发和测试,连接会偶尔断开(部分客户端可以自动重连),请不要用于生产环境。