Я хочу изменить пароль базы данных MySQL на главной базе данных. Мой вопрос: должны ли мы заботиться о подчиненной БД при изменении пароля главной базы данных?
Из документы
Права пользователя реплицируются, только если реплицируется база данных mysql. То есть операторы GRANT, REVOKE, SET PASSWORD, CREATE USER и DROP USER действуют на ведомом устройстве только в том случае, если настройка репликации включает базу данных mysql.
Если вы реплицируете все базы данных, но не хотите, чтобы операторы, влияющие на права пользователя, реплицировались, настройте ведомое устройство так, чтобы оно не реплицировало базу данных mysql, используя команду
--replicate-wild-ignore-table=mysql.%
вариант. Подчиненное устройство распознает, что операторы SQL, связанные с привилегиями, не действуют, и поэтому не выполняет эти операторы.См. Раздел 16.4.1.16, «Репликация системной базы данных mysql", Чтобы получить больше информации.
это действительно ЗАВИСИТ. :)
согласно док
MySQL 5.1.14 и новее. Операторы изменения данных, сделанные для таблиц в базе данных mysql, реплицируются в соответствии со значением binlog_format; если это значение MIXED, эти операторы реплицируются с использованием строкового формата. Однако операторы, которые обычно обновляют эту информацию косвенно, такие как GRANT, REVOKE и операторы, управляющие триггерами, хранимыми подпрограммами и представлениями, реплицируются на ведомые устройства с использованием репликации на основе операторов.
MySQL 5.1.13 и ранее. Права пользователя реплицируются, только если реплицируется база данных mysql. То есть операторы GRANT, REVOKE, SET PASSWORD, CREATE USER и DROP USER действуют на ведомом устройстве только в том случае, если настройка репликации включает базу данных mysql.
в нашем случае mysql 5.5 автоматически СОЗДАЕТ / УДАЛЯЕТ ПОЛЬЗОВАТЕЛЯ xxx @ 'xxx' на ведомом устройстве, даже если мы не выполняем репликацию mysql системная база данных.
это зависит от того, обслуживаете ли вы базу данных «mysql», внутреннюю базу данных mysql, где хранятся все разрешения пользователей. если пользователю репликации был предоставлен доступ к «*. *», то все таблицы в «mysql. *» должны реплицироваться, включая «mysql.user», где хранятся пароли.
когда в эту таблицу вносятся изменения, должна выполняться «очистка привилегий», поэтому может потребоваться запустить ее на ведомых устройствах? Я всегда указываю конкретные базы данных для репликации, поэтому я не тестировал это.