Friday, December 17, 2010

Taşıdığını yada yeniden reconstruct ettiğiniz mysql slavelerde tmp table open tablepace sorunu

Aşağıdaki gibi bir hata alıyorsanız çözüm basit.
101217  5:42:39  InnoDB: Operating system error number 2 in a file operation.
InnoDB: The error means the system cannot find the path specified.
InnoDB: If you are installing InnoDB, remember that you must create
InnoDB: directories yourself, InnoDB does not create them.
101217  5:42:39  InnoDB: Error: trying to open a table, but could not
InnoDB: open the tablespace file './tmp/#sql536a_5d0ef_304.ibd'!
InnoDB: Have you moved InnoDB .ibd files around without using the
InnoDB: commands DISCARD TABLESPACE and IMPORT TABLESPACE?
InnoDB: It is also possible that this is a temporary table #sql...,
InnoDB: and MySQL removed the .ibd file for this.
InnoDB: Please refer to
InnoDB: http://dev.mysql.com/doc/refman/5.1/en/innodb-troubleshooting-datadict.html
InnoDB: for how to resolve the issue.

bu hatadan aldığınız kadar test db altında table yaratın örneğin üsttekini elealalım.
user test;
create table sql536a_5d0ef_304 id(char (50));

sonra gidip, test folder altından ibd ve frm dosyalarını alıp /tmp altına atıyoruz.
Burda bu dosyalara mysql.mysql chown ile sahiplik atıyoruz. sahip mysql.
ardından. mv ile mv sql536a_5d0ef_304.ibd /tmp/#sql536a_5d0ef_304.ibd ve frm olarak değiştiriyoruz.
mysql.mysql olduklarından emin olun tüm bu hata nedenlerini mv ettiktan sonra.
Mysql'i stoplayın, sonra bir daha ateşleyin ve loglar temiz :)

No comments:

Post a Comment