Discuz!官方免费开源建站系统

 找回密码
 立即注册
搜索

[经验] 数据库的拷贝移动

[复制链接]
mrgalaxy 发表于 2009-7-1 10:14:24 | 显示全部楼层 |阅读模式
mysql数据库的拷贝移动
方法大致分为两种

一是将mysql里的数据库导出得到.sql数据文件,导出可以通过mysql中自带的mysqldump实现(mysqldump -uroot -p databse  test.sql)或者利用phpmyadmin等工具.在要导入数据的机器上执行.sql文件,即可实现数据的移动。

导入数据可以参照如下步骤:

(1)   运行-〉cmd,进入到mysql的bin目录下;

(2)   执行bin目录下的mysqld,启动mysql服务;

(3)   执行mysql -uroot –p”,输入密码,即如数据库;

(4)   执行”create database dbname character set gbk;”创建要到入的数据库;

(5)   执行exit,退出mysql;

(6)   执行” mysql -uroot -ppw --default-character-set=gbk -f dbnamedemo.sql”,导入数据;

(7)   执行”mysqladmin shutdown”,停止mysql.

但是如果不能导出.sql文件呢?比如原来机器宕掉,而只能从硬盘拷贝出数据文件,此时第一种方法不可行。

二是mysql数据库的拷贝移动,此方法即是直接将原mysqldata目录下的数据文件拷贝到新机器的相应目录中。但因为存储引擎的不同,会遇到一些问题。

在mysql中常用的有两种存储引擎InnoDB和MyiSAM:

MyISAM是默认存储引擎。它基于更老的ISAM代码,但有很多有用的扩展。(注意MySQL 5.1不支持ISAM)。每个MyISAM在磁盘上存储成三个文件。第一个文件的名字以表的名字开始,扩展名指出文件类型。.frm文件存储表定义。数据文件的扩展名为.MYD (MYData)。索引文件的扩展名是.MYI (MYIndex)。

对于MyISAM存储引擎,直接将data下与数据库名同名的文件夹拷贝至相应目录,重起数据库服务即可。

InnoDB存储引擎是默认地被允许的。如果你不想用InnoDB表,你可以添加skip-innodb选项到MySQL选项文件。被InnoDB存储引擎管理的两个重要的基于磁盘的资源是InnoDB表空间数据文件和它的日志文件。如果你指定无InnoDB配置选项,MySQL将在MySQL数据目录下创建一个名为ibdata1的10MB大小的自动扩展数据文件,以及两个名为ib_logfile0和ib_logfile1的5MB大小的日志文件。InnoDB给MySQL提供具有提交,回滚和崩溃恢复能力的事务安全(ACID兼容)存储引擎。

对于InnoDB存储引擎,mysql从MySQL 4.1.1开始,innodb支持Per-Table Tablespaces,当我们用类似于MyISAM中的方法时,发现会提示错误:

[127.0.0.1] ERROR 1016 Can't open file 'academicbackground.ibd' (errno 1)

即使注释掉#innodb_file_per_table,可能还会寻找找.ibd文件。而且在data目录找不到后缀为.ibd的文件,疑惑??

于是想到InnoDB还有ibdata1,ib_logfile0,ib_logfile1三个文件,遂再次拷贝过来,还是不行,而且会导致mysql不能启动。再次疑惑??

最后,经过N次尝试,发现只需拷贝ibdata1文件即可,查网上很多人说InnoDB不能通过直接拷贝移动数据库,其实还是可以的,只需要移动数据库的.frm文件和ibdata1文件即可。重起数据库,数据无丢失。

另外对于数据损坏的情况,可以利用isamchk等工具进行修复


优惠虚拟主机,建站首选:详情点击进入
回复

使用道具 举报

12153556 发表于 2009-7-1 13:18:46 | 显示全部楼层
这样的操作对于大部分人来说是没机会操作

因为用的是虚拟机
回复

使用道具 举报

184e 发表于 2009-7-1 23:47:13 | 显示全部楼层
帮顶一下,等高手吧
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2025-9-16 08:04 , Processed in 0.106520 second(s), 14 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表