C:\name.txt 或者 mysql -u root -pPassword --exe..._8. 将“员工表(employee)”中的数据导出为文本文件,文件名为employee.txt。">
赞
踩
一、使用mysql命令导出文本文件
mysql命令可以用来登录MySQL服务器,也可以用来还原备份文件,同时,mysql命令也可以导出文本文件。
基本的语法格式如下:
mysql -u root -pPassword -e "SELECT 语句" dbname>C:\name.txt
或者
mysql -u root -pPassword --execute="SELECT 语句" dbname>C:\name.txt
其中:
在导出的文件中,不同列之间使用制表符分隔,第1行包含了各个字段的名称。
另外使用mysql命令还可以指定查询结果的显示格式,如果某行记录字段很多,可能一行不能完全显示,此时可以使用--vartical参数,将每条记录分为多行显示。
例如使用mysql命令导出example数据库下employee表中的记录到文本文件,使用--vertical参数显示结果。SQL代码如下:
1 |
|
SELECT的查询结果导出到文本文件之后,显示格式发生了变化,内容变成了垂直显示格式。如果employee表中记录内容很长,这样显示将会更加容易阅读。
二、使用mysql命令导出xml文件
使用mysql命令可以导出XML文件。基本的语法格式如下:
mysql -u root -pPassword --xml|-X -e "SELECT 语句" dbname>C:\name.xml
或者
mysql -u root -pPassword --xml|-X --execute="SELECT 语句" dbname>C:\name.xml
其中:
使用mysql命令导出example数据库中employee表中的记录到xml文件。SQL代码如下:
mysql -u root -p -X --execute="SELECT * FROM employee;" example>F:\backup\employee.xml
如果在employee表存在中文内容,为了避免乱码。可以使用下面的语句代码:
mysql -u root -p -X --default-character-set=utf8 --execute="SELECT * FROM employee;" example>F:\backup\employee.xml
三、使用mysql命令导出html文件
使用mysql命令可以导出HTML网页文件。基本的语法格式如下:
mysql -u root -pPassword --html|-H -e "SELECT 语句" dbname>C:\name.html
或者
mysql -u root -pPassword --html|-H --execute="SELECT 语句" dbname>C:\name.html
其中:
使用mysql命令导出example数据库中employee表中的记录到html文件。SQL代码如下:
mysql -u root -p --html --execute="SELECT * FROM employee;" example> F:\backup\employee.html
四、使用SELECT...INTO OUTFILE导出文本文件
MySQL中,可以使用SELECT...INTO OUTFILE语句将表的内容导出为一个文本文件。其基本的语法格式如下:
1 |
|
该语句分为两个部分。前半部分是一个普通的SELECT语句,通过这个SELECT语句来查询所需要的数据;后半部分是导出数据的。其中,“目标文件”参数指出将查询的记录导出到哪个文件中;
“OPTION”参数为可选参数选项,其可能的取值有:
FIELDS和LINES两个子句都是自选的,但是如果两个子句都被指定了,FIELDS必须位于LINES的前面。
例如使用SELECT...INTO OUTFILE语句来导出example数据库下employee表的记录。其中,字段之间用“、”隔开,字符型数据用双引号括起来。每条记录以“>”开头。SQL代码如下:
- SELECT * FROM example.employee INTO OUTFILE 'F:/backup/tb_chengji.txt'
- FIELDS
- TERMINATED BY '\、'
- OPTIONALLY ENCLOSED BY '\"'
- LINES
- STARTING BY '\>'
- TERMINATED BY '\r\n';
FIELDS必须位于LINES的前面,多个FIELDS子句排列在一起时,后面的FIELDS必须省略;同样,多个LINES子句排列在一起时,后面的LINES也必须省略。
如果在employee表中包含了中文字符,使用上面的语句则会输出乱码。此时,加入CHARACTER SET gbk语句即可解决这一个问题。修改SQL代码如下:
- SELECT * FROM example.employee INTO OUTFILE 'F:/backup/tb_chengji.txt'
- CHARACTER SET gbk
- FIELDS
- TERMINATED BY '\、'
- OPTIONALLY ENCLOSED BY '\"'
- LINES
- STARTING BY '\>'
- TERMINATED BY '\r\n';
“TERMINATED BY '\r\n'”可以保证每条记录占一行。因为Windows操作系统下“\r\n”才是回车换行。如果不加这个选项,默认情况只是“\n”。
用root用户登录到MySQL服务器中,然后执行上述命令。
该语法中的“目标文件”被创建到服务器主机上,因此必须拥有文件写入权限(FILE权限)后,才能使用此语法。同时,“目标文件”不能是一个已经存在的文件。
SELECT...INTO OUTFILE语句可以非常快速地把一个表转储到服务器上。如果想要在服务器主机之外的部分客户主机上创建结果文件,则不能使用SELECT...INTO OUTFILE语句。
五、使用mysqldump命令导出xml文件
mysqldump命令还可以导出xml格式的文件。其基本的语法格式如下:
1 |
|
其中:
例如使用mysqldump命令将example数据库下的employee表可以导出为xml格式的文件。SQL代码如下:
1 |
|
六、使用mysqldump命令导出文本文件
mysqldump命令还可以导出纯文本文件。其基本的语法格式如下:
mysqldump -u root -pPassword -T 目标目录 dbname [tables] [option];
其中:
option常见的取值如下:
使用mysqldump语句导出example数据库下的employee表的记录。其中,字段之间用“,”隔开,字符型数据用双引号括起来。SQL命令代码如下:
mysqldump -u root -p -T F:\backup\ example employee --fields-terminated-by=\, --fields-optionally-enclosed-by=\"--lines-terminated-by=\r\n
其实,mysqldump命令也是调用SELECT...INTO OUTFILE语句来导出文本文件的。除此之外,mysqldump命令同时还生成了employee.sql文件,该文件中有表的结构和表中的记录。
与SELECT...INTO OUTFILE语句中的OPTIONS各个参数的设置不同,这里option各个选项等号后面的值不要用引号括起来。
七、MySQL使用mysqlimport命令导入文本文件
MySQL中,可以使用mysqlimport命令将文本文件导入到MySQL数据库中。基本的语法格式如下:
mysqlimport -u root -pPassword [--local] dbname filename.txt [OPTION]
其中,“Password”参数是root用户的密码,必须与-p选项紧挨着;“--local”是在本地计算机中查找文本文件时使用的;“dbname”参数表示数据库的名称;“filename.txt”参数指定了文本文件的路径和名称;“OPTION”为可选参数选项,其常见的取值有:
使用mysqlimport命令,将employee.txt文件中的记录导入到employee表中。操作步骤如下:
1. 查看F:/backup/employee.txt文件中的内容。
注意:
如果employee.txt文件中包含了中文字符,则需要将employee表的字符集修改为gb2312,使employee.txt文件和employee表的字符集保持一致。否则,将记录导入到employee表中以后,会出现乱码的现象。当然,如果文本文件使用的是utf8字符集,那么,则需要将employee表的字符集修改为utf8。
2. 如果没有employee表,则需要创建一个空employee表;如果该表已经存在,则将employee表中的数据全部删除。
3. 本实例中,employee.txt文件使用的是中文gb2312字符集,现在将employee表同样设置为gb2312字符集。SQL代码如下:
- mysql>ALTER TABLE employee DEFAULT character set gb2312;
- mysql>ALTER TABLE employee CONVERT TO character set gb2312;
4. 使用mysqlimport命令,将employee.txt文件中的记录导入到employee表中。SQL代码如下:
mysqlimport -u root -p example F:/backup/employee.txt --fields-terminated-by=\、 --fields-optionally-enclosed-by=\" --lines-terminated-by=\r\n
上面的语句要在一行中输入,要注意空格的使用。
mysqlimport选项
除了前面介绍的几个选项之外,mysqlimport命令还支持许多选项。常见的选项如下:
以下内容必须注意
secure-file-priv特性
secure-file-priv参数是用来限制LOAD DATA, SELECT ... OUTFILE, and LOAD_FILE()传到哪个指定目录的。
ure_file_priv的值为null ,表示限制mysqld 不允许导入|导出
当secure_file_priv的值为/tmp/ ,表示限制mysqld 的导入|导出只能发生在/tmp/目录下
当secure_file_priv的值没有具体值时,表示不对mysqld 的导入|导出做限制
如何查看secure-file-priv参数的值:
show global variables like '%secure%';
mysql> show global variables like '%secure%'; | |
---|---|
Variable_name | Value |
require_secure_transport | OFF |
secure_auth | ON |
secure_file_priv | /var/lib/mysql-files/ |
3 rows in set (0.02 sec)
MYSQL新特性secure_file_priv对读写文件的影响
此开关默认为NULL,即不允许导入导出。
解决问题:
windows下:修改my.ini 在[mysqld]内加入secure_file_priv =
linux下:修改my.cnf 在[mysqld]内加入secure_file_priv =
MYSQL新特性secure_file_priv对读写文件的影响
然后重启mysql,再查询secure_file_priv
2) ERROR 1148 (42000): The used command is not allowed with this MySQ...
1.load data local infile功能默认是关闭的,如果没有开启这个功能,会报错:
你可以这样做:
1)show global variables like ‘local_infile’;命令查看功能状态
2)开启本地local_infile功能:
set global local_infile=1;
八、使用LOAD DATA INFILE方式导入文本文件
MySQL中,可以使用LOAD DATA INFILE命令将文本文件导入到MySQL数据库中。基本的语法格式如下:
LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'filename.txt'[REPLACE | IGNORE] INTO TABLE tablename [OPTION] [IGNORE number LINES] [(col_name,...)]
LOAD DATA INFILE语句以非常高的速度从一个文本文件中读取记录行并插入到一个表中。
如果LOCAL关键词被指定,文件将从客户端主机读取;如果LOCAL没有被指定,文件则必须位于服务器上。由于安全性的原因,当读取位于服务器端的文本文件时,文件必须处于数据库目录或可被所有人读取的地方。同时,为了对服务器端的文件使用LOAD DATA INFILE语句,你必须在服务器主机上有FILE权限。只有当你没有以--local-infile=0选项启动mysqld,或你没有禁止你的客户端程序支持LOCAL的情况下,LOCAL才会工作。
如果你指定关键词LOW_PRIORITY,LOAD DATA语句的执行将会被延迟,直到没有其它的客户端正在读取表。
如果你对一个MyISAM表指定关键词CONCURRENT,那么当LOAD DATA正在执行时,其它的线程仍可以从表中检索数据。使用这个选项时,如果同时也有其它的线程正在使用表,这当然会有一点影响LOAD DATA的执行性能。
使用LOCAL将比让服务器直接访问文件要慢一些,因为文件的内容必须从客户端主机传送到服务器主机。而在另一方面,你不再需要有FILE权限用于装载本地文件。
你也可以使用mysqlimport实用程序装载数据文件;它通过发送一个LOAD DATA INFILE命令到服务器来动作。--local选项使得mysqlimport从客户端主机读取数据文件。如果客户端与服务器支持压缩协议,你可以指定--compress选项,以在较慢的网络中获得更好的性能。
当从服务器主机定位文件时,服务器使用下列规则:
filename.txt参数指定了要导入数据的文本文件的路径和名称;
REPLACE和IGNORE关键词控制对与现有的记录在唯一键值上重复的记录的处理。如果你指定REPLACE,新的记录行将替换有相同唯一键值的现有记录行;如果你指定IGNORE,将跳过与现有的记录行在唯一键值上重复的输入记录行;如果你没有指定任何一个选项,当重复键值出现时,将会发生一个错误,文本文件的剩余部分也将被忽略。
如果你使用LOCAL关键词从一个本地文件中读取数据,在此操作过程中,服务器没有办法停止文件的传送,因此缺省的处理方式就好像是IGNORE被指定一样。
tablename参数表示即将导入的数据表的名称;OPTION为可选参数选项,OPTION部分的语法包括FIELDS和LINES子句,其可能的取值有:
例如:
使用LOAD DATA命令将F:\backup\employee.txt文件中的数据导入到example数据库中的employee表。操作步骤如下:
首先要确定已经将employee表中的数据导出到了employee.txt文件中。
然后可以执行下面的步骤。
1. 将employee表中的数据全部删除。
2. 使用LOAD DATA命令从employee.txt文件中还原数据。SQL代码如下:
- LOAD DATA INFILE 'F:/backup/employee.txt' INTO TABLE example.employee
- FIELDS
- TERMINATED BY '\、'
- OPTIONALLY ENCLOSED BY '\"'
- LINES
- STARTING BY '\>'
- TERMINATED BY '\r\n';
首先查看employee.txt文件中的内容,然后使用OPTION选项中的FIELDS和LINES子句过滤掉记录中多余的字符,即可将数据记录准确还原到employee表中。
如果在employee.txt文件中包含了中文字符,使用上面的语句则会输出乱码。此时,加入CHARACTER SET gbk语句即可解决这一个问题。修改SQL代码如下:
- LOAD DATA INFILE 'F:/backup/employee.txt' INTO TABLE example.employee
- CHARACTER SET gbk
- FIELDS
- TERMINATED BY '\、'
- OPTIONALLY ENCLOSED BY '\"'
- LINES
- STARTING BY '\>'
- TERMINATED BY '\r\n';
3. 查询employee表中的数据记录。可以看到,语句执行成功以后,原来的数据重新恢复到了employee表中。如果第一次还原的记录不准确,则需要清除记录后,修改LOAD DATA命令中的FIELDS或LINES子句,然后再次进行还原,直到准确为止。
另外如果employee表中已经存在记录时:
1. 执行LOAD DATA命令的SQL代码如下:
- LOAD DATA INFILE 'F:/backup/employee.txt'
- REPLACE
- INTO TABLE example.employee
- CHARACTER SET gbk
- FIELDS
- TERMINATED BY '\、'
- OPTIONALLY ENCLOSED BY '\"'
- LINES
- STARTING BY '\>'
- TERMINATED BY '\r\n';
可以看出,REPLACE关键词可以控制对与现有的记录在唯一键值上重复的记录的处理。如果指定了REPLACE,新的记录行将替换有相同唯一键值的现有记录行。使用MySQL的LOAD DATA INFILE命令,可以实现不同字符集之间的转换。
九、使用mysql命令还原数据库
备份的sql文件中包含CREATE、INSERT语句,有时候也会有DROP语句。mysql命令可以直接执行文件中的这些语句,将备份的数据库文件或者数据表文件还原到数据库中。
基本的语法格式如下:
mysql -u user -p [dbname]<backup.sql
其中:
例1:
使用mysql命令将F:\backup\db_xuesheng_20141028.sql文件中的备份还原到数据库中。SQL代码如下:
1 |
|
db_xuesheng为要还原到的数据库名称。
执行该语句前,必须先在MySQL服务器中创建db_xuesheng数据库。如果数据库不存在,恢复过程将会出现错误。
例2:
使用root用户还原所有的数据库。SQL代码如下:
1 |
|
如果使用--all-databases参数备份了所有的数据库,那么还原时不需要指定数据库。因为,其对应的sql文件包含有CREATE DATABASE语句,可以通过该语句创建数据库。创建数据库以后,可以执行sql文件中的USE语句选择数据库,然后在数据库中创建表并且插入记录。
例3:
如果已经登录MySQL服务器,还可以使用source命令导入sql文件。source语句的语法格式如下:
source filename
filename表示已经备份好的sql文件名。
使用root用户登录到MySQL服务器,然后使用source导入本地的备份文件tb_chengji.sql。SQL代码如下:
1 |
|
执行source命令之前,必须使用use语句选择要还原的数据库。
mysqlimport是MySQL数据库提供的一个命令行程序,可用于数据导入。从本质上来说,是LOAD DATA INFILE的命令接口,而且大多数的选项都和LOAD DATA INFILE语法相同。其语法格式如下:
shell>mysqlimport [options] db_name textfilel [textfile2 …]
和LOAD DATA INFILE不同的是,mysqlimport命令可以用来导入多张表。并且通过–use-threads=参数并发地导入不同的文件。这里的并发是指并发导入多个文件,而不是指mysqlimport可以并发地导入一个文件,这是有明显区别的。此外,通常来说并发地对同一张表进行导入,其效果一般都不会比串行的方式好。
参数说明:
–use-threads=# Load files in parallel. The argument is the number of threads to use for loading data.
cd /usr/local/mysql/bin
./mysqldump -uroot -poracle --tab=/data/backup test
使用mysqldump工具导出test库下面所有的表。添加–tab参数表名,导出的每张表的定义输出到一个文件(xxxTAB.sql),每张表的数据输出到另外一个文件(xxxTAB.txt)。
- [root@source backup]# cd /usr/local/mysql/bin
- [root@source bin]# ./mysqlpump --version
- mysqlpump Ver 1.0.0 Distrib 5.7.20, for linux-glibc2.12 (x86_64)
- [root@source bin]#
- [root@source bin]# ./mysqldump -uroot -poracle --tab=/data/backup test
- mysqldump: [Warning] Using a password on the command line interface can be insecure.
- [root@source bin]#
-
- [root@source mysql]# cd /data/backup/
- [root@source backup]# ll
- total 28
- -rw-r--r-- 1 root root 1408 Mar 20 17:37 BONUS.sql
- -rw-rw-rw- 1 mysql mysql 0 Mar 20 17:37 BONUS.txt
- -rw-r--r-- 1 root root 1400 Mar 20 17:37 DEPT.sql
- -rw-rw-rw- 1 mysql mysql 80 Mar 20 17:37 DEPT.txt
- -rw-r--r-- 1 root root 1662 Mar 20 17:37 EMP.sql
- -rw-rw-rw- 1 mysql mysql 767 Mar 20 17:37 EMP.txt
- -rw-r--r-- 1 root root 1383 Mar 20 17:37 SALGRADE.sql
- -rw-rw-rw- 1 mysql mysql 59 Mar 20 17:37 SALGRADE.txt
- [root@source backup]#
- [root@source backup]# more /data/backup/DEPT.sql
- -- MySQL dump 10.13 Distrib 5.7.20, for linux-glibc2.12 (x86_64)
- --
- -- Host: localhost Database: test
- -- ------------------------------------------------------
- -- Server version 5.7.20-log
-
- /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
- /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
- /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
- /*!40101 SET NAMES utf8 */;
- /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
- /*!40103 SET TIME_ZONE='+00:00' */;
- /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='' */;
- /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
-
- --
- -- Table structure for table `DEPT`
- --
-
- DROP TABLE IF EXISTS `DEPT`;
- /*!40101 SET @saved_cs_client = @@character_set_client */;
- /*!40101 SET character_set_client = utf8 */;
- CREATE TABLE `DEPT` (
- `DEPTNO` int(10) NOT NULL,
- `DNAME` varchar(14) DEFAULT NULL,
- `LOC` varchar(13) DEFAULT NULL,
- PRIMARY KEY (`DEPTNO`)
- ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
- /*!40101 SET character_set_client = @saved_cs_client */;
-
- /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
-
- /*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
- /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
- /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
- /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
- /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-
- -- Dump completed on 2020-03-20 17:37:49
- [root@source backup]#
- [root@source backup]# more DEPT.txt
- 10 ACCOUNTING NEW YORK
- 20 RESEARCH DALLAS
- 30 SALES CHICAGO
- 40 OPERATIONS BOSTON
- [root@source backup]#
-
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
/home/mysql8.0.16/mysql/bin/mysqldump -h192.168.11.253 -uroot -p'123456' -P 3307 --tab=/home/zqdba/dbbak/ test (库名后跟上多个表名) big_table checkpoint checkpoint_lox dept emp marketing_automation marketing_automation_attr
- [root@source backup]# mysql -p
- Enter password:
- Welcome to the MySQL monitor. Commands end with ; or \g.
- Your MySQL connection id is 11
- Server version: 5.7.20-log MySQL Community Server (GPL)
-
- Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
-
- Oracle is a registered trademark of Oracle Corporation and/or its
- affiliates. Other names may be trademarks of their respective
- owners.
-
- Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
-
- root@db 17:41: [(none)]>
- root@db 17:41: [(none)]> create database test1;
- Query OK, 1 row affected (0.11 sec)
-
- root@db 17:41: [(none)]>
- root@db 17:41: [(none)]> show databases;
- +--------------------+
- | Database |
- +--------------------+
- | information_schema |
- | mysql |
- | performance_schema |
- | sys |
- | test |
- | test1 |
- +--------------------+
- 6 rows in set (0.00 sec)
-
- root@db 17:41: [(none)]>
- root@db 17:41: [(none)]>
- root@db 17:41: [(none)]>
- root@db 17:41: [(none)]> exit
- Bye
- [root@source backup]#
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
使用mysql导入定义,使用mysqlimport方法导入数据
create database test1;
mysql -uroot -poracle test1 </data/backup/DEPT.sql
mysqlimport -uroot -poracle --local test1 /data/backup/DEPT.txt
mysqlimport参数说明:
-L, --local Read all files through the client.
- [root@source backup]# mysql -uroot -poracle test1 </data/backup/DEPT.sql
- [root@source backup]#
- [root@source backup]# mysql -p
- Enter password:
- Welcome to the MySQL monitor. Commands end with ; or \g.
- Your MySQL connection id is 17
- Server version: 5.7.20-log MySQL Community Server (GPL)
-
- Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
-
- Oracle is a registered trademark of Oracle Corporation and/or its
- affiliates. Other names may be trademarks of their respective
- owners.
-
- Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
-
- root@db 17:43: [(none)]>
- root@db 17:43: [(none)]> USE test1;
- Database changed
- root@db 17:43: [test1]>
- root@db 17:43: [test1]> show tables;
- +-----------------+
- | Tables_in_test1 |
- +-----------------+
- | DEPT |
- +-----------------+
- 1 row in set (0.00 sec)
-
- root@db 17:43: [test1]>
- root@db 17:43: [test1]> select * from DEPT;
- Empty set (0.00 sec)
-
- root@db 17:43: [test1]>
- root@db 17:44: [test1]> exit
- Bye
- [root@source backup]#
- [root@source backup]# mysqlimport -uroot -poracle --local test1 /data/backup/DEPT.txt
- test1.DEPT: Records: 4 Deleted: 0 Skipped: 0 Warnings: 0
- [root@source backup]#
-
- [root@source backup]# mysql -p test1
- Enter password:
- Welcome to the MySQL monitor. Commands end with ; or \g.
- Your MySQL connection id is 21
- Server version: 5.7.20-log MySQL Community Server (GPL)
-
- Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
-
- Oracle is a registered trademark of Oracle Corporation and/or its
- affiliates. Other names may be trademarks of their respective
- owners.
-
- Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
-
- root@db 17:46: [test1]>
- root@db 17:46: [test1]> show tables;
- +-----------------+
- | Tables_in_test1 |
- +-----------------+
- | DEPT |
- +-----------------+
- 1 row in set (0.00 sec)
-
- root@db 17:46: [test1]>
- root@db 17:46: [test1]> select * from DEPT;
- +--------+------------+----------+
- | DEPTNO | DNAME | LOC |
- +--------+------------+----------+
- | 10 | ACCOUNTING | NEW YORK |
- | 20 | RESEARCH | DALLAS |
- | 30 | SALES | CHICAGO |
- | 40 | OPERATIONS | BOSTON |
- +--------+------------+----------+
- 4 rows in set (0.00 sec)
-
- root@db 17:46: [test1]>
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
在mysql命令行执行脚本创建命令,再使用load data local infile … into …加载数据
mysql -p test1
source /data/backup/DEPT.sql
load data local infile ‘/data/backup/DEPT.txt’ into table DEPT;
- [root@source backup]# mysql -p test1
- Enter password:
- Welcome to the MySQL monitor. Commands end with ; or \g.
- Your MySQL connection id is 22
- Server version: 5.7.20-log MySQL Community Server (GPL)
-
- Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
-
- Oracle is a registered trademark of Oracle Corporation and/or its
- affiliates. Other names may be trademarks of their respective
- owners.
-
- Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
-
- root@db 17:47: [test1]>
- root@db 17:47: [test1]> DROP TABLE DEPT;
- Query OK, 0 rows affected (0.06 sec)
-
- root@db 17:47: [test1]> source /data/backup/DEPT.sql
- Query OK, 0 rows affected (0.00 sec)
-
- Query OK, 0 rows affected (0.00 sec)
-
- Query OK, 0 rows affected (0.00 sec)
-
- Query OK, 0 rows affected (0.00 sec)
-
- Query OK, 0 rows affected (0.00 sec)
-
- Query OK, 0 rows affected (0.00 sec)
-
- Query OK, 0 rows affected, 1 warning (0.00 sec)
-
- Query OK, 0 rows affected (0.00 sec)
-
- Query OK, 0 rows affected (0.01 sec)
-
- Query OK, 0 rows affected (0.00 sec)
-
- Query OK, 0 rows affected (0.00 sec)
-
- Query OK, 0 rows affected (0.03 sec)
-
- Query OK, 0 rows affected (0.00 sec)
-
- Query OK, 0 rows affected (0.00 sec)
-
- Query OK, 0 rows affected, 1 warning (0.00 sec)
-
- Query OK, 0 rows affected (0.00 sec)
-
- Query OK, 0 rows affected (0.00 sec)
-
- Query OK, 0 rows affected (0.00 sec)
-
- Query OK, 0 rows affected (0.00 sec)
-
- root@db 17:47: [test1]>
- root@db 17:47: [test1]>
- root@db 17:47: [test1]> show tables;
- +-----------------+
- | Tables_in_test1 |
- +-----------------+
- | DEPT |
- +-----------------+
- 1 row in set (0.00 sec)
-
- root@db 17:47: [test1]>
- root@db 17:47: [test1]> select * from DEPT;
- Empty set (0.00 sec)
-
- root@db 17:47: [test1]>
- root@db 17:47: [test1]>
- root@db 17:49: [test1]> load data local infile '/data/backup/DEPT.txt' into table DEPT;
- Query OK, 4 rows affected (0.01 sec)
- Records: 4 Deleted: 0 Skipped: 0 Warnings: 0
-
- root@db 17:49: [test1]>
- root@db 17:49: [test1]>
- root@db 17:49: [test1]> select * from DEPT;
- +--------+------------+----------+
- | DEPTNO | DNAME | LOC |
- +--------+------------+----------+
- | 10 | ACCOUNTING | NEW YORK |
- | 20 | RESEARCH | DALLAS |
- | 30 | SALES | CHICAGO |
- | 40 | OPERATIONS | BOSTON |
- +--------+------------+----------+
- 4 rows in set (0.00 sec)
-
- root@db 17:49: [test1]>
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
- root@db 11:28: [(none)]> use test1
- Database changed
- root@db 11:28: [test1]>
- root@db 11:28: [test1]> show tables;
- +-----------------+
- | Tables_in_test1 |
- +-----------------+
- | DEPT |
- +-----------------+
- 1 rows in set (0.00 sec)
-
- root@db 11:28: [test1]>
- root@db 11:31: [test1]> create table sbtest1(id int(10) unsigned primary key,k int(10) unsigned,c char(120),pad char(60));
- Query OK, 0 rows affected (0.05 sec)
-
- root@db 11:32: [test1]> desc sbtest1;
- +-------+------------------+------+-----+---------+-------+
- | Field | Type | Null | Key | Default | Extra |
- +-------+------------------+------+-----+---------+-------+
- | id | int(10) unsigned | NO | PRI | NULL | |
- | k | int(10) unsigned | YES | | NULL | |
- | c | char(120) | YES | | NULL | |
- | pad | char(60) | YES | | NULL | |
- +-------+------------------+------+-----+---------+-------+
- 4 rows in set (0.00 sec)
-
- root@db 11:32: [test1]>
- root@db 11:33: [test1]> create table sbtest2(id int(10) unsigned primary key,k int(10) unsigned,c char(120),pad char(60));
- Query OK, 0 rows affected (0.02 sec)
-
- root@db 11:33: [test1]>
- root@db 11:33: [test1]> desc sbtest2;
- +-------+------------------+------+-----+---------+-------+
- | Field | Type | Null | Key | Default | Extra |
- +-------+------------------+------+-----+---------+-------+
- | id | int(10) unsigned | NO | PRI | NULL | |
- | k | int(10) unsigned | YES | | NULL | |
- | c | char(120) | YES | | NULL | |
- | pad | char(60) | YES | | NULL | |
- +-------+------------------+------+-----+---------+-------+
- 4 rows in set (0.00 sec)
-
- root@db 11:33: [test1]>
- root@db 11:33: [test1]> show tables;
- +-----------------+
- | Tables_in_test1 |
- +-----------------+
- | DEPT |
- | sbtest1 |
- | sbtest2 |
- +-----------------+
- 3 rows in set (0.00 sec)
-
- root@db 11:33: [test1]>
- root@db 11:33: [test1]> exit
- Bye
- [root@source ~]#
- [root@source ~]# cd /data/
- [root@source data]#
- [root@source data]# ll
- total 18372
- drwxr-xr-x 2 mysql mysql 4096 Mar 21 11:35 backup
- drwxr-xr-x 7 mysql mysql 4096 Mar 21 11:19 mysql
- -rw-r--r-- 1 root root 6264322 Mar 21 11:36 sbtest1.txt
- -rw-r--r-- 1 root root 6264322 Mar 21 11:36 sbtest2.txt
- [root@source data]#
- [root@source data]# more sbtest1.txt
- 1 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 2 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 3 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 4 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 5 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 6 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 7 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 8 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 9 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 10 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 11 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 12 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 13 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 14 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 15 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 16 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 17 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 18 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 19 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 20 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 21 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 22 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 23 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 24 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 25 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 26 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 27 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 28 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 29 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 30 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 31 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 32 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 33 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 34 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 35 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 36 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 37 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 38 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 39 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 40 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 41 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 42 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 43 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 44 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
-
- 。。。。。。
-
- [root@source data]# more sbtest2.txt
- 1 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 2 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 3 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 4 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 5 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 6 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 7 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 8 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 9 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 10 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 11 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 12 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 13 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 14 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 15 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 16 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 17 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 18 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 19 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 20 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 21 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 22 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 23 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 24 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 25 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 26 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 27 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 28 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 29 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 30 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 31 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 32 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 33 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 34 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 35 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 36 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 37 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 38 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 39 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 40 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 41 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 42 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 43 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
- 44 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt
-
- 。。。。。。
-
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
下面演示串行导入2张表数据:
mysqlimport -uroot -poracle test1 /data/sbtest1.txt /data/sbtest2.txt
show full processlist;
窗口1:
- [root@source data]# mysqlimport -uroot -poracle test1 /data/sbtest1.txt /data/sbtest2.txt
- test1.sbtest1: Records: 100011 Deleted: 0 Skipped: 0 Warnings: 0
- test1.sbtest2: Records: 100011 Deleted: 0 Skipped: 0 Warnings: 0
- [root@source data]#
窗口2:
如果在上述命令的运行过程中,查看MySQL的数据库线程列表,应该可以看到类似如下内容:
- root@db 11:38: [(none)]> show full processlist;
- +----+------+-----------+-------+---------+------+-----------+----------------------------------------------------------------------------+
- | Id | User | Host | db | Command | Time | State | Info |
- +----+------+-----------+-------+---------+------+-----------+----------------------------------------------------------------------------+
- | 9 | root | localhost | NULL | Query | 0 | starting | show full processlist |
- | 10 | root | localhost | test1 | Query | 1 | executing | LOAD DATA INFILE '/data/sbtest1.txt' INTO TABLE `sbtest1` IGNORE 0 LINES |
- +----+------+-----------+-------+---------+------+-----------+----------------------------------------------------------------------------+
- 2 rows in set (0.00 sec)
-
- root@db 11:38: [(none)]>
- root@db 11:38: [(none)]> show full processlist;
- +----+------+-----------+-------+---------+------+-----------+----------------------------------------------------------------------------+
- | Id | User | Host | db | Command | Time | State | Info |
- +----+------+-----------+-------+---------+------+-----------+----------------------------------------------------------------------------+
- | 9 | root | localhost | NULL | Query | 0 | starting | show full processlist |
- | 10 | root | localhost | test1 | Query | 1 | executing | LOAD DATA INFILE '/data/sbtest2.txt' INTO TABLE `sbtest2` IGNORE 0 LINES |
- +----+------+-----------+-------+---------+------+-----------+----------------------------------------------------------------------------+
- 2 rows in set (0.00 sec)
-
- root@db 11:38: [(none)]>
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
可以看到,mysqlimport每次只有一个线程在导入数据,不加–use-threads=2参数,是串行地导人数据。
下面通过mysqlimport并发地导入2张表:
mysqlimport -uroot -poracle --use-threads=2 test1 /data/sbtest1.txt /data/sbtest2.txt
show full processlist;
窗口1:
- [root@source data]# mysqlimport -uroot -poracle --use-threads=2 test1 /data/sbtest1.txt /data/sbtest2.txt
- test1.sbtest1: Records: 100011 Deleted: 0 Skipped: 0 Warnings: 0
- test1.sbtest2: Records: 100011 Deleted: 0 Skipped: 0 Warnings: 0
窗口2:
如果在上述命令的运行过程中,查看MySQL的数据库线程列表,应该可以看到类似如下内容:
- root@db 11:45: [(none)]> show full processlist;
- +----+------+-----------+-------+---------+------+-----------+----------------------------------------------------------------------------+
- | Id | User | Host | db | Command | Time | State | Info |
- +----+------+-----------+-------+---------+------+-----------+----------------------------------------------------------------------------+
- | 9 | root | localhost | NULL | Query | 0 | starting | show full processlist |
- | 11 | root | localhost | test1 | Query | 1 | executing | LOAD DATA INFILE '/data/sbtest1.txt' INTO TABLE `sbtest1` IGNORE 0 LINES |
- | 12 | root | localhost | test1 | Query | 1 | executing | LOAD DATA INFILE '/data/sbtest2.txt' INTO TABLE `sbtest2` IGNORE 0 LINES |
- +----+------+-----------+-------+---------+------+-----------+----------------------------------------------------------------------------+
- 3 rows in set (0.00 sec)
-
- root@db 11:45: [(none)]>
可以看到,加–use-threads=2参数后,mysqlimport实际上是同时执行了两句LOAD DTA INFILE并发地导人数据。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。