我们的设置:
复制工作正常,直到最近必须从转储中恢复从属数据库。我执行了所有必要的步骤:转储主数据库,将转储传输到从数据库,删除旧数据库,执行转储以恢复数据库,执行适当的CHANGE MASTER
命令,最后START SLAVE
.
我收到错误:
Got fatal error 1236 from master when reading data from binary log: 'Could not find first log file name in binary log index file'
从站需要从主站获取的第一个日志文件是mysql-bin.000289
. 我可以看到这是存在于主人身上的:
我还可以看到 master 上的二进制日志索引似乎有这个日志文件的条目:
仍然复制不起作用 - 我不断收到同样的错误。我没有想法 - 接下来我应该检查什么?
更新:SHOW SLAVE STATUS\G
按要求输出:
MariaDB [(none)]> SHOW SLAVE STATUS\G
--------------
SHOW SLAVE STATUS
--------------
*************************** 1. row ***************************
Slave_IO_State:
Master_Host: 127.0.0.1
Master_User: replication
Master_Port: 1234
Connect_Retry: 60
Master_Log_File: mysql-bin.000289
Read_Master_Log_Pos: …
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用以下查询更改 1.6 GB InnoDB 表:
ALTER TABLE `table_name` ADD `field_id` int(11) unsigned DEFAULT NULL
Run Code Online (Sandbox Code Playgroud)
查询失败并出现以下错误:
1034 Incorrect key file for table 'table_name'; try to repair it
Run Code Online (Sandbox Code Playgroud)
几乎关于这个主题的每个线程(SO 和其他地方)都表明这是由于 tmpdir 空间不足。
虽然这似乎是许多人的问题,但在我们的系统中似乎并非如此。
tmpdir
是/tmp
:
/tmp
远未满:
我完全被困住了。想法?