Mysql 错误:已禁用加载本地数据-这必须在客户端和服务器端都启用
我不理解其他人对类似问题的回答,但最明显的问题除外,如以下问题:Mysql 错误:已禁用加载本地数据-这必须在客户端和服务器端都启用,mysql,client,local,Mysql,Client,Local,我不理解其他人对类似问题的回答,但最明显的问题除外,如以下问题: 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_in
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工作台
ERROR 3948 (42000): Loading local data is disabled; this must be enabled on both the client and server sides
我只想使用命令行shell将.csv文件导入MySQL。
my.cnf
文件:
[client]
local_infile=1
来自官方。如果在服务器或客户端禁用了本地功能,则尝试发出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表时,我遇到了同样的问题:
在线搜索后,我通过以下步骤修复了它:
对于MySQL 8.0.20的默认安装: i) 查找位于C:\ProgramData\MySQL\MySQL Server 8.0\my.ini的初始化文件 ii)用记事本打开my.ini文件 iii)在客户机部分和服务器部分下查找标题[client]、[mysqld] iv)在每个标题下添加以下语句: 本地加密=打开 v) 保存文件并在Windows本地服务下重新启动MySQL80服务
它应该可以工作。这就是我在Ubuntu 20.04/MySQL 8上解决这个问题的方法:
nano/etc/mysql/mysql.conf.d/mysqld.cnf
SET GLOBAL local\u infle=1代码>
您可以检查本地加密是否已禁用或启用。那么,你试试这个-
mysql>显示全局变量,如“local_infle”;
如果它显示-
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| local_infile | OFF |
+---------------+-------+
(this means local_infile is disable)
然后使用此选项启用-
mysql> set global local_infile=true;
mysql> exit
然后再次检查并使用此命令退出mysql服务器-
mysql> set global local_infile=true;
mysql> exit
现在您必须使用本地加密连接/登录服务器。为此,从终端命令行运行此代码-
mysql --local_infile=1 -u root -ppassword DB_name
现在从本地文件加载数据-
mysql> load data local infile 'path/file_name.extention' into table table_name;
这是我电脑上的工作。你可以试试这个。谢谢。在尝试了上述所有步骤后,我仍然得到错误代码:2068。由于访问限制,加载数据本地填充文件请求被拒绝。解决方案是在SQL语句中删除“LOCAL”一词:
加载数据填充…对于在第3步遇到困难的人: mysql——本地infle=1-u根-p1 就像我以前一样,我就是这么做的:
它应该能工作…这能回答你的问题吗?MySql文档不是很清晰。您设置了[客户端],如何使服务器端和客户端都正确?在使用MySql 8的Ubuntu上,my.cnf文件只是一对指向/etc/MySql/MySql.conf.d和/etc/MySql/conf.d的目录。我正在尝试mysql.conf.d/mysql.cnf文件中的设置。但是,老实说,在顶层和每个子目录中都有一个名为“mysql.cnf”的文件的文件夹,这有什么意义呢。服务器没有变化吗?找到哪个配置文件有标签[mysqld]并且正在使用。在该标记和[client]标记下添加相同的全局配置。@AdamFriedman谢谢你的观点!我的服务器配置文件位于
/etc/mysql/mysql.conf.d/mysqld.cnf
中,我在[mysqld]下添加了local_infle=1,现在可以使用了!我目前无法编辑此答案,因为编辑队列已满,但如果没有mysqld对,则此答案不完整。**很多**人在更新为“焦点”后都会遇到此问题。它正在破坏许多实用程序脚本和报告。这个问题在2020年10月Google搜索邮件的顶部。如果客户端是localhost,没有--local infle=1是否有效?对我们来说,这意味着本地脚本没有代码更改,这很好。
mysql> exit
mysql --local_infile=1 -u root -ppassword DB_name
mysql> load data local infile 'path/file_name.extention' into table table_name;