因為在默認情況下mysqdump是將 lock-tables設置為true,即默認時鎖定當前表(沒有加lock-all-tables參數(shù),lock-all-tables是全局讀鎖,鎖定庫下的所有表保證數(shù)據(jù)的一致性,加上這個參數(shù)為自動關閉single-transaction 和 lock-tables 選項)。雖然說這樣以來解決了問題,但用同樣的語句(mysqldump -uroot -pmypass test1 > d:\test1.sql)在master上備份成功了,所以針對那個”can’t open file“,感覺還應該有其他的問題存在或是解決方法(可能是真正的解決方法),用show status like ‘%open%’;查看open_tables值,當前打開表的數(shù)量
用show variables like ‘%open%’;查看open_files_limit的值,操作系統(tǒng)允許 mysqld打開文件的數(shù)量
+-------------------+----------+ | Variable_name | Value | +-------------------+----------+ | have_openssl | DISABLED | | innodb_open_files | 300 | | open_files_limit | 622| +-------------------+----------+open_files_limit的系統(tǒng)默認值為max_connections*5 或 max_connections + table_cache*2。
看來應該是open_files_limit設置過小,造成打開的文件過多,導致’xxx.frm’無法打開,open_files_limit的值很明顯是默認值,并為手設置過。
打開my.ini文件(我的是windows系統(tǒng)。linux為my.cnf),在mysqld中添加:open_files_limit=4500,保存并重啟動mysql數(shù)據(jù)庫,然后再用同樣的mysqldump語句備份數(shù)據(jù)庫,成功執(zhí)行!
歡迎光臨 WDlinux官方論壇 (http://cd-genova.com/bbs/) | Powered by Discuz! 7.2 |