如何解决错误2068HY000:由于访问限制,拒绝了LOAD DATA LOCAL INFILE文件请求
评论我正在尝试,
mysql>
LOAD DATA LOCAL INFILE '/var/tmp/countries.csv'
INTO TABLE countries
FIELDS TERMINATED BY ','
ENCLOSED BY '"' LINES
TERMINATED BY '\n'
IGNORE 1 LINES
(CountryId,CountryCode,CountryDescription,CountryRegion,LastUpdatedDate,created_by,created_on)
SET created_by = 'DH_INITIAL_LOAD',created_on = current_timestamp();
错误2068(HY000):由于访问限制,拒绝了LOAD DATA LOCAL INFILE文件请求。
一切正常,我为python脚本下载了pymysql和mysql连接器。我已卸载并检查仍然无法正常工作。 版本和档案已开启,
select version() -| 8.0.17
mysql> SHOW GLOBAL VARIABLES LIKE 'local_infile';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| local_infile | ON |
+---------------+-------+
1 row in set (0.00 sec)
解决方法
已知问题:https://bugs.mysql.com/bug.php?id=91872
有关尝试自行连接到mysql时的解决方法,请将local-infile设置为1并执行load命令: mysql -local-infile = 1 -h $ MASTER_DB_HOST -u $ MASTER_DB_USER -p $ MASTER_DB_PASSWD -D $ MASTER_DB_NAME
,对于 ubuntu:
-
编辑文件/etc/mysql/mysql.conf.d/mysqld.cnf并在最后添加以下行:
# secure_file_priv=""
-
重启服务
systemctl stop mysql systemctl start mysql
-
运行:mysql -u root -p 并检查本地 infile 变量
mysql> show global variables like 'local_infile'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | local_infile | OFF | +---------------+-------+ 1 row in set (0.00 sec)
-
mysql> set global local_infile=true; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | local_infile | ON | +---------------+-------+ 1 row in set (0.00 sec)
-
mysql> exit Bye
-
运行
mysql --local-infile=1 -u root -p
-
LOAD DATA INFILE '/var/lib/mysql-files/filename' INTO TABLE tablename;
使用MySql Workbench 8或更高版本引入了此问题。这对我来说是固定的:
此限制可以从MySQL Workbench 8.0中的 以下方式。编辑连接,在“连接”选项卡上,转到 “高级”子标签,然后在“其他:”框中添加该行 “ OPT_LOCAL_INFILE = 1”。
这应该允许使用工作台的客户端运行LOAD DATA INFILE 像往常一样。
从此链接引用: https://bugs.mysql.com/bug.php?id=91872
,修复这个错误(mysql 8):
ERROR 2068 (HY000): LOAD DATA LOCAL INFILE 文件请求被拒绝 访问限制。
将以下行添加到服务器的配置文件中的“客户端”部分:
[client]
loose-local-infile=1
这将修复错误。但是,这假设您已经在“mysqld”部分下设置了以下内容:
[mysqld]
local_infile=1
在配置文件中设置这两个参数将允许从任何目录加载数据。
这是一个简单的使用示例。在mysql终端运行:
load data local infile '/path/to/file/data.tsv' into table my_table_name
fields terminated by '\t'
LINES TERMINATED BY '\n'
(
`col1`,`col2`,`col3`,`col4`
);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。