【mysql】CSV文件导入mysql(命令)

这篇具有很好参考价值的文章主要介绍了【mysql】CSV文件导入mysql(命令)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

CSV文件导入mysql(命令)

查看本地是否支持导入:show variables like ‘%secure%’

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

secure_file_priv = NULL,表示限制不能导出导入

secure_file_priv = /tmp,表示限制在/tmp目录中执行导出导入

secure_file_priv = ,表示不限制在任意目录都可导出导入

secure_file_priv是一个只读变量,不能通过set global修改

mysql> set global secure_file_priv='';
ERROR 1238 (HY000): Variable 'secure_file_priv' is a read only variable

mac版本没有my.cnf文件,需要自己写:

1、查找mysql文件所在

root1@guodeMacBook-Pro /etc % mdfind -name mysql
root1@guodeMacBook-Pro /etc % cd /usr/local      
root1@guodeMacBook-Pro local % ls
bin				go				mysql				mysql-8.0.30-macos12-arm64	mysql-8.0.32-macos13-arm64
root1@guodeMacBook-Pro local % ls -la
total 0
drwxr-xr-x   7 root  wheel  224  2 13 18:34 .
drwxr-xr-x@ 11 root  wheel  352  2 26  2022 ..
drwxr-xr-x  22 root  wheel  704 10 16 17:09 bin
drwxr-xr-x  17 root  wheel  544  8  2  2022 go
lrwxr-xr-x   1 root  wheel   26  2 13 18:34 mysql -> mysql-8.0.32-macos13-arm64  -- 映射
drwxr-xr-x   4 root  wheel  128  2 13 18:34 mysql-8.0.30-macos12-arm64
drwxr-xr-x  13 root  wheel  416  2 13 18:35 mysql-8.0.32-macos13-arm64
root1@guodeMacBook-Pro local % cd mysql-8.0.32-macos13-arm64 
root1@guodeMacBook-Pro mysql-8.0.32-macos13-arm64 % ls
LICENSE		bin		docs		keyring		man		support-files
README		data		include		lib		share
root1@guodeMacBook-Pro mysql-8.0.32-macos13-arm64 % pwd

2、创建my.cnf

root1@guodeMacBook-Pro mysql-8.0.32-macos13-arm64 % sudo touch my.cnf
root1@guodeMacBook-Pro mysql-8.0.32-macos13-arm64 % ls
LICENSE		bin		docs		keyring		man		share
README		data		include		lib		my.cnf		support-files
root1@guodeMacBook-Pro mysql-8.0.32-macos13-arm64 % 

3、添加内容,保存退出

[client]

default-character-set=utf8

[mysqld_safe]

[mysqld]

secure_file_priv=""

character-set-server=utf8


 sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'

 [mysql] 

 default-character-set=utf8 

4、设置mysql配置文件

打开系统偏好设置

苹果系统偏好设置----->找到MySQL---->点击Configuration---->勾选configuration并将my.cnf路径添加上去---->重启mysql

5、查看本地是否可以导入数据

mysql> show variables like '%secure%';
+--------------------------+-------+
| Variable_name            | Value |
+--------------------------+-------+
| require_secure_transport | OFF   |
| secure_file_priv         |       |
+--------------------------+-------+
2 rows in set (0.01 sec)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aaJZAtLx-1678411162483)(/Users/root1/Library/Application Support/typora-user-images/image-20230307195059605.png)]

6、csv导入到mysql

load data local infile '/Users/root1/File/flask/myproject/111-main/res/newbook.csv' # 文件路径
into table books             # 表名
character set utf8                 # 编码
fields terminated by ','           # 分隔符
lines terminated by '\r\n'         # 换行符,windows下是\r\n
ignore 1 lines;                    # 忽略第一行,因为表头已建好

报错:Error Code: 3948. Loading local data is disabled; this must be enabled on both the client and server sides

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-53wlP822-1678411162483)(/Users/root1/Library/Application Support/typora-user-images/image-20230307195833324.png)]

