Mysql导入\导出数据
MySQL导出数据
1.mysql -e生成结果导入指定文件
mysql -hhostname -Pport -uusername -ppassword -e “相关mysql的sql语句” > 导出文件存储位置
例子展示:
mysql -h xxx -u xxx -pxxx -D database_name -e "select * from t_name;" > test.txt
解释:将database_name数据库的表t_name中的数据导入都test.txt
1. 若要同时显示语句本身:-v
2. 若要增加查询结果行数:-vv
3. 若要增加执行时间:-vvv
**v参数需要放在-e执行语句之后***
2.使用select … INTO OUTFILE语句导出数据
格式描述:
select [列名] from table [where 语句][order by语句] [limit 语句]
INTO OUTFILE '目标文件' [OPTION]
[OPTION]参数可选参数选项:
field terminated by ‘字符串’ :字符串表示字段间的分割符,默认为”\t”
field enclosed by ‘字符’:设置字符来括住字段的值,只能为单个字符,默认不使用任何符号。
field optionally enclosed by ‘字符’:设置字符来括住CHAR、VARCHAR、TEXT等字段类型,默认不使用任何符号。
field escaped by ‘字符’:设置转义字符,只能使用单个字符,默认为”\”。
lines starting by ‘字符串’:设置每行开头的字符,可以为单个或多个字符。默认不使用任何符号。
lines terminated by ‘字符串’:设置每行数据结尾的字符,可以为单个或多个字符。默认值”\n”。‘目标文件’ 存储位置的说明:
存储位置MySQL服务器端必须有写入权限并且文件不能够已经存在。
Linux /etc/mysql/mysql.conf.d/mysqld.conf 中配置了mysql可写的位置
[mysqld]
#
# * Basic Settings
#
secure-file-priv = ""
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
本例中文件可存储的位置包括datadir和tmpdir
- 目标文件保存在MySQL服务器端
linux服务端举例
select * from t_name into outfile '/tmp/test.csv' fields terminated by ',' optionally enclosed by '"' escaped by '"' lines terminated by '\r\n';
注意:select …INTO OUTFILE语句的主要作用是可以快速的把一个表转储到服务器机器上。如果想要在服务器主机之外的客户主机上创建结果文件应该使用”mysql -e “select …”> file_name”的命令。
3.mysqldump命令导出数据
mysqldump是mysql用于转存储数据库的实用程序。转储包含创建表和/或装载表的SQL语句。
格式描述:
shell> mysqldump [options] db_name [tables]
shell> mysqldump [options] ---database DB1 [DB2 DB3...]
shell> mysqldump [options] --all--database
举例说明:
mysqldump -h localhost -u xxx -pxxx test > dump.txt
MySQL导入数据
1.使用LOAD DATA导入数据
格式描述:
mysql> LOAD DATA LOCAL INFILE 'dump.txt' INTO TABLE t_name (name, age, sex)
-> FIELDS TERMINATED BY ':'
-> LINES TERMINATED BY '\r\n';
- 指定LOCAL关键字,表示从客户主机上按路径读取文件。如果没有指定,则文件在服务器上按路径读取。
- 可明确指出列值的分隔符和行尾标记,默认值为定位符和换行符。
- LOAD DATA 默认插入的顺序为(name, age, sex),文件中的列和插入表中的列不一致,必须指定列的顺序。
2.使用mysqlimport导入数据
mysqlimport客户端提供了LOAD DATA INFILE 语句的命令行接口。mysqlimport的大多数选项直接对应LOAD DATA INFILE子句。
举例分析:
mysqlimport -h localhost -u xxx -pxxx --local database_name dump.txt
3.source导入数据
举例:
mysql>create database database_name;
mysql>use database_name;
mysql>source dump.txt;
参考资料:
MySQL -e详解——http://blog.csdn.net/feeltouch/article/details/46643065
Mysql数据库总结——https://www.kancloud.cn/digest/mysqlsummary/132839
Mysqldump命令参数——http://blog.csdn.net/linuxlsq/article/details/52606317
还没有评论,来说两句吧...