이진 로그에 기록하지 않고 MYSQL에서 쿼리를 실행하는 방법
MySQL로 대용량 파일 가져오기를 실행하고 싶습니다.하지만 이진 로그에 기록하는 것은 원하지 않습니다. 왜냐하면 가져오기에 시간이 오래 걸리고 노예들이 많이 뒤쳐지기 때문입니다.저는 차라리 노예들에게 그것을 따로 운영하고 싶습니다. 왜냐하면 그것은 시스템에서 훨씬 쉬워질 것이기 때문입니다.문제의 테이블은 새 테이블이므로 마스터와 모든 슬레이브는 결국 동일한 파일을 가져올 것이기 때문에 결국 동일한 데이터를 갖게 될 것이기 때문에 동기화되지 않을 것에 대해 걱정할 필요가 없습니다.또한 replicate-ignore-* 또는 binlog_ignore-* 옵션은 해당 서버를 다시 시작해야 하므로 변경하고 싶지 않습니다.이진 로그에 쓰지 않고 하나의 쿼리를 실행할 수 있는 방법이 있습니까?
이미 답을 알고 있지만 인터넷에서 쉽게 찾을 수 없어서 누군가에게 답을 게시하게 하여 몇 가지 평가 점수를 받도록 하고 있습니다.흰자로 답이 없으면 제가 찾은 답을 올리겠습니다.
sql-log-bin 세션 변수를 사용하여 현재 세션에 대한 로깅을 해제할 수 있습니다.그냥 입력하기만 하면 됩니다.
SET sql_log_bin = 0;
현재 세션의 모든 쿼리는 이진 로그로 전송되지 않습니다.이진 로그를 다시 켜려면 다음을 실행합니다.
SET sql_log_bin = 1;
현재 실행 중인 세션에 대해서만 해당됩니다.다른 모든 연결의 다른 모든 쿼리는 계속 기록됩니다.또한 SUPER 권한이 있어야 작동할 수 있습니다.
cli에서 이걸 하고 싶다면 이걸 시도해보세요. 저에겐 효과가 있었습니다.
$ mysqldump old_DB | mysql --init-command="SET SQL_LOG_BIN = 0;" new_DB
"init-command" 매개 변수가 최신 MySQL 버전에서 추가되었을 수 있습니다.
언급URL : https://stackoverflow.com/questions/2958479/how-do-i-run-a-query-in-mysql-without-writing-it-to-the-binary-log
'programing' 카테고리의 다른 글
라틴 1 콜렉션 느린 쿼리가 있는 테이블, utf8mb4로 빠름 - 왜? (0) | 2023.09.08 |
---|---|
Laravel 삭제 쿼리 작성기 (0) | 2023.09.08 |
C는 (...)의 크기와 ...의 크기를 올바르게 처리합니까?이 경우에는? (0) | 2023.09.08 |
Node.js "server"는 Nginx 또는 Apache 서버와 어떻게 비교됩니까? (0) | 2023.09.08 |
깃 스테이시 2회 (0) | 2023.09.08 |