因为在默认情况下mysqdump是将 lock-tables设置为true,即默认时锁定当前表(没有加lock-all-tables参数,lock-all-tables是全局读锁,锁定库下的所有表保证数据的一致性,加上这个参数为自动关闭single-transaction 和 lock-tables 选项)。虽然说这样以来解决了问题,但用同样的语句(mysqldump -uroot -pmypass test1 > d:\test1.sql)在master上备份成功了,所以针对那个”can’t open file“,感觉还应该有其他的问题存在或是解决方法(可能是真正的解决方法),用show status like ‘%open%’;查看open_tables值,当前打开表的数量
用show variables like ‘%open%’;查看open_files_limit的值,操作系统允许 mysqld打开文件的数量
+-------------------+----------+ | Variable_name | Value | +-------------------+----------+ | have_openssl | DISABLED | | innodb_open_files | 300 | | open_files_limit | 622| +-------------------+----------+open_files_limit的系统默认值为max_connections*5 或 max_connections + table_cache*2。
看来应该是open_files_limit设置过小,造成打开的文件过多,导致’xxx.frm’无法打开,open_files_limit的值很明显是默认值,并为手设置过。
打开my.ini文件(我的是windows系统。linux为my.cnf),在mysqld中添加:open_files_limit=4500,保存并重启动mysql数据库,然后再用同样的mysqldump语句备份数据库,成功执行!
欢迎光临 WDlinux官方论坛 (http://wdlinux.cn/bbs/) | Powered by Discuz! 7.2 |