为什么我不能在MySQL中获得BINLOG

在Charles Bell,Mats Kindahl和Lars Thalmann的书中testing这个例子。我试图用指令“SHOW BINLOG EVENTS \ G”来检查binlog,但是它返回“Empty set(0.00 sec)”。我错在哪里? 这是my.cnf:

[mysqld] host = localhost user = jun password = 111 port = 3306 socket = /var/lib/mysql/mysqld.sock pid-file = /var/lib/mysql/mysqld.pid basedir = /var/lib/mysql datadir = /usr log-bin = /var/log/mysql/master-bin log-bin-index = /var/log/mysql/master-bin.index server-id = 1 tmpdir = /tmp 

下面的terminal输出:

 mysql> use test1; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> select * from tb1; +-------+ | text | +-------+ | YEAH! | +-------+ 1 row in set (0.00 sec) mysql> flush logs; Query OK, 0 rows affected (0.00 sec) mysql> SHOW BINLOG EVENTS\G Empty set (0.00 sec) mysql> exit Bye juneau@linux-dfxe:~> cd /var/log/mysql/ juneau@linux-dfxe:/var/log/mysql> ll total 0 juneau@linux-dfxe:/var/log/mysql> 

您需要validationbin日志文件是否已经创build。 我想你没有正确指定文件path。

 log-bin = master-bin 

通常,path应该被指定为绝对path,例如:

 log-bin = /var/log/mysql/master-bin 

你需要确保mysql用户有足够的权限来创build/写入这个文件。

什么用户拥有/ var / log / mysql? 在mysql错误日志中有什么信息? 如果这是一个权限问题,那么mysql会输出一个错误到日志中(如果我记得,通常错误13)。