有没有简单的方法可以将一个电脑上的数据库复制到一个文件中,然后在另一台电脑上导入它呢?
以下是几种选项:
mysqldump
最简单、保证可行的方法是使用mysqldump
。请参考此处的实用程序手册:
http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html
基本上,它会将重建数据库内容所需的SQL脚本进行转储,包括创建表、触发器和其他对象以及插入数据(这都可以进行配置,因此如果您已经在其他地方设置了模式,则可以只转储数据,例如)。
复制单个MyISAM表文件
如果您有大量数据并且您正在使用要复制的表的MyISAM存储引擎,则可以关闭mysqld并从一个数据库文件夹复制.frm、.myd和.myi文件到另一个文件夹(甚至位于另一个系统上)。这对InnoDB表无效,对于其他存储引擎(我不够熟悉)可能有效或无效。
mysqlhotcopy
如果您需要在数据库服务器运行时转储数据库内容,则可以使用mysqlhotcopy
(请注意,这仅适用于MyISAM和Archive表):
http://dev.mysql.com/doc/refman/5.0/en/mysqlhotcopy.html
复制整个数据文件夹
如果您正在复制整个数据库安装,因此,所有数据库和每个数据库的内容,您可以关闭mysqld,压缩整个MySQL数据目录,并将其复制到新服务器的数据目录中。
这是我所知道的唯一一种从一个实例复制InnoDB文件到另一个实例的方法。如果你在两个运行相同操作系统家族和相同版本MySQL的服务器之间移动,那么这将很好地工作;如果在不同操作系统或MySQL版本之间移动,则可能会工作;但我没有具体了解。
http://www.webyog.com/en/downloads.php#sqlyog
这个选项可以创建备份文件并将文件恢复到新服务器。更好的选择是从一个服务器导出数据库到另一个服务器。
祝好,
RDJ