国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【MySQL】使用LOAD DATA INFILE命令加載數(shù)據(jù)文件到MySQL數(shù)據(jù)庫的方法和常見錯(cuò)誤及解決方法

這篇具有很好參考價(jià)值的文章主要介紹了【MySQL】使用LOAD DATA INFILE命令加載數(shù)據(jù)文件到MySQL數(shù)據(jù)庫的方法和常見錯(cuò)誤及解決方法。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

【免責(zé)聲明】文章僅供學(xué)習(xí)交流,觀點(diǎn)代表個(gè)人,與任何公司無關(guān)。
編輯|SQL和數(shù)據(jù)庫技術(shù)(ID:SQLplusDB)

【MySQL】使用LOAD DATA INFILE命令加載數(shù)據(jù)文件到MySQL數(shù)據(jù)庫的方法和常見錯(cuò)誤及解決方法

在MySQL數(shù)據(jù)庫中,可以使用LOAD DATA INFILE命令將數(shù)據(jù)從 CSV 文件導(dǎo)入已創(chuàng)建的表中。

LOAD DATA INFILE的語法詳細(xì)

LOAD DATA INFILE的語法詳細(xì)如下:

LOAD DATA
    [LOW_PRIORITY | CONCURRENT] [LOCAL]
    INFILE 'file_name'
    [REPLACE | IGNORE]
    INTO TABLE tbl_name
    [PARTITION (partition_name [, partition_name] ...)]
    [CHARACTER SET charset_name]
    [{FIELDS | COLUMNS}
        [TERMINATED BY 'string']
        [[OPTIONALLY] ENCLOSED BY 'char']
        [ESCAPED BY 'char']
    ]
    [LINES
        [STARTING BY 'string']
        [TERMINATED BY 'string']
    ]
    [IGNORE number {LINES | ROWS}]
    [(col_name_or_user_var
        [, col_name_or_user_var] ...)]
    [SET col_name={expr | DEFAULT}
        [, col_name={expr | DEFAULT}] ...]

參考:
3.3.3 Loading Data into a Table
https://dev.mysql.com/doc/refman/8.0/en/load-data.html

6.1.6 Security Considerations for LOAD DATA LOCAL
https://dev.mysql.com/doc/refman/8.0/en/load-data-local-security.html文章來源地址http://www.zghlxwxcb.cn/news/detail-700130.html

具體步驟如下。

1.創(chuàng)建(選擇)目標(biāo)數(shù)據(jù)庫和表

創(chuàng)建測試數(shù)據(jù)庫testdb和相關(guān)的表

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sakila             |
| sys                |
+--------------------+
5 rows in set (0.05 sec)

