之前工作中遇到多次MYSQL数据恢复问题,一直都是搞定了,但老忘记写篇博文记录下,今天有同事又遇到了这个问题写一下
InnoDB类型表,直接“*.MYD,*.MYI”拷到另一个数据库就可以直接使用。
InnoDB类型,这种类型的一个表在磁盘上只对应一个“*.frm”文件,这个文件主要是存放数据库的表结构,数据放在“ibdata1”,所以如果ibdata1没了的话,就别指望恢复数据了,除非可以恢复这个ibdata1文件。
恢复innodb数据和结构
拷贝innodb数据库表*.frm”文件和innodb数据“ibdata1”文件到MYSQL相应位置,启动MySQL
我通常默认的InnoDB参数
# ****** InnoDB Engine options******
innodb_additional_mem_pool_size = 16M
innodb_buffer_pool_size = 512M
innodb_data_file_path = ibdata1:1024M:autoextend
innodb_file_io_threads = 4
innodb_flush_method = O_DIRECT
innodb_thread_concurrency = 20
innodb_flush_log_at_trx_commit = 0
innodb_log_buffer_size = 16M
innodb_log_file_size = 256M
innodb_log_files_in_group = 2
innodb_max_dirty_pages_pct = 75
innodb_lock_wait_timeout = 120
innodb_file_per_table
innodb_force_recovery = 4
#注意这两
innodb_data_file_path
innodb_force_recovery
数据库恢复是后招,数据库日常备份还是非常重要的,有备无患,确保数据安全!