复制MySQL数据库A到另外一个MySQL数据库B(仅仅针对innodb数据库引擎)
方案一:(不用太大的变化my.ini文件)
-
copy 原数据库A中的 数据库(database) ib_logfile1 ib_logfile0 ibdata1;
-
关闭目的数据库B;
-
备份目的数据库B中的 ib_logfile1 ib_logfile0 ibdata1 三个文件,防止更改后不能使用数据库;
-
将copy 来的原数据库A中的 ib_logfile1 ib_logfile0 ibdata1 放置在目的数据库B相应的位置 ,如果您目的数据库中的 ib_logfile俩个文件的大小和copy来的文件大小一样,直接粘贴就可以;
-
重新启动数据库B
方案二:(需要更改my.ini文件)
-
copy 原数据库A中的 数据库(database) ib_logfile1 ib_logfile0 ibdata1;
-
关闭目的数据库B;
-
如果您目的数据库B中的ib_logfile俩个文件的大小和copy来的文件大小不一样,备份目的数据库B中的 ib_logfile1 ib_logfile0 ibdata1 三个文件,防止更改后不能使用数据库, 删除目的数据库下的 ib_logfile1 ib_logfile0 文件,更改my.ini 文件中的innodb_log_file_size 为原数据库中 ib_logfile1 ib_logfile0 文件大小eg. innodb_log_file_size=90M ;
-
重启数据库B;
成功后,删除重启数据库B的 ib_logfile1 ib_logfile0 ,将copy 来的 ib_logfile1 ib_logfile0 粘贴过来(或者用copy 来的 ib_logfile1 ib_logfile0 替换现有数据库B中的 ib_logfile1 ib_logfile0 即可); -
粘贴 数据库(database) ibdata1 到相应的位置;
重新启动数据库B
PS:目的就是保证
1、数据库(database) ib_logfile1 ib_logfile0 ibdata1;必须同时复制的,也就是说不能在你复制的过程中还有别的操作来操作你要复制的数据库。(这样复制过来的数据可能有crash)
转自:http://my.oschina.net/u/1462678/blog/223646