[SAE]SAE MySQL跨应用授权

在 SAE(新浪云计算)收费越来越贵的今天,节约成本变得越来越重要。2016 年三月开始,共享型 MySQL 也开始收费,这时多个应用共享一个 MySQL 是节约的一种重要方式。

实现多个应用共享一个 MySQL 的步骤

  1. 假设有多个应用(APP1, APP2, APP3):其中共享型 MySQL 仅 APP1 保留,APP2 和 APP3 使用 APP1 的 MySQL。
  2. 导出 APP2 和 APP3 的 MySQL 作为备份,然后删除 APP2 和 APP3 的 MySQL,这样 APP2 和 3 的 MySQL 相当于没有初始化即不会再被扣费。
  3. 向 APP1 中的 MySQL 导入 APP2 和 3 的数据库文件(*.sql),导入之前注意表名别冲突。
  4. 选择 APP1 的 MySQL,点击跨应用授权可选择本帐号应用或其他帐号应用,此处授权到 APP2、APP3 应用。
  5. 编写脚本,显示本应用 APP1 的 MySQL 信息,供授权应用 APP2 和 APP3 使用(此处会泄露数据库的相关信息,请谨慎操作并及时删除)。

相关代码:

1
2
3
4
5
6
7
8
9
<?php
header("Content-type:text/html;charset=utf-8");
echo "用户名   :".SAE_MYSQL_USER."<br>";
echo "密码     :".SAE_MYSQL_PASS."<br>";
echo "主库域名:".SAE_MYSQL_HOST_M."<br>";
echo "从库域名:".SAE_MYSQL_HOST_S."<br>";
echo "端口     :".SAE_MYSQL_PORT."<br>";
echo "数据库名:".SAE_MYSQL_DB."<br>";
?>
  1. 调用脚本:可以在页面打印出 APP1 应用 MySQL 信息,在你的其他应用(比如 APP2 和 APP3)中使用刚刚打印出的 MySQL 信息来连接数据库。

注意事项

  • 安全性:由于脚本会暴露数据库的用户名、密码等敏感信息,请确保在使用完后及时删除该脚本,避免信息泄露。
  • 表名冲突:在导入 APP2 和 APP3 的数据库文件到 APP1 的 MySQL 时,确保表名不冲突。如果有冲突,可以考虑在导入前修改表名。
  • 授权管理:在 SAE 管理平台上进行跨应用授权时,确保只授权必要的应用,避免不必要的权限暴露。

通过这些步骤,可以有效地节约 SAE MySQL 的使用成本,同时确保多个应用能够正常访问共享的数据库。

Licensed under CC BY-NC-SA 4.0