V3城 2022-05-16 17:35 采纳率: 50%
浏览 94
已结题

腾讯云mysql load_data local_infile 无法使用

pymysql.err.OperationalError: (1227, 'Access denied; you need (at least one of) the SUPER or SYSTEM_VARIABLES_ADMIN privilege(s) for this operation')

img

UNSUPPORTED COMMAND: LOAD" [180cc370ef50][-1] [122de094-5108-a00b-f948-180cc370ef50

  • 写回答

4条回答 默认 最新

  • 一起随缘 2022-05-16 18:17
    关注

    缘由:
    原因是MySQL8版本中新增了一个system_user帐户类型,但是由于root用户没有SYSTEM_USER权限,所以出现问题,把权限加入后即可解决

    解决办法:
    对没有权限的用户授权,如对root授权

    GRANT system_user ON . TO 'root';

    评论
  • hyh123a 全栈领域新星创作者 2022-05-16 18:42
    关注

    解决方法

    1、从 sqldump 文件中删除该DEFINER=..语句,或将用户值替换为CURRENT_USER.

    2、腾讯云的MySQL 服务器不允许DEFINER其他用户使用语法(根据我的经验)。

    您可以使用sed脚本将它们从文件中删除:

    sed 's/\sDEFINER=`[^`]*`@`[^`]*`//g' -i oldfile.sql
    

    除此之外

    解决方案 1

    注释掉或删除这些行

    SET @MYSQLDUMP_TEMP_LOG_BIN = @@SESSION.SQL_LOG_BIN;
    SET @@SESSION.SQL_LOG_BIN= 1;
    SET @@GLOBAL.GTID_PURGED=/*!80000 '+'*/ '';
    

    解决方案 2

    您还可以通过使用 -f 选项加载转储文件的其余部分来忽略错误。

    mysql -f <REPLACE_DB_NAME> -u <REPLACE_DB_USER> -h <DB_HOST_HERE> -p < dumpfile.sql
    

    注:如果您将 mysqldump 管道传输到新数据库,解决方案 2 效果很好


    如有问题及时沟通

    评论
  • 歇歇 2022-05-17 01:59
    关注

    方法一:打开本地文件:#查看是否开启加载本地文件 show variables like 'local_infile';
    #开启全局本地文件设置 set global local_infile=on;
    方法二:edit connection -点击advanced -others 输入:OPT_LOCAL_INFILE=1;


    设置权限
    CREATE DEFINER = root@localhost FUNCTION load_data
    CREATE DEFINER = root@localhost FUNCTION local_infile

    评论 编辑记录
  • 拾光师 2022-05-23 08:41
    关注

    用户没有SYSTEM_USER权限

    grant system_user on *.* to 'root';
    
    评论

报告相同问题?

问题事件

  • 系统已结题 5月24日
  • 创建了问题 5月16日

悬赏问题

  • ¥15 Java中import为灰色
  • ¥15 手机等其他智能设备被监听
  • ¥15 在win10 64位的vs打包MSI文件,放到win7 64位上安装成可执行exe文件后,点击程序不运行。
  • ¥50 大众点评用户浏览/消费记录爬虫
  • ¥15 求制作一个个人网页,
  • ¥15 寻涂色内存脚本作者有项目有市场有资源.却技术
  • ¥15 蓝桥杯c51单片机问题
  • ¥15 ajax跨域问题请求修改代码
  • ¥15 python matplotlib
  • ¥15 短信测压+语音,有偿,必须用Python