视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
如何建立SSH加密的MySQL复制_MySQL
2020-11-09 17:26:17 责编:小采
文档
 对数据库管理员来说,MySQL颇多吸引人之处,例如它的免费和开源,以及拥有详尽的文档和内置支持数据复制等。但是安全管理员会迅速指出它的一个缺陷:加密。对数据隐私保护的要求极为严格,通过局域网或广域网复制数据都需要加密。

尽管可以通过编译MySQL使其支持SSL,但许多二进制发行版并未激活该功能。打开一个SQL提示符,然后键入命令“show variables like '%ssl%”。如果“have_ssl”或“have_openssl”被设置为“No”,则很不幸该功能未被激活。幸运的是,我们还有另一种选择来从源代码重新编译。安全外壳(SSH)支持数据隧道(data-tunneling),它可以建立一个类似VPN的迷你环境,来提供透明加密。首先,我们将使用一个用户名/密码建立一条SSH隧道。我们将通过使用RSA密钥对远端进行认证。一旦隧道正常运行后,我们将设置数据复制。

建立隧道

SSH隧道使用端口转发技术来连接到从属服务器上的一个TCP端口,在本文示例中该端口是7777,它通过SSH被转发到主MySQL服务器上的TCP端口3306。确保MySQL主服务器端的SSH隧道被激活,默认情况下它一般都处于激活状态。在MySQL从属服务器上,执行以下命令“ssh -f user@master_ip -L 7777:master_ip:3306 -N”。使用主服务器的一个系统用户账号和IP地址分别替换user和master_ip。你可能希望使用一个仅用于数据复制的用户,将其shell设定到/bin/false上。另外你可以使用从服务器上的任何可用端口替换7777。在主数据库端,你将被提示输入用户账号和密码。

现在从MySQL1从服务器上运行“mysql -h 127.0.0.1 -P 7777”,来连接MySQL主服务器。切记不能使用localhost,因为在MySQL中它有别的含义。如果需要,可以在该命令后追加“-u -p”来指定一个MySQL账号和密码。如果你获得一个“permission denied”消息,那么需要检查MySQL主服务器上的授权声明。授权声明应该被捆绑到主计算机的真实IP地址,因为它才是被转发的MySQL1连接的真正源地址。被转发的连接不是来自于localhost或127.0.0.1。

下载本文
显示全文
专题