mysql通过拷贝数据文件的方式进行数据库迁移
--环境windows
将源机器A数据库拷贝到目标机器B:
我先在目标机器B上安装MySQL,停止mysql服务,然后将源机器A的data下关于数据库的文件和ibdata1拷贝过去,其余不用拷贝。如图:
源机器A:
image.png
启动目标数据库服务net start mysql,即可查看到导过来的所有数据库了。
注意:ibdata1一定不要忘记拷贝,且要拷贝到准确的位置(如我目标机器的ibdata1在E:\MySQL Datafiles,不在data路径下,我就先备份下它的ibdata1,再拷贝到E:\MySQL Datafiles)否则查询拷贝过去的表会报错:
mysql> use platform;
Database changed
mysql> show tables;
+-----------------------+
| Tables_in_platform |
+-----------------------+
| mobile_scanner |
| sharer |
| sharer_mobile_scanner |
|statistics |
| test |
+-----------------------+
5 rows in set (0.02 sec)
mysql>desc test;
ERROR 1146 (42S02): Table 'platform.test' doesn't exist
在Linux下也是类似的方式,但要注意拷贝完文件后,记得改下data文件夹owner为mysql。
注意要停止服务,至少需要锁表(写),避免前后文件数据不一致。