MySQL 批量导入数据,load data 命令

本文将介绍 MySQL 中,怎样使用 load data 命令批量导入数据。

本文将演示怎样使用 mysql 的 load data 命令批量导入数据。

创建表

CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

准备数据

在桌面上创建一个 data.txt 文件,文件内容如下:

1,Helen
2,Tom
3,Bill
4,Cay
5,Gary

导入数据

打开 mysql 的客户端,连接到 mysql 服务器,运行 load data infile ** into table ** 命令,下面命令将每行当做数据表一行,字段间使用逗号分割,如下:

mysql> load data infile 'C:\\Users\\Administrator\\Desktop\\user.txt' into table user fields terminated by ',';
Query OK, 5 rows affected (0.01 sec)
Records: 5  Deleted: 0  Skipped: 0  Warnings: 0

验证刚刚导入的5条数据,如下:

mysql> select * from user;
+----+-------+
| id | name  |
+----+-------+
| 1  | Helen
 |
| 2  | Tom
   |
| 3  | Bill
  |
| 4  | Cay
   |
| 5  | Gary  |
+----+-------+
5 rows in set (0.07 sec)

可能会遇见的错误

The MySQL server is running with the --secure-file-priv option so it cannot execute this statement 错误

在执行导入数据时,抛出如下错误:

mysql> load data infile 'C:\\Users\\Administrator\\Desktop\\user.txt' into table user fields terminated by ',';
ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

执行导入命令出现了“The MySQL server is running with the --secure-file-priv option so it cannot execute this statement”错误。该错误是由于 secure-file-priv 变量的默认设置为 NULL 所引起的,该值意味着只能导出到指定目录下(已验证),否则会报错。使用如下命令查看 mysql 数据库该变量值:

mysql> show variables like '%secure%';
+--------------------------+-------+
| Variable_name            | Value |
+--------------------------+-------+
| require_secure_transport | OFF   |
| secure_auth              | ON    |
| secure_file_priv         | NULL  |
+--------------------------+-------+
3 rows in set (0.04 sec)

解释:

(1)secure_file_prive=null,限制 mysqld 不允许导入导出

(2)secure_file_priv=/var/lib/mysql-files/,限制 mysqld 的导入导出只能发生在 /var/lib/mysql-files/ 目录下

(3)secure_file_priv=' ',不对 mysqld 的导入导出做限制

通过修改 my.ini 文件,添加如下内容:

[mysqld]
# ... 下面行内容
secure_file_priv=''

然后,重启 MySQL 服务,再次查看 secure-file-priv 变量的值,如下:

mysql> show variables like '%secure%';
+--------------------------+-------+
| Variable_name            | Value |
+--------------------------+-------+
| require_secure_transport | OFF   |
| secure_auth              | ON    |
| secure_file_priv         |       |
+--------------------------+-------+
3 rows in set (0.04 sec)
不傲才以骄人,不以宠而作威。——诸葛亮
0 不喜欢
说说我的看法 -
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号