错误:禁用本地数据加载 - 必须在客户端和服务器端都启用。

99

除了最明显的答案,例如下面这个答案,我不理解其他人对类似问题提供的答案。

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

mysql> SHOW GLOBAL VARIABLES LIKE 'local_infile';

+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| local_infile  | ON    |
+---------------+-------+
1 row in set (0.01 sec)

我的意思是提供了确切的代码。如果有人能够逐步为我解释,使我能够在“客户端”和“服务器端”启用本地数据,我将不胜感激。似乎我已经在客户端启用了本地数据,但我不知道需要给电脑什么指令才能启用“服务器端”。我对技术一窍不通,我只想达到这样一个目标:将数据上传到MySQL Workbench。

ERROR 3948 (42000): Loading local data is disabled; this must be enabled on both the client and server sides
CREATE TABLE toys (
uniq_id VARCHAR(1000),
product_name VARCHAR(1000),
manufacturer VARCHAR(1000),
price VARCHAR(1000),
number_available_in_stock VARCHAR (1000),
number_of_reviews INT,
number_of_answered_questions INT,
average_review_rating VARCHAR(1000),
amazon_category_and_sub_category VARCHAR(1000),
customers_who_bought_this_item_also_bought VARCHAR(1000),
description VARCHAR(1000),
product_information VARCHAR(1000),
product_description VARCHAR(1000),
items_customers_buy_after_viewing_this_item VARCHAR(1000),
customer_questions_and_answers VARCHAR(1000),
customer_reviews VARCHAR(1000),
sellers VARCHAR(1000)
);

LOAD DATA LOCAL INFILE ‘/Users/BruddaDave/Desktop/amazonsample.csv’ INTO TABLE toys
FIELDS TERMINATED BY ‘,’
LINES TERMINATED BY ‘\n’
IGNORE 1 LINES
(uniq_id, product_name, manufacturer, price, number_available_in_stock, number_of_reviews, number_of_answered_questions, average_review_rating, amazon_category_and_sub_category, customers_who_bought_this_item_also_bought, description, product_information, product_description, items_customers_buy_after_viewing_this_item, customer_questions_and_answers, customer_reviews, sellers)
;

我只想能够使用命令行 shell 将 .csv 文件导入到 MySQL 中。


这个回答解决了你的问题吗?MySQL:启用LOAD DATA LOCAL INFILE重置 - danblack
15个回答

0

在 SQL 脚本中执行此全局设置更改应该会有所帮助。

SET GLOBAL local_infile=1;

0
解决方案很简单: 使用以下代码: (LOAD DATA INFILE 'data.csv' INTO TABLE TABLE_THAT_WAS_CREATED)
不要使用“LOCAL”来加载本地数据。
将 data.csv 保存在 C:\ProgramData\MySQL\MySQL Server 8.0\Data\TABLE_THAT_WAS_CREATED 中。

0
尝试了以上所有步骤后,仍然收到错误代码2068的错误信息:由于访问限制而拒绝使用文件请求加载数据LOCAL INFILE。解决方法是在SQL语句中消除“LOCAL”这个单词:

load data infile...


0
在Ubuntu 20.04 / MySQL 8上: 这种方法解决了我的问题:
  1. systemctl stop mysql
  2. nano /etc/mysql/mysql.conf.d/mysqld.cnf
  3. 在[mysqld]下添加local_infile =1
  4. systemctl start mysql或者如果您停止了它,请重新启动mysql。

0

对于那些卡在第三步的人:

mysql --local-infile=1 -u root -p1

就像我一样,这是我所做的:

  1. 在命令提示符中键入

cd "C:\Program Files\MySQL\MySQL Server 8.0\bin"

  1. 键入

mysql --local_infile=1 -u root -pABC menagerie

其中ABC是您的MySQL密码,menagerie是您正在使用的数据库 (将ABC和menagerie替换为您的密码和数据库名称)

  1. MySQL将在命令提示符中打开。 您可以键入以下命令:

mysql> use menagerie

Database changed

mysql> load data local infile '/path/pet.txt' into table pet;

Query OK, 8 rows affected, 7 warnings (0.00 sec)

它应该可以工作...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接