mysql> CREATE DATABASE testdb;
Query OK, 1 row affected (0.10 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sakila             |
| sys                |
| testdb             |
+--------------------+
6 rows in set (0.00 sec)

mysql> use testdb;
Database changed
mysql> CREATE TABLE Student (
    -> id INT PRIMARY KEY,
    -> name VARCHAR(50)
    -> );
Query OK, 0 rows affected (0.35 sec)

2.將數(shù)據(jù)從 CSV 文件導(dǎo)入已創(chuàng)建的表

LOAD DATA INFILE 'students.csv'
INTO TABLE student
FIELDS TERMINATED BY ',' -- 字段分隔符
ENCLOSED BY '"' -- 字段使用的引號
ESCAPED BY '\\' -- 轉(zhuǎn)義符
LINES TERMINATED BY '\n' -- 行分隔符
IGNORE 1 ROWS; -- 忽略 CSV 文件第一行(表頭)

執(zhí)行例:

mysql>  show variables like 'secure_file_priv';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| secure_file_priv | F:\   |
+------------------+-------+
1 row in set, 1 warning (0.00 sec)

mysql> LOAD DATA INFILE 'F:\\students.csv'
    -> INTO TABLE student
    -> FIELDS TERMINATED BY ',' -- 字段分隔符
    -> ENCLOSED BY '"' -- 字段使用的引號
    -> ESCAPED BY '\\' -- 轉(zhuǎn)義符
    -> LINES TERMINATED BY '\n' -- 行分隔符
    -> IGNORE 1 ROWS; -- 忽略 CSV 文件第一行(表頭)
Query OK, 100 rows affected (0.09 sec)
Records: 100  Deleted: 0  Skipped: 0  Warnings: 0

mysql> select count(*) from student;
+----------+
| count(*) |
+----------+
|      100 |
+----------+
1 row in set (0.00 sec)

常見錯(cuò)誤和解決方法

錯(cuò)誤1:ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

在將數(shù)據(jù)加載到MySQL數(shù)據(jù)庫時(shí)發(fā)生如下錯(cuò)誤。

mysql> LOAD DATA INFILE 'students.csv'
    -> INTO TABLE student
    -> FIELDS TERMINATED BY ',' -- 字段分隔符
    -> ENCLOSED BY '"' -- 字段使用的引號
    -> ESCAPED BY '\\' -- 轉(zhuǎn)義符
    -> LINES TERMINATED BY '\n' -- 行分隔符
    -> IGNORE 1 ROWS; -- 忽略 CSV 文件第一行(表頭)
ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
mysql>
原因

這個(gè)錯(cuò)誤表示由于 MySQL中 --secure-file-priv 選項(xiàng)的設(shè)置,限制了用戶從本地文件系統(tǒng)加載數(shù)據(jù)到服務(wù)器中。

解決方法

修改secure_file_priv參數(shù)為文件所在目錄 或者 指定為空。

關(guān)于secure_file_priv參數(shù)

secure_file_priv是一個(gè)MySQL 全局(Global)系統(tǒng)變量,用于限制數(shù)據(jù)導(dǎo)入和導(dǎo)出操作,例如LOAD DATA和SELECT … INTO OUTFILE語句以及LOAD_FILE()函數(shù)的操作。只有擁有FILE權(quán)限的用戶才能執(zhí)行這些操作。

secure_file_priv的設(shè)置包括三種情況:

 - 如果為空(secure-file-priv=“”),表示沒有任何限制。這不是一個(gè)安全的設(shè)置。
 - 如果設(shè)置為目錄的名稱,表示服務(wù)器限制導(dǎo)入和導(dǎo)出操作僅使用該目錄中的文件。服務(wù)器不會(huì)創(chuàng)建該目錄,所以必須為存在的路徑。
 - 如果設(shè)置為NULL(secure-file-priv=null),表示服務(wù)器禁用導(dǎo)入和導(dǎo)出操作。

secure_file_priv的默認(rèn)值根據(jù)安裝的平臺有所不同。

secure_file_priv參數(shù)內(nèi)容如下:

Command-Line Format –secure-file-priv=dir_name
System Variable secure_file_priv
Scope Global
Dynamic No
SET_VAR Hint Applies No
Type String
Default Value platform specific
Valid Values empty string, dirname, NULL

參考:
https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_secure_file_priv

查看secure_file_priv參數(shù)設(shè)置

可以通過以下命令查看 secure_file_priv 的當(dāng)前設(shè)置值:

SHOW VARIABLES LIKE 'secure_file_priv';

例:

mysql> show variables like 'secure_file_priv';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| secure_file_priv | F:\   |
+------------------+-------+
1 row in set, 1 warning (0.00 sec)
修改secure_file_priv參數(shù)

因?yàn)閟ecure_file_priv是一個(gè)非持久化只讀變量,不能通過SET命令進(jìn)行修改。
所以需要在MySQL配置文件my.cnf (Mac, Linux) 或者 my.ini (Windows) 中設(shè)置secure-file-priv參數(shù)。具體操作方法如下:

打開MySQL配置文件my.cnf或my.ini。
添加或修改secure-file-priv參數(shù),例如:secure-file-priv=/var/lib/mysql-files。
保存并關(guān)閉文件。
重啟MySQL服務(wù)器,使配置生效。
	net stop mysql
	net start mysql

例:(Windows)
mysqlload命令,MySQL入門與精通,數(shù)據(jù)庫,mysql,SQL、
注意:確保設(shè)置的路徑存在,并且MySQL用戶有訪問該路徑的權(quán)限。
如果secure_file_priv設(shè)置不正確,可能導(dǎo)致MySQL進(jìn)程啟動(dòng)失敗。

錯(cuò)誤2:ERROR 2068 (HY000): LOAD DATA LOCAL INFILE file request rejected due to restrictions on access.

使用 LOAD DATA LOCAL INFILE,從客戶端加載數(shù)據(jù)到數(shù)據(jù)庫的時(shí)候,可能發(fā)生如下錯(cuò)誤。

--服務(wù)器端未啟動(dòng)LOAD DATA LOCAL INFILE功能
ERROR 3948 (42000): Loading local data is disabled; this must be enabled on both the client and server sides
--客戶端未啟動(dòng)LOAD DATA LOCAL INFILE功能
ERROR 2068 (HY000): LOAD DATA LOCAL INFILE file request rejected due to restrictions on access.

例:

mysql>  LOAD DATA LOCAL INFILE 'F:\\students.csv'
    ->  INTO TABLE student
    ->  FIELDS TERMINATED BY ',' -- 字段分隔符
    ->  ENCLOSED BY '"' -- 字段使用的引號
    ->  ESCAPED BY '\\' -- 轉(zhuǎn)義符
    ->  LINES TERMINATED BY '\n' -- 行分隔符
    ->  IGNORE 1 ROWS;
ERROR 3948 (42000): Loading local data is disabled; this must be enabled on both the client and server sides
mysql>

