暂时解决MySQL的local_infile=ON问题

在使用docker运行sql时候遇到了安全问题,关于调用本地的tbl文件报错,需要打开本地文件开关

错误信息 [ERR] 3948 - Loading local data is disabled; this must be enabled on both the client and server sides 表明问题并非出在路径中的斜杠,而是由于 MySQL 服务端和客户端均未启用加载本地数据的选项。

这个错误与路径格式无关,而是与 MySQL 的安全设置有关。

可以通过/etc/mysql下的配置文件my.ini或者my.cnf配置完成

[mysqld]
local_infile=1

可是配置完后重启并没有修改成功,所以只能每次重启后手动设置暂时使用,这个方法只能暂时用一下,不过在这个场景下适用,因为这个设置开一次导入数据就可以关掉了,本来就是不推荐开启

执行docker exec -it mysql2 mysql -uroot -p -e "SHOW GLOBAL VARIABLES LIKE 'local_infile';"

然后查询docker exec -it mysql2 mysql -uroot -p -e "SHOW GLOBAL VARIABLES LIKE 'local_infile';"

输入mysql密码后能得到
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| local_infile  | ON    |
+---------------+-------+
表示已经开启成功,就可以导入数据了

注意这个方法只是暂时设置,需要每次重启都能设置的需要在my.ini里面配置,可以参考这篇mysql学习笔记整理——my.ini配置文件-优快云博客,如果win下的docker不管是挂载卷还是修改文件他都不读取再用这个暂时修改的方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值