【问题标题】:Error Code: 1148 The used command is not allowed with this version of MySQL错误代码:1148 此版本的 MySQL 不允许使用使用的命令
【发布时间】:2020-04-28 08:16:14
【问题描述】:

您好,我是 mysql 和 sql 领域的新手。我正在尝试在 mysql 中创建一个表,以便以后可以使用它来分析 jupyter 中的数据。问题是数据太大,所以仅仅导入它需要太长时间。我读到您可以为此目的使用加载数据 infile。

这就是我所做的:

1) 在 mysql 中创建了一个只有列名而不是数据的表,因为它在 csv 中 2) 使用加载查询将数据从 csv 导入到创建的表中

问题: 错误 1148 不断出现!

我附上了截图,请告诉我我做错了什么?

【问题讨论】:

  • 在 MySQL Workbench 8.0 bugs.mysql.com/bug.php?id=91891 中报告了一个错误,解决方法(并确认该错误与 MySQL Workbench 相关)是使用不同的客户端,例如 mysql 命令行客户端。允许“本地infile”需要系统配置(mysql系统变量设置)。另一种选择是从非本地文件系统(mysql 服务器可访问的文件系统上的文件)加载,但需要服务器配置才能允许访问。作为调试的第一步,在 mysql 命令行客户端中执行 LOAD DATA 语句。
  • @spencer7593 我尝试在 mysql shell 中运行该语句并得到同样的错误,我该怎么办? imgur.com/a/StIFAks
  • 对于 mysql 命令行客户端,显式添加 --local-infile=1 选项。即在启动客户端的命令行中包含选项,例如# mysql -u username -p --local-infile=1 ...参考dev.mysql.com/doc/refman/8.0/en/load-data-local.html

标签: mysql mysql-workbench load-data-infile error-code data-import


【解决方案1】:

默认情况下禁用加载数据,因为它存在安全风险。

请参阅此答案以了解错误 1148 的原因: ERROR 1148: The used command is not allowed with this MySQL version

您尝试使用控制台失败,因为您是在 JavaScript 模式下运行它。看到这个答案: MySQL: SyntaxError: Unexpected identifier

另一种选择是使用mysqlimport

【讨论】:

  • 我将本地 infile 更改为 ON,在 mysql 中运行,不再在 JS 中运行,我仍然收到相同的错误imgur.com/a/StIFAks
【解决方案2】:

想通了。实际上涉及到几个问题。

1) 无法在命令行客户端直接加载 mysql,必须先解决这个问题。错误是找不到mysql。

2) 接下来必须建立与数据库的连接

3) 更改全局 local_infile= 1

4) 退出mysql (这很重要!)

5) 用mysql --local-infile=1 -u 用户名-p 密码再次输入

6) 现在使用加载命令。用过这个:

load data local infile 'F:\\Data Science\\SQL Practice\\p1.csv' into table p1
fields terminated by ','
lines terminated by '\n'
ignore 1 lines;

观看此视频了解步骤 1 至 5:https://www.youtube.com/watch?v=XM2xx-PD4cg

查看此链接以获取加载命令(第 6 步):MySQL Error 29. SQL not using correct file path

【讨论】:

    猜你喜欢
    • 2015-10-10
    • 2013-08-28
    • 2012-09-30
    • 2017-04-06
    • 2019-06-22
    • 2017-02-01
    • 2014-11-10
    • 2015-04-17
    • 1970-01-01
    相关资源
    最近更新 更多