Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 错误:已禁用加载本地数据-这必须在客户端和服务器端都启用_Mysql_Client_Local - Fatal编程技术网

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表时,我遇到了同样的问题:

在线搜索后,我通过以下步骤修复了它:

  • 使用以下命令设置全局变量:
  • 退出当前服务器:
  • 使用本地infle系统变量连接到服务器:
  • 此变量控制加载数据语句的服务器端本地功能。根据本地加密设置,服务器拒绝或允许在客户端启用本地功能的客户端加载本地数据。 要显式导致服务器拒绝或允许加载数据本地语句(无论在构建时或运行时如何配置客户端程序和库),请分别在禁用或启用本地填充的情况下启动mysqld。也可以在运行时设置本地加密

  • 使用数据库并将文件加载到表中:
  • 它有用吗

    参考资料:


    对于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

  • 将以下两行添加到文件底部:

    [客户]

    局部加密=1

  • 从我的客户端运行此命令:
    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

    就像我以前一样,我就是这么做的:

  • 类型
  • cd“C:\Program Files\MySQL\MySQL服务器8.0\bin”

    在命令提示中

  • 类型
  • mysql——local_infle=1-u root-pABC动物园

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

  • MySQL将在命令提示符下打开。您可以键入以下命令:
  • mysql>使用动物园

    数据库已更改

    mysql>将数据本地填充'/path/pet.txt'加载到表pet中

    查询正常,8行受影响,7条警告(0.00秒)


    它应该能工作…

    这能回答你的问题吗?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;