MySQL的 – MySQL的主数据库密码的变化是否影响奴隶分贝?

我想更改主数据库上的MySQL数据库密码。 我的问题是:当更改主数据库密码时,我们是否必须关心从DB?

从文档

只有在复制mysql数据库的情况下才能复制用户权限。 也就是说,只有当复制设置包含mysql数据库时,GRANT,REVOKE,SET PASSWORD,CREATE USER和DROP USER语句才会对从属设备生效。

如果要复制所有数据库,但不希望影响用户权限的语句被复制,请使用--replicate-wild-ignore-table=mysql.%选项,设置从属服务器不复制mysql数据库。 从服务器认识到特权相关的SQL语句没有效果,因此它不执行这些语句。

有关更多信息,请参见第16.4.1.16节“ mysql系统数据库的复制 ”。

这取决于你是否奴隶的“MySQL”数据库,内部所有用户权限的MySQL数据库保留。 如果复制用户有权访问“*。*”,则“mysql。*”中的所有表都应复制,其中包括存储密码的“mysql.user”。

当对这个表进行修改时,应该执行“flush privileges”,所以可能需要在slave上运行它。 我总是指定特定的数据库的复制,所以我没有testing过这个。

它确实取决于。 🙂

根据文件

MySQL 5.1.14及更高版本。 对mysql数据库中的表进行的数据修改语句根据binlog_format的值进行复制; 如果此值为MIXED,则使用基于行的格式复制这些语句。 但是,通常会将这些信息间接更新的语句(例如GRANT,REVOKE和操纵触发器,存储例程和视图的语句)会使用基于语句的复制复制到从属系统。

MySQL 5.1.13和更早的版本。 只有在复制mysql数据库的情况下才能复制用户权限。 也就是说,只有当复制设置包含mysql数据库时,GRANT,REVOKE,SET PASSWORD,CREATE USER和DROP USER语句才会对从属设备生效。

对于我们的实例,mysql 5.5会自动在slave上CREATE / DROP USER xxx @'xxx',即使我们没有做mysql系统数据库的复制。