原因

這個(gè)錯(cuò)誤是因?yàn)槟J(rèn)情況下,MySQL服務(wù)器禁止使用LOAD DATA LOCAL INFILE命令從客戶端讀取本地文件。

解決方法

1.服務(wù)器端設(shè)置local_infile,啟用LOAD DATA LOCAL INFILE功能。

修改local_infile為啟用。
例:

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

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

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

2.客戶端在連接MySQL服務(wù)器時(shí)添加–local-infile選項(xiàng),啟用LOAD DATA LOCAL INFILE功能。

例:
C:\Users\Administrator> mysql --local-infile=1 -u root -p
mysql> use testdb
Database changed
mysql>  LOAD DATA LOCAL INFILE 'F:\\students.csv'
    ->  INTO TABLE student
    ->  FIELDS TERMINATED BY ',' -- 字段分隔符
    ->  ENCLOSED BY '"' -- 字段使用的引號
    ->  ESCAPED BY '\\' -- 轉(zhuǎn)義符
    ->  LINES TERMINATED BY '\n' -- 行分隔符
    ->  IGNORE 1 ROWS;
Query OK, 0 rows affected, 100 warnings (0.08 sec)
Records: 100  Deleted: 0  Skipped: 100  Warnings: 100

mysql> select count(*) from student;
+----------+
| count(*) |
+----------+
|      100 |
+----------+
1 row in set (0.05 sec)
關(guān)于local_infile參數(shù)

local_infile參數(shù)是一個(gè)MySQL系統(tǒng)變量,用于控制服務(wù)器端LOAD DATA語句的LOCAL功能。
根據(jù)local_infile設(shè)置,服務(wù)器會(huì)拒絕或允許啟用客戶端LOCAL功能的客戶端加載本地?cái)?shù)據(jù)。

Command-Line Format –local-infile
System Variable local_infile
Scope Global
Dynamic Yes
SET_VAR Hint Applies No
Type Boolean
Default Value OFF

注意:local_infile參數(shù)可以動(dòng)態(tài)修改。

參考:
https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_local_infile

6.1.6 Security Considerations for LOAD DATA LOCAL
https://dev.mysql.com/doc/refman/8.0/en/load-data-local-security.html

