mysql - 我可以在端口 13306 上配置 mysql Replication 并在 3306 上配置正常的数据库操作吗?
问题描述
我知道 Mysql Replication 适用于 3306,但我想了解的是,
有什么办法可以保留 a) 3306 用于正常的 Mysql 操作,而 13306 仅用于复制目的?
我有一个要求,我们需要在动态 IP 上设置 mysql 复制,这意味着我们的 mysql 服务器将对公众开放,所以我们要保护我们的数据库,并希望打开仅用于复制的最小端口(我们将设置 SSL 复制)
b)如果这是不可能的,我还有什么其他选择,我们只能应用从主到从或从主到主的更改?
这可以做到吗?感谢您分享任何关于此的灯光或参考资料。谢谢
解决方案
MySQL 复制通常在与任何其他 MySQL 连接相同的端口上工作,默认情况下3306
,正如您正确说明的那样。
添加保护的标准方法:
- 系统级防火墙,
3306
仅允许来自特定主机(复制对等方)的流量 - MySQL 内置授权 - 例如
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'YOUR_TRUSTED_IP';
- 如您所述,为传输中的数据保护添加 TLS。
如果您选择将 MySQL 绑定到不同的端口,则需要更新CHANGE MASTER TO
配置,请查看此处。
我能想到的唯一方法是允许您以任何方式限制复制流量本身,就是通过GRANT REPLICATION SLAVE
命令,您可以在其中选择只有特定的 user@host 才能访问。
推荐阅读
- r - R Shiny 在应用程序中打开和关闭带有 UI 和服务器组件的模块
- python - 如何让我的石头、剪子布游戏的代码减少冗余?
- mysql - 为可以更改的值创建触发器
- python - 如何将字符串转换为日期时间,忽略时间信息?
- python - 移动时 Python GUI 崩溃
- laravel - chmod 权限集在 dockerfile 中不起作用
- java - 未解决的类“FileProvider”
- c# - .Net Native C# 应用程序无法通过 WACK 测试并避免 ILT005 错误
- c# - 将数量金额文本框值从子表单传递到父表单上的变量
- swift - 垂直和水平滚动collectionView选择单元格问题