解决方法:

forLoading local data被禁用;这必须在客户端和服务器端都启用

原因:我们的这种报错是属于mysql导入数据报错:local_infile服务器变量指示能否使用load data local infile命令。该变量为OFF时,禁用客户端的load data local infile命令,只要我们将该变量设置为ON时, 报错才会消失。

设置local_infile=on:show variables like ‘%local_infile’

mysql> show variables like '%local_infile';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| local_infile  | OFF   |
+---------------+-------+
1 row in set (0.01 sec)

mysql> set global local_infile=1;
Query OK, 0 rows affected (0.00 sec)

mysql> show variables like '%local_infile';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| local_infile  | ON    |
+---------------+-------+
1 row in set (0.00 sec)

执行csv导入mysql插入语句

报错:Error Code: 2068. LOAD DATA LOCAL INFILE file request rejected due to restrictions on access.

原因:登录mysql时加上–local-infile参数即可:mysql -uroot -p123456 --local-infile
由于我用的mysql command line client,在登录时无法选择参数,因此可以切换用户,等同于重新登录。

root1@guodeMacBook-Pro ~ % mysql -uroot -p --local-infile
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 14
Server version: 8.0.32 MySQL Community Server - GPL

Copyright (c) 2000, 2023, Oracle and/or its affiliates.

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.

mysql> 

切换数据库文章来源地址https://www.toymoban.com/news/detail-480163.html

mysql> use Flask_book;					-- 切换数据库
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
+----------------------+
| Tables_in_flask_book |
+----------------------+
| book_country_num     |
| book_people_title    |
| book_presstime_num   |
| book_publisher_num   |
| book_score_num       |
| books                |
+----------------------+
6 rows in set (0.00 sec)

mysql> select * from books;
Empty set (0.00 sec)


-- csv导入mysql语句
mysql> load data local infile '/Users/root1/File/flask/myproject/111-main/res/newbook.csv' 
    -> replace into table books              
    -> fields terminated by ',' 
    -> optionally enclosed by '"' 
    -> lines terminated by '\n' 
    -> ignore 1 lines;
Query OK, 247 rows affected (0.01 sec)
Records: 247  Deleted: 0  Skipped: 0  Warnings: 0

-- 查看是否插入
mysql> select * from books limit 2;
+-----------+------------------------------------------+---------+--------------+-------------------------+-------------------------+------------+-------+------+-------+--------+---------------------------------------+
| title     | link                                     | country | author       | translator              | publisher               | press_time | price | star | score | people | comment                               |
+-----------+------------------------------------------+---------+--------------+-------------------------+-------------------------+------------+-------+------+-------+--------+---------------------------------------+
| 红楼梦    | https://book.douban.com/subject/1007305/ | 清      | 曹雪芹著     |  人民文学出版社         |  人民文学出版社         |       1996 | 59.70 |    5 |   9.6 | 395299 |             | 解其中味?
| 活着      | https://book.douban.com/subject/4913064/ | 中      | 余华         |                         |  作家出版社             |       2012 | 20.00 |  4.5 |   9.4 | 758324 |                       |
+-----------+------------------------------------------+---------+--------------+-------------------------+-------------------------+------------+-------+------+-------+--------+---------------------------------------+
2 rows in set (0.00 sec)

