您的位置:首页 > 数据库 > MySQL

将数据库文件导入mysql并输出为txt文件

2016-06-24 15:08 489 查看
大致上MySQL数据库备份可以采用两种方式:一种就是直接导出sql语句或者易于导入的其他格式的sql存储文件,使用sql语句或者一些可视化客户端导出,这种方法非常简单,无需赘述;另一种方法就是拷贝出数据库文件,再将数据库文件转换成sql文件,这篇文章就介绍一下这种方法。

    ①查找数据库文件存放位置,MySql文件的后缀有三种形式*.MYD、*.MYI、*.frm;
find / -name *.MYD 



 
 

    ②进入数据库存储文件目录;
cd /opt/lanmp/mysql-5.1.63/win/data/ 

    ③使用copy命令把所有数据拷出去;
copy mysql /home 

    ④此时只需将这些数据库文件转换成sql文件,这也是这篇文章里我要讲的重点,如果需要的时候再将sql文件用命令导入即可;

    ⑤新建一个数据库命名为mysqlbak,将刚才拷出来的文件夹拷入新数据库的data文件夹;




find / -name mysqlbak 




cd /home/mysql 
copy * /www/wdlinux/mysql-5.1.63/var/mysqlbak/ 

    ⑥此时就已经可以看到新数据库mysqlbak里的数据了,跟原数据库mysql里的数据是一样的;









    ⑦使用命令导出数据库文件即可。
mysqldump -uroot -p mysqlbak > /home/mysql.sql 

    ⑧这home文件夹下的文件mysql.sql文件就是易导入的数据库文件。需要注意的是所有的操作都必须在操作系统下用命令完成,而不提倡使用工具。因为在实际操作过程中,我们经常会遇到数据库里的数据库文件版本和数据库版本不一致,或者新旧数据库版本不一致的问题,再或者数据服务器版本与客户端工具不兼容等意想不到的问题,如果是这种情况,使用工具导出一般会报“1577:Cannot
proceed because system tables used by Event Scheduler were found damaged at server start”的错误。说到这里,其实本文也提供了一种打开mysql数据库文件的方法,如果现在只有一堆*.MYD、*.MYI、*.frm文件,执行步骤⑤到步骤⑧即可。

导入数据库:

mysql>use databasename;

mysql>load data infile "E:\\test\\test.txt" into table tablename fields terminated by '|' lines terminated by '\r\n';

如果没有换行则:

mysql>load data infile "E:\\test\\test.txt" into table tablename fields terminated by '|';

导出数据库:

mysql>use databasename;

mysql> select * into outfile "E:\\test\\test.txt"  fields terminated by '|'lines terminated by '\r\n' from tablename;

如果不要换行则:

mysql> select * into outfile "E:\\test\\test.txt"  fields terminated by ',' from tablename;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: