MySQL支持在同一台服务器上运行多个mysqld 。 其中一种方法是使用mysqld_multi 。
如果默认的MySQL服务器实例(如my.cnf中的[mysqld]部分中configuration的)使用log-bin ,则为所有其他实例( [mysqld1] , [mysqld2]等)启用二进制日志。 我们如何覆盖其他实例的设置? 我们尝试在[mysqld1]下放置log-bin=或log-bin=OFF ,但不会禁用二进制日志。
你可能不得不使用这个:
SET SQL_LOG_BIN = 0;
每次连接到mysql时运行此操作,并且在此会话期间运行的所有查询都不会logging在二进制日志中。
您可以在mysqld1中的任何mysql实例中运行一次以下命令,然后禁用所有连接的二进制日志logging,直到下一次重新启动mysqld1:
SET SQL_LOG_BIN = 0;
SET GLOBAL SQL_LOG_BIN = 0;
这不会禁用二进制日志logging。 它只是绕过录制的DDL,INSERT,UPDATE和DELETE。 至less,您可以更快地执行查询,因为不必logging它们。
我其实也试过了
lwdba @ localhost(DB information_schema)::显示二进制日志;
+ —————— + ———– +
| Log_name | File_size |
+ —————— + ———– +
| mysql-bin.000001 | 720 |
| mysql-bin.000002 | 4279 |
| mysql-bin.000003 | 128935976 |
+ —————— + ———– +
3行(0.00秒)
lwdba @ localhost(DB information_schema):: create database test8; 显示二进制日志;
查询OK,1行受影响(0.00秒)
+ —————— + ———– +
| Log_name | File_size |
+ —————— + ———– +
| mysql-bin.000001 | 720 |
| mysql-bin.000002 | 4279 |
| mysql-bin.000003 | 128936061 |
+ —————— + ———– +
3行(0.00秒)
lwdba @ localhost(DB information_schema):: set sql_log_bin = 0; 创build表test8.dummy(一个int)引擎= MyISAM; 插入到test8.dummy值(1),(2),(3); 显示二进制日志;
查询OK,0行受影响(0.00秒)
查询OK,0行受影响(0.06秒)
查询OK,3行受影响(0.00秒)
logging:3重复:0警告:0
+ —————— + ———– +
| Log_name | File_size |
+ —————— + ———– +
| mysql-bin.000001 | 720 |
| mysql-bin.000002 | 4279 |
| mysql-bin.000003 | 128936061 |
+ —————— + ———– +
3行(0.00秒)
注意create database命令是如何logging的,最后一个二进制日志的大小是否改变。 然后,注意我是如何禁用二进制日志,并在新的testing数据库中创build一个表,并添加了3行。 然而,最后的二进制日志保持相同的大小。
再一次,这不会禁用实例的二进制日志logging,但这必须是下一个最好的事情。