有没有最佳实践来确保权限不会被复制到 mysql 从属服务器?问题是,mysql 表中的维护用户在每个框上都有不同的密码。启动/关闭脚本等都会使用这些表。当您从主服务器复制时,它会更改密码并破坏一切。
有哪些最佳实践可以确保实际的 mysql db(包含授权、用户、主机)不会因为复制而中断?
您通常也会将权限复制到从属设备上吗?
答案1
不要使用replicate-do-db
和replicate-ignore-db
,因为这些选项很危险。
看看这篇文章。
只需使用--replicate-wild-ignore-table=mysql.%
选项。
我建议您设置--replicate-wild-ignore-table=mysql.user
- 这仅跳过密码和全局授权复制,而表和列级授权仍然被复制。
您还可以使用SET SQL_LOG_BIN=0
它来禁用当前会话的日志记录语句,例如当您创建新用户或更改密码时。
答案2
这常问问题解释:
使用 --replicate-wild-ignore-table=mysql.% 选项启动服务器。
您也可以将其用作一个my.cnf
选项。
通常我们进行复制GRANT
。因为我们经常希望从服务器表现为与主服务器相同的只读副本。这样,我们的应用程序就可以在数据库服务器之间无缝切换以进行 RO 操作。在开发其他实用程序时,您只需考虑到这一点,并密切关注您的GRANT
s 允许的内容,尤其是主机名方面。
答案3
在从服务器上,您有更多选项来过滤数据。有 replicate-do-db 和 replicate-ignore-db 选项,还有 replicate-do-table、replicate-ignore-table、replicate-wild-do-table 和 replicate-wild-ignore-table 选项,可用于过滤掉您不想复制的内容。希望对您有所帮助。