往mysql8.0导入txt文件

上网找了一圈,同质化严重,无非都是建立表格然后如何如何,但是我的mysql不支持导入,它会报错,而我在搜寻解决这个问题的时候也只能找到在my.ini配置文件中修改secure-file-priv该变量的方法,恰巧,我的电脑上没有这个文件,而这时网上已经没有能让我从零写一个或者拷贝一个my.ini的文件的教程了。
我只能用现有的知识和条件来解决这个问题,我想写一个能批量打出sql语句的Python脚本,这样就可以把数据插入到合适的表格里面了。
虽然它可能不是最好的解决方案,但是这毕竟是自己想到的,也算是对解决问题的能力的一种培养吧。

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

先附上代码和用法:

#insert.py
import io
import sys

f = open(sys.argv[2], mode='r', encoding='utf-8')

for each_line in f:
    a = each_line.split()#去除读取行中的制表符和换行符
    print('insert into ', sys.argv[1], ' values(', end='')
    for each_elem in a[:-1]:
        print('\''+each_elem+'\',', end='')
    print('\''+a[-1]+'\'', end='')#由此经过试验发现,当插入int类型数据到mysql中时也可以用单引号引起来
    print(');')

用的时候在命令行输入:

python insert.py name dir 
#其中dir要写绝对路径或者相对路径,注意为'/'

运行截图如下:
在这里插入图片描述
在这里插入图片描述

现在,你可以批量插入了。


后面是我写该代码时候了解到的知识:

  1. 打开一个文件和一些文件函数
  2. 处理字符串中的换行符和制表符
  3. 命令行运行Python脚本时接收参数
  4. Python元组知识
  5. 打开文件的路径要用斜杠,即:’/’
  6. 查看Python的文档可以从shell里找到【Python Module Index】,不用去官网

很久以后的某一天,2020-12-9
这个人发现了他很久之前就这么屌丝,而且从没停止过屌丝,因为他在这一天解决问题的方法还是用写个C++(Python)程序打印出什么mysql语句,然后source一下来执行。不同的是他已经对此很熟练了……这个时候他突然得到大佬的指点,知道了my.ini文件怎么建立放到哪什么的,他返回之前的博客(也就是这篇),发现果然——secure_file_priv这个变量是yyds,从开始搞数据库实验课到结束数据库实验课,都逃不开这个,这就是宿命吗?

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值