2

完整记录使用Navicat Premium管理SAE共享型Mysql数据库的全过程。借鉴了包括博客流水天心、SAE新浪博客等网上的多篇文章。

SAE的Mysql数据库默认使用phpMyAdmin进行管理,截止到本文撰写时间,SAE的phpMyAdmin仍然停留在3.3.81版本,体验上比较差,且每次都需要登录SAE控制台、输入安全密码才能进入数据库管理,比较麻烦。SAE官方提供的VPN隧道不知是否由于网络问题,经常出现连接不到数据库的情况,而且每次都需要使用OpenVPN进行登录,输入用户名、密码也是一个麻烦的事情。本文使用Navicat的http通道功能,方便快捷的管理SAE共享型Mysql数据库。本文使用的Navicat是Navicat Premium 11.2.15 for windows版本,根据一般经验,Navicat Premium 11.2+版本均可使用,Navicat for Mysql经稍微修改也可以使用。

1、查找SAE Mysql数据库的数据库名、用户名和密码,记录下来,后面使用。

clipboard.png

clipboard.png

1、 安装Navicat后,在安装根目录找到ntunnel_mysql.php文件,安装根目录默认地址为:C:\Program Files\PremiumSoft\Navicat Premium,将ntunnel_mysql.php放到自己的SAE项目的可访问目录中。我使用的是ThinkPHP5.0,可访问目录为\public,所以将该文件放到\public\下。

2、 对ntunnel_mysql.php文件的内容进行修改,将307行-316行代码进行修改替换,注意$uername$password填写你在详情页面刚刚查询到的数据库用户名和密码。(如果使用不同版本的Navicat代码的位置可能会有少许改变):
文件中的原代码:

if( $_POST["port"] ) $hs .= ":".$_POST["port"];
$conn = mysql_connect($hs, $_POST["login"], $_POST["password"]);
$errno_c = mysql_errno();
//if (phpversion_int() >= 50203){  // for unicode database name
//    mysql_set_charset('UTF8');
//}
if(($errno_c <= 0) && ( $_POST["db"] != "" )) {
    $res = mysql_select_db( $_POST["db"], $conn);
    $errno_c = mysql_errno();
}

替换为:

$username = '0a7sdfna';//此处为你自己的Mysql数据库的用户名
$password = 'hs7sdbsnsniioesdfsd33sjk9887f5dfab';//此处为你自己的Mysql数据库的密码
if ($_POST["login"] == $username && $_POST["password"] == $password) {
    $hs = SAE_MYSQL_HOST_M . ':' . SAE_MYSQL_PORT;
    $conn = mysql_connect($hs, SAE_MYSQL_USER, SAE_MYSQL_PASS);
    $errno_c = mysql_errno();
    if(($errno_c <= 0)) {
        $res = mysql_select_db(SAE_MYSQL_DB, $conn);
        $errno_c = mysql_errno();
    }
} else {
    EchoHeader(401);
    echo GetBlock("Authentication failed");
    exit();
}

3、修改完之后将代码更新上传至SAE服务器。

4、新建Navicat Mysql数据库连接。依次对常规、HTTP和高级选项卡做调整。

clipboard.png

在常规选项卡中输入连接名、主机名、端口、用户名和密码。其中主机名要填写SAE Mysql分布式数据库的主库地址w.rdc.sae.sina.com.cn,端口3306,用户名和密码填写自己刚刚详情页面查询到的数据库用户名和密码。

clipboard.png

在HTTP选项卡中勾选“使用HTTP通道”,并输入通道网址,该网站即为你SAE服务器中你刚刚上传的nutnnel_mysql.php文件的可访问地址。

clipboard.png

在高级选项卡中勾选使用高级连接,然后点击“添加数据库到列表”,输入刚刚在详情页面查询到到数据库名。

clipboard.png

5、点击确定之后连接就建立完成了,也可以在点击确定之前点击“连接测试”进行一下测试,没问题的话就通过了。Then, enjoy it!

clipboard.png

小提示:由于SAE的限制,有一些操作还是无法完成的,Navicat会有相应的报错提示,提示对过多的表进行了操作,原因其实就是你是使用了共享型的数据库,如果使用了独立数据库,应该就不会报错啦~


十氧化四磷
83 声望1 粉丝