我想将大文件的导入到MySQL中。但是,我不希望将其写入二进制日志,因为进口将需要很长时间,并导致奴隶落后。事实之后,我宁愿在奴隶上单独运行它,因为它在系统上会容易得多。所讨论的表是一个新表,因此我真的不必担心它摆脱同步,因为主人和所有奴隶最终都会具有相同的数据,因为它们都会全部导入相同的文件最终。我也不想更改任何重复词 - ignore-*或binlog_ignore-*选项,因为它们需要重新启动相关的服务器。是否有AA可以在不将单个查询写入二进制日志的情况下运行单个查询的方法?

我已经知道答案了,但是我在网上找不到很容易找到它,所以我让某人发布答案以获取一些代表点。如果没有一个白色的答案,我会发布我发现的答案。

有帮助吗?

解决方案

您可以使用 SQL-Log-bin 会话变量以关闭当前会话的日志记录。只需输入:

SET sql_log_bin = 0;

并且您当前会话中的所有查询都不会发送到二进制日志。如果要重新打开二进制登录,请运行:

SET sql_log_bin = 1;

这仅适用于您参加的当前运行会话。所有其他连接的所有其他查询仍将继续记录。另外,您必须拥有超级特权才能起作用。

其他提示

如果您想从CLI中执行此操作,请尝试一下,它对我有用:

$ mysqldump old_DB | mysql --init-command="SET SQL_LOG_BIN = 0;" new_DB

可能在较新的MySQL版本中添加了“ init-command”参数。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top