ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement


背景

最近业务进行数据迁移,由于数据量不大,我们选择使用MySQL导入导出功能。在使用过程中遇到一些问题,这次在本文中进行总结。


问题

  1. 导入导出命令参数的选用。
  2. 报错:The MySQL server is running with the --secure-file-priv option so it cannot execute this statement


导入导出

1、创建表

创建带有json类型的表

createtable t1(id int, data json default null,dt datetime);

2、插入数据

insertinto t1(id ,dt)values(1,now());insertinto t1(id, data, dt)values(2,"[{""id"": ""1"", ""name"": ""zhang3""}, {""id"": ""2"", ""name"": ""li4""}]", now());insertinto t1(id)values(3);

查看数据结果

mysql>select*from t1;+------+-------------------------------------------------------------+---------------------+| id   | data                                                        | dt                  |+------+-------------------------------------------------------------+---------------------+|1|NULL|2022-12-3009:48:05||2|[{"id":"1","name":"zhang3"},{"id":"2","name":"li4"}]|2022-12-3009:48:05||3|NULL|NULL|+------+-------------------------------------------------------------+---------------------+

3、导出CSV数据


报错:ERROR 1290 (HY000)

mysql>select*from t1 into outfile '/tmp/t1.csv' FIELDS TERMINATED BY',' ENCLOSED BY'"' LINES TERMINATED BY'\r\n';ERROR 1290(HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

原因:在mysql服务启动使用了--secure-file-priv 选项,所以不能指定任意的路径

解决办法

  1. 重新配置 --secure-file-priv 参数,重新启动mysql。
  1. 此配置,如果设置为:"",可以使用任意路径
  2. 若设置为NULL,禁用导入导出
  3. 若设置指定路径,则需要使用指定路径
  1. 选择指定的路径进行输出。 (推荐)
  2. 通过命令查看指定路径
mysql> show global variables like'secure_file_priv';+------------------+-----------------------------------------+| Variable_name    | Value                                   |+------------------+-----------------------------------------+| secure_file_priv |/var/opt/rh/rh-mysql80/lib/mysql-files/|+------------------+-----------------------------------------+

重新导出

mysql>select*from t1 into outfile '/var/opt/rh/rh-mysql80/lib/mysql-files/t1.csv' FIELDS TERMINATED BY',' ENCLOSED BY'"' LINES TERMINATED BY'\r\n';Query OK,3 rows affected (0.01 sec)

导出参数说明:

  • FIELDS TERMINATED BY ','  指定字段结束字符为:','
  • ENCLOSED BY '"' 指定每个字段封闭字符为:'"'
  • LINES TERMINATED BY '\r\n' 指定每行的结束字符为:'\r\n'

查看结果

sh-4.2# cat /var/opt/rh/rh-mysql80/lib/mysql-files/t1.csv"1",\N,"2022-12-30 09:48:05""2","[{\"id\": \"1\", \"name\": \"zhang3\"}, {\"id\": \"2\", \"name\": \"li4\"}]","2022-12-30 09:48:05""3",\N,\N

说明:

  • \N 为NULL 转义字符

4、导入数据

创建临时表结构

createtable t1_bak(id int, data json default null,dt datetime);


导入数据:使用导出时相同的参数

mysql> load data infile '/var/opt/rh/rh-mysql80/lib/mysql-files/t1.csv'intotable t1_bak FIELDS TERMINATED BY',' ENCLOSED BY'"' LINES TERMINATED BY'\r\n';Query OK,3 rows affected (0.04 sec)Records:3  Deleted:0  Skipped:0  Warnings:0

查看结果

mysql>select*from t1_bak;+------+-------------------------------------------------------------+---------------------+| id   | data                                                        | dt                  |+------+-------------------------------------------------------------+---------------------+|1|NULL|2022-12-3009:48:05||2|[{"id":"1","name":"zhang3"},{"id":"2","name":"li4"}]|2022-12-3009:48:05||3|NULL|NULL|+------+-------------------------------------------------------------+---------------------+3 rows inset(0.00 sec)





相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
26天前
|
SQL 关系型数据库 MySQL
mysql密码错误-ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using passwor:yes)
这篇文章提供了解决MySQL数据库"Access denied for user 'root'@'localhost' (using password: YES)"错误的方法,通过跳过密码验证、修改root密码,然后重启服务来解决登录问题。
mysql密码错误-ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using passwor:yes)
|
1月前
|
关系型数据库 MySQL
MySQL 8.0 - Authentication plugin ‘caching_sha2_password‘ cannot be loaded 原因及解决办法
MySQL 8.0 - Authentication plugin ‘caching_sha2_password‘ cannot be loaded 原因及解决办法
102 1
|
1月前
|
数据采集 关系型数据库 MySQL
大数据-业务数据采集-FlinkCDC The MySQL server is not configured to use a ROW binlog_format
大数据-业务数据采集-FlinkCDC The MySQL server is not configured to use a ROW binlog_format
30 1
|
2月前
|
缓存 关系型数据库 MySQL
error: Failed dependencies: mariadb-connector-c-config is obsoleted by mysql-community-server-8.0.36-1.el7.x86_64 问题解决
error: Failed dependencies: mariadb-connector-c-config is obsoleted by mysql-community-server-8.0.36-1.el7.x86_64 问题解决
109 19
|
22天前
|
关系型数据库 MySQL Java
【Azure 应用服务】应用服务连接 Azure MySQL 一直失败,报错 Create connection error
【Azure 应用服务】应用服务连接 Azure MySQL 一直失败,报错 Create connection error
|
2月前
|
关系型数据库 MySQL Linux
error: Failed dependencies: libncurses.so.5()(64bit) is needed by mysql-community-client-8.0.36-1.el7.x86_64 libtinfo.so.5()(64bit) is needed by mysql-community-client-8.0.36-1.el7.x86_64 如何解决?
error: Failed dependencies: libncurses.so.5()(64bit) is needed by mysql-community-client-8.0.36-1.el7.x86_64 libtinfo.so.5()(64bit) is needed by mysql-community-client-8.0.36-1.el7.x86_64 如何解决?
235 3
|
2月前
|
关系型数据库 MySQL 测试技术
MySQL 报错 ERROR 1709: Index column size too large
MySQL 报错 ERROR 1709: Index column size too large
162 4
|
2月前
|
SQL Oracle 关系型数据库
MySQL、SQL Server和Oracle数据库安装部署教程
数据库的安装部署教程因不同的数据库管理系统(DBMS)而异,以下将以MySQL、SQL Server和Oracle为例,分别概述其安装部署的基本步骤。请注意,由于软件版本和操作系统的不同,具体步骤可能会有所变化。
130 3
|
2月前
|
关系型数据库 MySQL
mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file
mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file
122 2
|
2月前
|
安全 关系型数据库 MySQL
【Python】已解决:pymysql.err.OperationalError:(2003 “Can’t connect to MySQL server on ‘localhost’ ([WinEr
【Python】已解决:pymysql.err.OperationalError:(2003 “Can’t connect to MySQL server on ‘localhost’ ([WinEr
122 1

热门文章

最新文章