到了这里,关于【mysql】CSV文件导入mysql(命令)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何在 MySQL 中使用命令行导入 SQL 文件?

    我有一个从 phpMyAdmin 导出的 .sql 文件。我想使用命令行将它导入到不同的服务器中。 我有一个 Windows Server 2008 R2 安装。我将 .sql 文件放在 C 盘 上,并尝试了此命令 它不工作。我收到语法错误。 我怎样才能毫无问题地导入这个文件? 我需要先创建一个数据库吗? 打造属于自

    2023年04月09日
    浏览(38)
  • csv批量导入mysql案例说明

    CSV文件是一种以逗号分隔的值文件,也叫做逗号分隔值文件。它可以在不同软件之间进行数据传输,也可以轻松地将数据导入到MySQL数据库中。本文将介绍如何使用CSV批量导入MySQL命令,并提供一个CSV导入MySQL的案例。 一、CSV批量导入MySQL命令 格式化CSV文件 在将CSV文件导入M

    2024年02月04日
    浏览(48)
  • hive 导入导出csv文件

    1、导入 将CSV文件导入到hive数据库,具体操作如下, 首先在hive中创建自己的table, 并且设置以逗号分隔。 然后 确定tmp.hb_label_C表的分布式文件路径 最后在linux命令行输入 查看结果 2、导出 使用beeline重定向 同时使用以下方式导出数据带表头

    2024年02月16日
    浏览(44)
  • 使用Navicat导入csv数据至mysql

    使用Navicat导入csv数据至mysql 笔者有已进行数据处理的csv,需要将数据信息导入mysql中 步骤1、建立数据表,字段信息(最好)与csv字段信息保持一致,方便后续导入。 具体的,双击选中数据库,点击新建查询,编写查询语句,点击运行,若信息栏显示OK,表示查询语句运行成

    2024年04月12日
    浏览(32)
  • MongoDB 数据库数据导入 - 关于如何使用 csv 导入数据的命令方法、图形界面可视化导入方法

    兴趣使然,突发奇想,想到了就写,就当打发时间了。 csv文件路径问题,绝对路径和相对路径都可以 type 没有=号,也是可以的,空格自动识别 将 测试表.csv 文件导入到 mongodatabase 库, mycollection 集合中,导入时必须指定列名称 (如果 csv 文件第一行是列名称,也会被当成数据

    2023年04月22日
    浏览(58)
  • 将csv文件导入到hbase中

    1.将csv文件拖到/opt下     2、将本地的csv文件上传到HDFS上去     3、之后将上传到HDFS上的文件导入到HBase中。 首先在HBase中建一个表用来存放这个文件的数据: 这里,命名空间为\\\'Test\\\',表名为‘test’ ,列簇名为info1,info2   4、借用mapreduce的包,将csv文件导入到刚才创建的表中

    2024年02月11日
    浏览(35)
  • Neo4j导入csv文件

    Neo4j 数据库可以使用 load csv 命令从 CSV 文件中导入数据。 load csv 命令可以帮助我们导入中小型的数据,理论上大概能处理到一千万条记录。 其中,CSV文件推荐是使用 UTF-8 编码,不然就会造成中文乱码的糟糕情况。 Neo4j的配置文件是 conf 文件夹下的 neo4j.conf 文件,里面有一句

    2023年04月08日
    浏览(90)
  • pl/sql导入、导出csv等格式文件

    pl/sql导入、导出csv等格式文件 PL/SQL Developer 可以导入或者导出CSV文件。 导入CSV文件步骤: 1、选择tools-text importer… 2、选择第二个Data to oracle选项卡,然后选择Open Data file…,选择要导入的csv文件,确定 2.1添加列 2.2这里以 逗号分割, 3、选择对应的owner和table,将字段一一对应

    2024年04月10日
    浏览(49)
  • C#使用CsvHelper 实现csv文件导入导出功能

    一、CsvHelper 库 可通过nuget进行安装 二、封装导入导出方法  public class MyCsvHelper     {         public static bool WriteCsvT(ListT datas,string filePath= \\\"logs/TagData/tag.csv\\\")         {             try             {                 var currentPath = Directory.GetCurrentDirectory();                

    2024年02月11日
    浏览(70)
  • Hive 导入csv文件,数据中包含逗号的问题

    今天 Hive 导入 csv 文件时,开始时建表语句如下: 然后导入 csv 文件,发现数据串列了,查看数据发现是因为数据中包含逗号的问题,因为 csv 文件列分隔符就为逗号,所以直接导入到表中会使数据串列。 查询资料发现是建表语句的问题,所以我们要需要在建表的时候指定列

    2024年02月11日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包