到了這里,關(guān)于【MySQL】使用LOAD DATA INFILE命令加載數(shù)據(jù)文件到MySQL數(shù)據(jù)庫的方法和常見錯(cuò)誤及解決方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 使用 adb 命令修改 Android/data 目錄下的文件(給碧藍(lán)檔案國服吃布丁)

    使用 adb 命令修改 Android/data 目錄下的文件(給碧藍(lán)檔案國服吃布丁)

    本文記錄如何使用 adb 命令修改 Android/data 目錄下的文件,然后給國服的碧藍(lán)檔案打上布丁??~ 今天下午刷著刷著微博就看到國服 BA 又又又發(fā)了和諧公告 ... 心情復(fù)雜。jpg 于是乎終于想起來得吃布丁??了,至于此次更新后布丁有沒有用還未知,但還是先搞上 食用方法之前就出

    2024年03月24日
    瀏覽(20)
  • Hive(18):DML之Load加載數(shù)據(jù)

    Hive(18):DML之Load加載數(shù)據(jù)

    1 背景 回想一下,當(dāng)在Hive中創(chuàng)建好表之后,默認(rèn)就會(huì)在HDFS上創(chuàng)建一個(gè)與之對應(yīng)的文件夾,默認(rèn)路徑是由參數(shù)hive.metastore.warehouse.dir控制,默認(rèn)值是/user/hive/warehouse。 要想讓hive的表和結(jié)構(gòu)化的數(shù)據(jù)文件產(chǎn)生映射,就需要把文件移到到表對應(yīng)的文件夾下面,當(dāng)然,可以在建表的時(shí)

    2024年02月13日
    瀏覽(23)
  • 如何使用Spring Data JPA簡化MySQL數(shù)據(jù)訪問

    本篇文章是 “一起學(xué)習(xí)mysql” 系列的第五篇文章,本篇文章我們學(xué)習(xí)一下Spring Data JPA的使用,在開始學(xué)習(xí)器,我們先來了解一下什么是JPA。 JPA的全稱是Java Persistence API,是J2EE中的一條規(guī)范,它標(biāo)準(zhǔn)化了數(shù)據(jù)持久化API。在上一篇文章中,我們了解了如何使用MyBatis進(jìn)行MySQL數(shù)據(jù)

    2024年02月15日
    瀏覽(28)
  • Hive數(shù)據(jù)加載方式(load、insert;普通表、分區(qū)表)

    介紹 Hive 數(shù)據(jù)加載方式(insert、load) 基礎(chǔ)語法: load data [local] inpath \\\'/opt/module/datas/student.txt\\\' [overwrite] into table student[partition ] 參數(shù)說明: 1 load data: 表示加載數(shù)據(jù) 2 local: 表示從本地加載數(shù)據(jù)到 hive 表;否則從 HDFS 加載數(shù)據(jù)到 hive 表 3 inpath: 表示加載數(shù)據(jù)的路徑 相對路徑,例如

    2024年02月03日
    瀏覽(17)
  • 使用java命令運(yùn)行class文件提示“錯(cuò)誤:找不到或無法加載主類“的問題分析

    使用java命令運(yùn)行class文件提示“錯(cuò)誤:找不到或無法加載主類“的問題分析

    1.可能是編譯的時(shí)候后綴帶了.class:把后綴去掉; 2.可能是因?yàn)槟愕膉ava文件帶了package包,原因是:我們在包里運(yùn)行文件,在運(yùn)行文件的時(shí)候又找了一次包,可是我們已經(jīng)在包里了,自然找不到主類了。 針對第二種錯(cuò)誤解決方法有兩種: 方法一:把java文件中的包刪掉或者注釋

    2024年02月15日
    瀏覽(31)
  • 使用ts-node命令運(yùn)行ts文件時(shí)報(bào)錯(cuò)(Warning: To load an ES module, set “type“: “module“ in the package.json...)

    使用 ts-node 運(yùn)行TS文件時(shí)報(bào)錯(cuò)。 錯(cuò)誤信息1: 錯(cuò)誤信息2: ts-node 版本: ^10.8.0 , typescript 版本: ^4.6.3 。 tsconfig.json 文件內(nèi)容如下 在網(wǎng)上查找了一些資料,出現(xiàn)類似問題的有很多,鏈接如下: http://www.longant.cn/en/node/7289 https://stackoverflow.com/questions/62096269/cant-run-my-node-js-typescr

    2024年02月16日
    瀏覽(39)
  • docker使用load加載tar鏡像時(shí)報(bào)錯(cuò)no such file or directory

    解決docker在使用load加載tar鏡像時(shí)報(bào)錯(cuò) open /var/lib/docker/tmp/docker-import-xxxxxxxxx/repositories: no such file or directory 在使用docker進(jìn)行部署時(shí),使用docker save指令對鏡像打包成tar文件,在部署機(jī)器上使用docker load部署時(shí)報(bào)錯(cuò),顯示open /var/lib/docker/tmp/docker-import-xxxxxxxxx/repositories: no such file

    2024年02月12日
    瀏覽(20)
  • launch文件加載urdf到rviz和gazebo中報(bào)錯(cuò) Invalid <param> tag: Cannot load command parameter [robot_description]

    ? ? ? ? 在學(xué)習(xí)趙虛左老師的ros入門教程urdf一章時(shí),使用?launch文件加載urdf到rviz和gazebo中的時(shí)候(命令如下) 意外出現(xiàn)報(bào)錯(cuò): 這是我的launch文件,與老師的除了幾個(gè)名稱其他一樣 它一直提示標(biāo)簽無效,我以為是拼寫錯(cuò)誤,但仔細(xì)檢查了一遍后沒找到問題,去網(wǎng)上查找也沒找

    2024年02月14日
    瀏覽(27)
  • 如何在 MySQL 中使用命令行導(dǎo)入 SQL 文件?

    我有一個(gè)從 phpMyAdmin 導(dǎo)出的 .sql 文件。我想使用命令行將它導(dǎo)入到不同的服務(wù)器中。 我有一個(gè) Windows Server 2008 R2 安裝。我將 .sql 文件放在 C 盤 上,并嘗試了此命令 它不工作。我收到語法錯(cuò)誤。 我怎樣才能毫無問題地導(dǎo)入這個(gè)文件? 我需要先創(chuàng)建一個(gè)數(shù)據(jù)庫嗎? 打造屬于自

    2023年04月09日
    瀏覽(21)
  • 【深度學(xué)習(xí)】torch.utils.data.DataLoader相關(guān)用法 | dataloader數(shù)據(jù)加載器 | pytorch

    【深度學(xué)習(xí)】torch.utils.data.DataLoader相關(guān)用法 | dataloader數(shù)據(jù)加載器 | pytorch

    dataloader數(shù)據(jù)加載器屬于是深度學(xué)習(xí)里面非常基礎(chǔ)的一個(gè)概念了,基本所有的圖像項(xiàng)目都會(huì)用上,這篇博客就把它的相關(guān)用法總結(jié)一下。 之所以要寫這篇,是想分清楚len(data_loader)和len(data_loader.dataset) 這里加載的數(shù)據(jù)我們以Mnist手寫數(shù)據(jù)集為例子 torchvision.datasets.MNIST是用來加載

    2024年02月16日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包