Estou planejando fazer uma migração de banco de dados para um novo servidor. Durante o estágio de transição, não quero que o usuário do Apache possa gravar nada no banco de dados. Eu tenho duas opções.
Revogar privilégios de gravação:
REVOKE INSERT, UPDATE ON `mydb`.* FROM 'apache'@'localhost'; FLUSH PRIVILEGES;
Defina o banco de dados para o modo somente leitura:
FLUSH TABLES WITH READ LOCK; SET GLOBAL read_only = 1;
Existem considerações práticas para escolher um sobre o outro?
eu escolheria a opção 2
A opção 2 também pode ser escrita como
Dessa forma, você só precisa correr
SET GLOBAL read_only = 0;
para retomar as gravações. FLUSH TABLES WITH READ LOCK não interrompe as gravações do InnoDB em Transaction Logs, Redo Logs e Undo Logs . É por isso queSET GLOBAL read_only = 1;
é seu amigo.EMBARGO
Nos meus primeiros dias como DBA, eu costumava fazer isso:
Quando terminei, fiz isso
Então, eu descobri o SUPER .
EPÍLOGO
Vá com a Opção 2 como está ou mude
FLUSH TABLES WITH READ LOCK;
paraFLUSH TABLES;