上网找了一圈,同质化严重,无非都是建立表格然后如何如何,但是我的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要写绝对路径或者相对路径,注意为'/'
运行截图如下:
现在,你可以批量插入了。
后面是我写该代码时候了解到的知识:
- 打开一个文件和一些文件函数
- 处理字符串中的换行符和制表符
- 命令行运行Python脚本时接收参数
- Python元组知识
- 打开文件的路径要用斜杠,即:’/’
- 查看Python的文档可以从shell里找到【Python Module Index】,不用去官网
很久以后的某一天,2020-12-9
这个人发现了他很久之前就这么屌丝,而且从没停止过屌丝,因为他在这一天解决问题的方法还是用写个C++(Python)程序打印出什么mysql语句,然后source一下来执行。不同的是他已经对此很熟练了……这个时候他突然得到大佬的指点,知道了my.ini文件怎么建立放到哪什么的,他返回之前的博客(也就是这篇),发现果然——secure_file_priv这个变量是yyds,从开始搞数据库实验课到结束数据库实验课,都逃不开这个,这就是宿命吗?