千家信息网

怎么建立SSH加密的MySQL复制

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章主要介绍"怎么建立SSH加密的MySQL复制",在日常操作中,相信很多人在怎么建立SSH加密的MySQL复制问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"怎么建
千家信息网最后更新 2026年10月31日怎么建立SSH加密的MySQL复制

这篇文章主要介绍"怎么建立SSH加密的MySQL复制",在日常操作中,相信很多人在怎么建立SSH加密的MySQL复制问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"怎么建立SSH加密的MySQL复制"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

对管理员来说,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 -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。


设置复制

现在隧道已经建好,接下来该设置数据复制了。这个过程与典型的MySQL复制设置完全相同。编辑主服务器上的my.cnf文件,增加以下两行代码:

log-bin=MySQL-bin

server-id=1

接下来,创建复制账号。在MySQL中,运行以下查询语句:

CREATE USER IDENTIFIED BY replicationpassword;

GRANT REPLICATION SLAVE ON *.* TO ;

在从属服务器端,将以下代码增加到my.cnf文件中:

server-id = 2

master-host = 127.0.0.1

master-user = replicationuser

master-password = replicationpassword

master-port = 7777

重启主服务器和从服务器上的MySQL服务。对于新创建的复制环境,你可能需要手动拷贝数据库到从服务器上。参考MySQL指南(16.1章节),可以获得创建数据快照和更多复制选项的详细信息。这一切都做完后,检查复制是否生效。分别在主服务器和从服务器上执行一个"select"查询;返回结果应该是相同的。在主服务器上执行insert、update或delete数据,改变"select"返回结果的记录集。等待几秒钟后,重新执行"select"查询。如果复制功能已经生效,主从服务器上得到结果应该仍然是相同的。

你可能希望使用预共享的RSA密钥来取代必须键入密码。通过使用密钥,你可以设置看门狗shell脚本,来确保ssh通道处于激活状态,而且如果该通道失效,它将自动重启。另外,考虑在主服务器上创建一个Cron守护进程,来使用当前的unix时间戳来更新数据表。从服务器可以增加一个检查该值的Cron守护进程。如果它滞后当前时间戳太大,复制功能可能已被破坏,管理员应该收到告警邮件。

明确MySQL复制相关的两点重要事项

关于MySQL复制,有两点重要事项需要记住。首先,其主要目的是灾难恢复和高可用性,而非备份。在主服务器上执行的每一条数据更改语句,都将在从服务器端重复执行。因此如果你无意键入了"DELETE FROM mytables"语句,并忘记了使用WHERE子句来限定范围,那么你的数据将会同时在主服务器和从服务器上丢失。

第二件需要记住的事情是,你能够在从服务器上创建、更新和删除数据。我遇到过有的开发者为了实现高可用性,创建了同时运行在主服务器和从服务器上的应用程序,并更新了一个被复制的表,每次都破坏了复制功能。因此你需要在应用程序中加入检查逻辑,检查它是否是运行在一个未激活的从属系统上,不要向被复制的表写数据。然后在它上面进行开发者单元测试。

到此,关于"怎么建立SSH加密的MySQL复制"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

服务 服务器 数据 加密 隧道 激活 端口 检查 运行 功能 密码 用户 账号 从属 学习 相同 接下来 命令 地址 密钥 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技企业 上海睿民互联网科技有限公司 互联网是第几次科技革命的成果 互联网金融监管科技数据 现代互联网科技股 福建科技产业互联网发展 哈尔滨屹滨互联网科技有限公司 米聚互联网科技南京有限公司排面 翼展科技 首家互联网医院 四川慕妮娅互联网科技有限公司 滨湖区互联网智能科技产品有哪些 高科技互联网套路 2021互联网科技公司排名 北京市互联网新科技 互联网风格科技公司名称 半导体行业属于互联网高科技类吗 工业互联网科技创业 广州三三互联网科技有限公司 数字科技和互联网金融哪个好 保山浩联互联网科技有限公司 互联网科技公司起名 万易互联网科技 广西拼得多互联网科技有限公司 剑昆互联网络科技有限公司临桂 赶超互联网科技 微信多开 工业互联网山东科技大学 美国互联网科技实力 上海万顺科技互联网有限公司招聘 北京互联网科技类企业分布 杭州融税互联网科技有限公司
0