L_Flo 2023-04-27 11:47 采纳率: 50%
浏览 81
已结题

MySQLWorkbench在导入utf-8文件的时候报错Error Code: 1290

MySQLWorkbench在用Load Data Infile导入utf-8文件的时候报错‘’Error Code: 1290. The MySQL server is running with the --secure-file-priv option so it cannot execute this statement‘’。具体情况是:使用Mac,因为一开始找不到my.cnf文件,在/etc下面自己建了一个my.cnf文件,然后加上了secure-file-priv = "",但是依然报这个错。求解决方案。

img

自建my.cnf代码如下

[mysqld]
secure-file-priv = ""
disable-log-bin = 1
skip-name-resolve = 1
performance-schema = 0
local-infile = 0
mysqlx = 0
bind-address = [IPs removed]
open_files_limit = 200000
max_allowed_packet = 256M
sql_mode = "STRICT_TRANS_TABLES,ONLY_FULL_GROUP_BY,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"

innodb_dedicated_server = 1
innodb_buffer_pool_instances = 48
innodb_log_buffer_size = 64M
innodb_read_io_threads = 12
innodb_write_io_threads = 12
innodb_stats_on_metadata = 0
innodb_file_per_table = 1

max_connections = 500
thread_cache_size = 128
table_definition_cache = 65536
table_open_cache = 65536

wait_timeout = 10
connect_timeout = 5
interactive_timeout = 30

tmp_table_size = 128M
max_heap_table_size = 128M

read_buffer_size = 256K
join_buffer_size = 512K
sort_buffer_size = 512K
read_rnd_buffer_size = 512K

slow-query-log = 1
long_query_time = 2
slow_query_log_file = /var/log/mysql_slow_query.log
log-error = /var/log/mysql/db.[removed].com.err


  • 写回答

6条回答 默认 最新

  • 独上西楼影三人 2023-04-28 03:05
    关注

    1. 第一种解决方案

    我猜你是想从客户端主机 Mac 加载文件到服务器,如果不是看下面的 “3.” 。客户端导入与服务器参数 secure_file_priv 无关,只与 local_infile 参数有关,该参数需要再客户端和服务器都配置。我看到你的 my.cnf 里的 local_infile=0 ,这是不对的,使用客户端导入必须使用 LOAD DATA LOCAL INFILE SQL 语法,且 MySQL 服务器端和客户端都需要开启 local_infile ,这是个动态全局系统变量,无需重启。这个参数服务器端好配置。

    试试开启这个参数,以下是临时开启,如果想要永久开启可以加到配置文件里,也可以使用 SET PERSIST

    SET GLOBAL @@local_infile=1;
    

    MySQL Workbench 客户端可以使用 OPT_LOCAL_INFILE=1 ,如下图所示:

    img

    然后 LOAD DATA LOCAL INFILE ,例如我在 Win10 平台执行:

    #Windows 平台二选一
    load data local infile 'I:\\Develop\\MySQL\\Workspace\\DataPumpDir\\t1.csv' into table db5.t1 fields terminated by ',';
    #这个语句适合 Linux、Mac、Windows 平台
    load data local infile 'I:/Develop/MySQL/Workspace/DataPumpDir/t1.csv' into table db5.t1 fields terminated by ',';
    

    2. 第二种解决方案

    也可以使用 MySQL Workbench 安装目录下绑定的 mysql 客户端来做,

    • 如果在配置文件 my.cnf 中配置了local_infile=1,

      img

    img

    • 如果没在配置文件中配置,也可以使用命令行选项 --local-infile

      img

    3. 还是没解决怎么办

    如果以上无法解决你的问题,需要你回答:

    • 你的 MySQL Server 安装在哪?和 Client (对于你来说也就是 MySQL Workbench) 一样都安装在 Mac 上吗?
    • secure_file_priv 真的在 MySQL 配置文件中正确配置并重启了吗?

    如果我的回答解决了您的问题,还望点击采纳。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(5条)

报告相同问题?

问题事件

  • 系统已结题 5月10日
  • 已采纳回答 5月2日
  • 创建了问题 4月27日

悬赏问题

  • ¥15 matlab数据降噪处理,提高数据的可信度,确保峰值信号的不损失?
  • ¥15 怎么看我在bios每次修改的日志
  • ¥15 python+mysql图书管理系统
  • ¥15 Questasim Error: (vcom-13)
  • ¥15 船舶旋回实验matlab
  • ¥30 SQL 数组,游标,递归覆盖原值
  • ¥15 为什么我的数据接收的那么慢呀有没有完整的 hal 库并 代码呀有的话能不能发我一份并且我用 printf 函数显示处理之后的数据,用 debug 就不能运行了呢
  • ¥20 gitlab 中文路径,无法下载
  • ¥15 用动态规划算法均分纸牌
  • ¥30 udp socket,bind 0.0.0.0 ,如何自动选取用户访问的服务器IP来回复数据