作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我想将一个大文件导入 MySQL。但是,我不希望将它写入二进制日志,因为导入会花费很长时间,并且会导致 slave 远远落后。事实上,我宁愿在奴隶上单独运行它,因为它在系统上会容易得多。有问题的表是一个新表,因此我不必担心它会不同步,因为主服务器和所有从服务器最终将拥有相同的数据,因为它们都会导入相同的文件最终。我也不想更改任何 replicate-ignore-* 或 binlog_ignore-* 选项,因为它们需要重新启动相关服务器。有没有办法运行单个查询而不将其写入二进制日志?
我已经知道答案了,但我在网上找不到很容易,所以我让某人发布答案以获得一些代表点。如果没有答案,我会发布我找到的答案。
最佳答案
您可以使用 sql-log-bin session 变量以关闭当前 session 的日志记录。只需输入:
SET sql_log_bin = 0;
并且您当前 session 的所有查询都不会发送到二进制日志。如果要重新打开二进制日志记录,请运行:
SET sql_log_bin = 1;
这仅适用于您所在的当前正在运行的 session 。来自所有其他连接的所有其他查询仍将继续被记录。此外,您必须拥有 SUPER 权限才能使其正常工作。
关于mysql - 如何在 MYSQL 中运行查询而不将其写入二进制日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2958479/
我是一名优秀的程序员,十分优秀!