若何成立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 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.
设置复制
目前隧道已经建好,接下来该设置数据复制了.这个历程与典型的MySQL复制设置完好相同.编辑主服务器上的my.cnf文件,增添以下两行代码:
log-bin=MySQL-bin
server-id=1
接下来,成立复制账号.在MySQL中,运行以下查询语句:
CREATE USER 'replicationuser'@'master_ip' IDENTIFIED BY 'replicationpassword';
GRANT REPLICATION SLAVE ON *.* TO 'replicationuser'@'master_ip';
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密钥来代替必须键入密码
以上是“若何成立SSH加密的MySQL复制[网络技术]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |