怎么把mysql一个数据库从一台机器上 拷贝到另外一台

怎么把mysql一个数据库从一台机器上 拷贝到另外一台,第1张

1、在B机器上装mysql。将A机器上的mysql/data下的你的数据目录整个拷贝下来。将B机器上的mysql服务停止。找到B机器上的mysql/data目录,将你拷贝的目录粘贴进去,然后启动mysql服务就可以了。 2、使用SQL语句备份和恢复你可以使用SELECT INTO OUTFILE语句备份数据,并用LOAD DATA INFILE语句恢复数据。这种方法只能导出数据的内容,不包括表的结构,如果表的结构文件损坏,你必须要先恢复原来的表的结构。 语法: SELECT * INTO {OUTFILE | DUMPFILE} ’file_name’ FROM tbl_name LOAD DATA [LOW_PRIORITY] [LOCAL] INFILE ’file_name.txt’ [REPLACE | IGNORE] INTO TABLE tbl_name SELECT ... INTO OUTFILE ’file_name’

1、可以的,这也是一个冷备份数据库和迁移数据库的方法,如果别人能复制整个data目录,确实不安全。

2、data下每个目录是一个database,比如mysql目录里面包含的系统表user.MYD包含了mysql用户信息

3、不同的存储引擎用的不同的文件存储数据,

a)如果是MyISAM存储引擎的一个table存成了三个文件

table.frm(表结构)

table.MYD(表数据)

table.MYI(表索引)

这种存储引擎你可以只复制一个table(即三个文件)或者一个数据库(即整个目录)。

b)如果是InnoDB存储引擎用到了表空间文件ibdata1

所以要复制需要包含数据库目录,还要包含表空间文件ibdata1等。

什么系统?两个库是不是在同一台机?

linux下个人做法:

1.同一台机

用mysqldump导出表数据(具体使用可以查一下)

mysqldump -h host -P port -p password -u user database --default-character-set=utf8 --add-drop-table tablename -r /tmp/table.sql

再导入数据

mysqldump -h host -P port -p password -u user database tablename </tmp/tablename.sql

或者在进入mysql后用source命令导入。

2.不同的机,就需要先把数据文件导出,然后复制到另外一台机,再进行1的导入 *** 作。

windows下没试过,一般都直接用phpMyAdmin来 *** 作了,界面 *** 作没什么说的。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8618553.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-18
下一篇 2023-04-18

发表评论

登录后才能评论

评论列表(0条)

保存