多种方法导入导出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数据导入与导出》