Maison >base de données >tutoriel mysql >Linux下Msql的文件导入导出问题_MySQL
其实我也是刚开始接触 linux,也刚开始自学MySql,这篇博客算是我的体会总结吧,拿出来和大家分享!有什么不对的还请大神指教。
一、导入数据
1、向mysql中导入.txt文档
1.1、mysqlimport命令
命令格式:mysqlimport -uuser_name -ppassword [-d/f等参数表] dbname filename.txt;
示例操作如下图:
说明:
-uuser_name:登陆的用户名
-ppassword:密码
dbname:要接收导入数据的数据库
filename.txt:用于导入的源文件
注意: -uuser_name来说,-u与user_name间可有空格也可没空格。但对-ppassword来说,-p与password间一定没有空格。
文档格式:文档与表格应是意义对应的,如下图。
注意:1.txt文档中字段之间默认的分隔符是一个Tab健。
2.txt 文档名和数据表表名要一样。
3.txt文档要存在导入目的库所在目录下,一般为/var/lib/mysql/db_name。如我这里是要导入到test库里,就是/var/lib/mysql/test。如下截图是将.txt文档复制到所虚目录下。
参数表
-d |
插入数据之前删除表数据 |
-f |
插入过程中如遇错误,强行插入数据 |
-i |
跳过那些有相同唯一关键字的记录 |
-r |
替代那些有相同唯一关键字的记录 |
--fields-terminated-by=, |
","数据分割符(默认是Tab跳格) |
结果展示:
1.2、load命令
命令格式:load data infile 'filename.txt' into table table_name;
示例及结果:
说明:
1、只能导入.txt文档,且文档名与表名一致
2、和mysqlimport命令一样,文档与库要在同一目录下
2、向mysql中导入.sql文档
2.1、source命令
命令格式:source data.sql;
示例及结果:
说明:
1、.sql文件应该放在用户目录下(如我这里是jhp1900用户,就需放在/home/jhp1900目录下)
2、文件名可与表名不同(下条给出解释)
3、文件内容其实就是一条一条的插入语句没条语句都有指明插入到哪一个表中,所以可与文件名不同,文件格式如下
2.2、直接导入
命令格式:mysql -uroot -ppassword dbname ;
示例及结果:
说明:这种方法可以不必拘泥于文件存储位子,因为导入命令里会指明文件所在。
二、导出数据
导出数据则会相对比较简单,这里总结了两个导出命令。
1、导出为.sql格式
命令格式:mysqldump -uroot -p... dbname > filename.sql
示例及结果:
然后在你的用户主目录下就多了个data1.sql的文件。
说明:
1、这条命令会导出所指库内的所有表格
2、导出后的文件存在用户主目录下
3、该方法也可导出为.txt格式,但这样会是单向的,这样的.txt文档不可往回导入(文档内容格式不匹配)
2、导出为.txt格式
命令格式:select * from table_name info outfile 'filename.txt';
示例及结果:
说明:
1、默认导出目录是库所在的目录
2、同上一条的说明3