在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)。