附录1

附录1

我在 FreeBSD 上使用 MySQL 时遇到了问题。

它每 20 分钟就会生成大量 1GB 的二进制文件,并迅速填满可用磁盘空间。

-rw-rw----  1 mysql mysql 1073741982 2013-09-14 18:26 mysql-bin.000174
-rw-rw----  1 mysql mysql 1073741890 2013-09-14 18:42 mysql-bin.000175
-rw-rw----  1 mysql mysql 1073741988 2013-09-14 18:59 mysql-bin.000176
-rw-rw----  1 mysql mysql 1073741964 2013-09-14 19:15 mysql-bin.000177
-rw-rw----  1 mysql mysql 1073741974 2013-09-14 19:29 mysql-bin.000178
-rw-rw----  1 mysql mysql 1073741923 2013-09-14 19:46 mysql-bin.000179
-rw-rw----  1 mysql mysql  577143852 2013-09-14 19:59 mysql-bin.000180

这种情况在用户没有任何互联网活动的情况下发生。我max_binlog_file=526870912在 my.cnf 中

我尝试过

freebsd# mysql -u root -p
mysql> flush logs;
mysql> flush master;

结果所有 mysql-bin 文件都被删除,并从 mysql-bin.000001 开始计数。

然后我shutdown -r now的 FreeBSD (rc.conf 中的 mysql_enable="YES")。MySQL 可以工作,但又开始每 20 分钟生成 1GB 的 bin 文件。

附录1

Mysql 适用于 aimsniff 和 netams。我已停止 netams。mysql 停止生成“mysql-bin。”文件。因此问题可能出在 mysql 和 netams 之间。但我尚未找到原因。

当我尝试读取当前文件之前创建的 mysql-bin. 文件时,出现了几行“mysqlbinlog mysql-bin.000179 | less”命令。

'fw-sher1#mysqlbinlogmysql-bin.000179|less
'/!40019 设置@@session.max_insert_delayed_threads=0/;
‘/!50003 设置@OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0/; '分隔符 //;
'# at 4
'#130915 11:27:20 server id 1 end_log_pos 98 开始:binlog v 4,server v 5.0.81-log created 130915 11:27:20
'警告:忽略 Append_block,因为 file_id 没有 Create_file 事件:1417
'警告:忽略 Append_block,因为 file_id 没有 Create_file 事件:1417 '警告:忽略 Append_block,因为 file_id 没有 Create_file 事件:1417
' # at 98 '#130915 11:27:19 server id 1 end_log_pos 8313 '#Append_block: file_id: 1417 block_len: 8192 '# at 8313 '#130915 11:27:19 server id 1 end_log_pos 16528 '#Append_block: file_id: 1417 block_len: 8192 '# at 16528 '#130915 11:27:19 server id 1 end_log_pos 24743 '#Append_block: file_id: 1417 block_len: 8192 '# at 24743 '#130915 11:27:19 server id 1 end_log_pos 32958 '#Append_block: file_id: 1417 block_len: 8192 '# at 32958 '#130915 11:27:19 服务器 ID 1 end_log_pos 41173 '#Append_block: file_id: 1417 block_len: 8192 '# at 41173 '#130915 11:27:19 服务器 ID 1 end_log_pos 82248 '#Append_block:警告:忽略 Append_block,因为 file_id: 1417 没有 Create_file 事件 '警告:忽略 Append_block,因为 file_id: 1417 没有 Create_file 事件 '警告:忽略 Append_block,因为 file_id: 1417 没有 Create_file 事件





















如此反复。对我来说,这毫无意义。

netams.log 的内容

文件:netams.log 第 1006126 行 第 0 列 180576689 字节 84%
2013 年 9 月 13 日 23:59:52.8916 数据源:1 [警告]:从 MySQL 获得以下错误:级别 = 错误,代码 = 126,消息 = 表“./netams/monitor.MYI”的密钥文件不正确;请尝试修复它。
2013 年 9 月 13 日 23:59:52.8916 数据源:1 [警告]:从 MySQL 获得以下错误:级别 = 错误,代码 = 126,消息 = 表“./netams/monitor.MYI”的密钥文件不正确;请尝试修复它。
2013 年 9 月 13 日 23:59:52.8919 数据源:1 [警告]:无法将数据加载到监视器的 SQL 中,请尝试“调试存储”
2013 年 9 月 14 日 00:01:20.0461 数据源:1 [警告]:SQL 加载数据:表“./netams/monitor.MYI”的密钥文件不正确;请尝试修复它
2013 年 9 月 14 日 00:01:20.0464 数据源:1 [警告]:从 MySQL 收到以下警告:级别 = 警告,代码 = 1262,消息 = 第 243 行被截断;它包含的数据多于输入列的数量。
2013 年 9 月 14 日 00:01:20.0464 数据源:1 [警告]:从 MySQL 收到以下警告:级别 = 警告,代码 = 1262,消息 = 第 265 行被截断;它包含的数据多于输入列的数量。

答案1

14.09.2013 00:01:20.0461 data-source:1 [WARN]: SQL Load data: Incorrect key file for table './netams/monitor.MYI'; try to repair it
14.09.2013 00:01:20.0464 data-source:1 [WARN]: Got the following WARNINGS from MySQL: level = Warning, code = 1262, message = Row 243 was truncated; it contained more data than there were input columns.
14.09.2013 00:01:20.0464 data-source:1 [WARN]: Got the following WARNINGS from MySQL: level = Warning, code = 1262, message = Row 265 was truncated; it contained more data than there were input columns.

此错误表明 netams 数据库中有一些损坏的表。请注意以下部分:“表‘./netams/monitor.MYI’的密钥文件不正确;尝试修复它“。

修复表通常只需几个命令即可完成。修复表有时可能会导致数据丢失,因此请先备份表。修复可能需要一段时间,具体取决于数据库的大小——有时修复过程似乎会暂停 10-20 分钟,但实际上它正在悄悄扫描损坏的行。请在辅助窗口中执行此操作,以便您可以密切关注它,并保持耐心。

有关修复表的提示,请查看 MySQL 手册:

相关内容