那么在搭建主从复制的时候,有没有方法将这个账号密码加密呢?检索了一些资料,在当前这个时间点,所有的MySQL版本都没有提供方法将其加密。也就是说,当前阶段,没有任何方法加密这个账号密码。确切的说是官方没有提供任何方法。完全忽略了这个安全隐患。
官方文档[How To Encypt Replication Credentials In mysql.slave_master_info (Doc ID 2623399.1)]中也给出了简单答复。至于如何规避密码明文存储的一些风险问题,官方给出的建议如下:
Ensure that the master info repository can be accessed only by the database administrator.
[...]
Use a restricted access mode to protect database backups that include log tables or log files containing passwords."
个人强烈建议在创建复制账号时,一定要严格限制这个账号的IP地址,以及账号的权限。不要授予过大的权限。
--在MySQL主/从库中:创建数据同步的账号(从库也创建相同账号,方便切换)<br>create user repl@'192.168.xxx.xx%' identified by "xxxxxxx";<br>flush privileges;<br><br><br>grant replication slave on . to 'repl'@'192.168.xxx.xx%';<br>flush privileges;<br>