多种方法导入导出mysql数据
xiong_7592 2007-9-29
环境:Linux、mysql
1.数据导出有以下几种方法:
1).select into outfile 'filename'语句 ,特点单表处理能力较好
2).mysqldump ,多表导出功能较强,但是数据筛选功能不强
3).使用命令行执行sql语句
使用select into outfile 'filename'语句 :可以在mysql命令行或linux终端下输入
mysql>SELECT * FROM tb_name into outfile '/tmp/tb_data.sql';
就可以把tb_name表的的所有数据导出到/tmp/tb_data.sql中,文件名要用单引号或双引号括起来。如果文件名不是绝对路径(linux基础知识,相信大家都是知道的),如文件名为'db_data.sql',我们导出的文件在什么地方呢?(ls下,汗!居然没有!!)其实文件在sql数据库的库目录下了,所以个人还是比较喜欢定位到绝对路径的'/tmp/'下,不过导出的文件夹对数据库的用户要有写权限。
如果导出的格式(tab分隔)不是我们喜欢的,我们可以调整下,如以'''包括每个字段,以','分隔字语句如下mysql>SELECT * FROM tb_name into outfile '/tmp/tb_data.sql' fields terminated by ',' enclosed by '/'';
mysqldump db_name tb_name
mysqldump db_name > db_name.sql
把db_name数据库的内容导入到当前目录的db_name.sql文件中,sql文件中包含创建表结构的语句和数据的插入语句。
linux命令行下执行sql语句方法如下:
#mysql -e "SELECT * FROM tb_name"
#mysql -e"SELECT * FROM tb_name into outfile '/tmp/tb_data.sql' fields terminated by ',' enclosed by '/''"
2.数据导入也有三种方法:
1).LOAD DATA INFILE 'filename'命令
2).使用mysqlimport实用程序
3).使用命令行mysql db_name < test_sql.sql
从文件tb_name.txt导入数据到tb_name表,命令如下:
mysql>load data infile 'tb_name.txt' into table tb_name fields terminated by ',' enclosed by '"';
用mysqldump导入数据,命令如下:
mysqlimport --fields-terminated-by=, --fields-enclosed-by=/" db_name tb_name.txt
使用linux命令行,命令如下:
#mysql db_name < db_name.sql
#mysql -d db_name < db_name.sql
#mysql -t db_name < db_name.sql
由于本人水平有限,只能介绍这么多了,详细命令请参考手册。
参考文档:
UNIX技术资料的宝库:limodou的《MySQL数据导入与导出》