P粉3168908842023-08-30 00:09:36
如果在服务器端或客户端禁用 LOCAL 功能,则尝试发出 LOAD DATA LOCAL 语句的客户端会收到以下错误消息:
ERROR 3950 (42000): Loading local data is disabled; this must be enabled on both the client and server side
当我想按照Mysql的教程将文本文件pet.txt加载到pet表中时,遇到了同样的问题:https://dev.mysql.com/doc/refman/8.0/en/loading-tables.html
网上搜索后,我通过以下步骤修复了它:
mysql> SET GLOBAL local_infile=1; Query OK, 0 rows affected (0.00 sec)
mysql> quit Bye
mysql --local-infile=1 -u root -p1
此变量控制 LOAD DATA 语句的服务器端 LOCAL 功能。根据 local_infile 设置,服务器拒绝或允许在客户端启用 LOCAL 的客户端加载本地数据。 要显式地使服务器拒绝或允许 LOAD DATA LOCAL 语句(无论客户端程序和库在构建时或运行时如何配置),请分别在禁用或启用 local_infile 的情况下启动 mysqld。 local_infile 也可以在运行时设置。
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)
有效果吗?
参考文献:
https://dev.mysql。 com/doc/refman/8.0/en/load-data-local-security.html https://dev.mysql.com/doc /refman/8.0/en/source-configuration-options.html#option_cmake_enabled_local_infile https://dev.mysql.com/doc /refman/8.0/en/server-system-variables.html#sysvar_local_infile