跳到主要内容

LeanDB MySQL 使用指南

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

创建和管理实例​

开发者可以在 云服务控制台 > 云引擎 > 数据库 > MySQL 页面创建和管理 LeanDB MySQL 实例。

创建实例​

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

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

  • 实例名称 用于在云引擎中通过环境变量引用到该 LeanDB 实例,在账户下需唯一。
  • 内存规格 目前提供 0.5GB、1GB、2GB、4GB 几种,代表不同的运算能力,是计费的基础。
  • 存储空间 每个实例默认有 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 提供的 lean db shell 可以打开一个连接到云端 LeanDB 的交互式 shell,用于执行查询:

$ lean 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)

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

$ lean 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。在使用 lean up 进行开发测试时,也可以使用这个功能连接到云端的 LeanDB,设置环境变量(来自前面 lean db proxy 的输出):

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