gpt4 book ai didi

MySQL Workbench 不接受 JSON 文件(错误 1290)

转载 作者:行者123 更新时间:2023-11-29 15:12:23 26 4
gpt4 key购买 nike

我有一个生成 .json 文件的测试套件。我想将 JSON 文件存储在 MYSQL 中。我不在乎它如何存储它。我只是想把它放在那里,这样我就可以把它拉出来。

在线研究后,我尝试使用表数据导入向导通过 GUI 执行传统路线:

Using the GUI

我遇到了以下错误:

Meaningless error

Can't analyse file. Please try to change encoding type. If that doesn't help, maybe the file is not: json, or the file is empty.

该文件显然不为空,并且该文件是有效的 JSON。我什至将它放入一个验证 JSON 的在线工具中。我上网查了一下,也有人遇到这个问题。因此,我将编码更改为 Notepad++ 中可用的每个选项。其中包括:

  • ANSI
  • UTF-8
  • UTF-8-BOM
  • UCS-2-BE-BOM
  • UCS-2-LE-BOM

我仍然收到相同的错误消息。所以我像一个好的堆栈溢出用户一样查找这个,这样每个人都不会对我大喊大叫,我发现这是 identified and verified as a bug in April of 2019.这是在 8.0.15 版本中。我用的是8.0.19。我不知道这个问题是否已经解决,因为我需要一个 Oracle 帐户来查看进度日志(出于一些令人敬畏的无法解释的原因)。

因此,我采取了另一种方法,尝试将 SQL 查询直接输入 My SQL Workbench。令人惊讶的是,它不起作用:

errorAgain

我收到错误 1290,内容如下:

Error Code: 1290. The MySQL server is running with the --secure-file-priv option so it cannot execute this statement.

checked stack overflow并尝试了以下解决方案:

  • 注释掉链接的 my.ini 文件中的--secure-file-priv 设置
  • 将 json 文件直接放入 --secure-file-priv 指向的“uploads”文件夹
  • 重新启动 MySQL/我的电脑

这些都不起作用。它还建议在同一页面上的文件路径中将“\”替换为“/”,但我无法看到您将在哪里替换它。将其替换为查询中 .json 文件的文件路径会导致相同的错误。我不知道如何在可执行文件的路径上替换它,因为没有选项可以做到这一点。

在每个人开始扔东西之前,这里有一些每个人都要求的基本信息:

  • 我使用的是 Windows 10
  • 这是 MySQL Workbench 8.0.19
  • 这里使用 MySQL Server 8.0

如果有人真的知道如何解决这个问题,我会很高兴。

我使用的是 Windows 10

最佳答案

第 1 步:确保您设置了 secure_file_priv 参数

mysql> select @@GLOBAL.secure_file_priv;
+----------------------------------+
| @@GLOBAL.secure_file_priv |
+----------------------------------+
| /Users/demo/mysql/upload/ |
+----------------------------------+
1 row in set (0.00 sec)

第 1a 步:未设置 secure_file_priv 参数时

编辑/Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist并添加以下行

<string>--secure-file-priv=/Users/demo/mysql/upload</string>

添加文件后应如下所示

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Disabled</key>
<false/>
<key>EnvironmentVariables</key>
<dict>
<key>MYSQLD_PARENT_PID</key>
<string>1</string>
</dict>
<key>ExitTimeOut</key>
<integer>600</integer>
<key>GroupName</key>
<string>_mysql</string>
<key>KeepAlive</key>
<dict>
<key>AfterInitialDemand</key>
<true/>
<key>SuccessfulExit</key>
<false/>
</dict>
<key>Label</key>
<string>com.oracle.oss.mysql.mysqld</string>
<key>LaunchOnlyOnce</key>
<false/>
<key>ProcessType</key>
<string>Interactive</string>
<key>Program</key>
<string>/usr/local/mysql/bin/mysqld</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/mysql/bin/mysqld</string>
<string>--basedir=/usr/local/mysql</string>
<string>--datadir=/usr/local/mysql/data</string>
<string>--plugin-dir=/usr/local/mysql/lib/plugin</string>
<string>--early-plugin-load=keyring_file=keyring_file.so</string>
<string>--keyring-file-data=/usr/local/mysql/keyring/keyring</string>
<string>--log-error=/usr/local/mysql/data/mysqld.local.err</string>
<string>--pid-file=/usr/local/mysql/data/mysqld.local.pid</string>
<string>--user=_mysql</string>
<!--Add this line-->
<string>--secure-file-priv=/Users/demo/mysql/upload</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>SessionCreate</key>
<true/>
<key>UserName</key>
<string>_mysql</string>
<key>WorkingDirectory</key>
<string>/usr/local/mysql</string>
</dict>
</plist>

第 2 步:创建一个包含 TEXT 列的表格

CREATE TABLE `table1` (
`id` int NOT NULL AUTO_INCREMENT,
`json_data` text NOT NULL,
PRIMARY KEY (`id`)
) ;

第 3 步:使用 LOAD_FILE 函数将值插入到 TEXT

insert into schema1.table1 (json_data) 
values (LOAD_FILE('/Users/demo/mysql/upload/data.json'));

第4步:通过select查询查看记录

mysql> select * from schema1.table1;
+----+-------------------------------------------------------------+
| id | json_data |
+----+-------------------------------------------------------------+
| 1 | [
{
"id": 1,
"name": "Vijayan Srinivasan",
"place": "Bangalore"
},
{
"id": 2,
"name": "Vijayan Srinivasan",
"place": "Chennai"
},
{
"id": 3,
"name": "Vijayan Srinivasan",
"place": "Delhi"
},
{
"id": 4,
"name": "Vijayan Srinivasan",
"place": "Mangalore"
},
{
"id": 5,
"name": "Vijayan Srinivasan",
"place": "Mumbai"
}
] |
+----+-------------------------------------------------------------+
1 row in set (0.00 sec)

关于MySQL Workbench 不接受 JSON 文件(错误 1290),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59970639/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com