我是一个数据库新手。我目前正试图创建一个数据库和mysql+aiomysql数据库。我需要通过读取本地csv文件来初始化一些表。
首先,我用
连接到之前创建的数据库database = Database('mysql+aiomysql://{user}:{passwd}@{host}/{db}?local-infile=1'.format(
host='xxx',
user='xxx',
passwd='xxx',
db='xxx'))
await database.connect()
使用?local-infile=1
启用客户端本地数据(我也尝试使用?allowLoadLocalInfile=true
)。之后,我执行SET GLOBAL local_infile = true
以启用服务器端的本地数据。最后,我还确保设置了secure-file-priv = ""
。
尽管如此,当我执行LOAD DATA LOCAL INFILE file INTO TABLE table
时,我得到错误:
pymysql.err。OperationalError:(3948, '加载本地数据被禁用;这必须在客户端和服务器端同时启用。
也尝试在上面的LOAD
命令中添加LOCAL
,但没有任何运气。
我在这里错过了什么?
找到您的my.cnf文件(通常在/etc/my.cnf,/etc/mysql/my.cnf或/usr/local/etc/my.cnf中),然后添加以下行:
[mysqld]
local-infile
secure-file-priv = "/directory/you/wish/to/load/files/"
[mysql]
local-infile
请重新启动mysql并重试。