Software

MySql 8.0 Loading local data is disabled

之前寫的一隻 python 腳本在 MySQL 升級 8.0 之後發現出現了一個錯誤

Loading local data is disabled; this must be enabled on both the client and server sides

後來查的結果是 8.0 預設將 local data 的權限關閉了,查了一些資料大部分都說要使用 SET GLOBAL local_infile=1;local_infileValue 改成 on,不˙過後來修改過後還是出現同樣的訊息

修改前

mysql> SHOW GLOBAL VARIABLES LIKE 'local_infile';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| local_infile  |  OFF  |
+---------------+-------+
1 row in set (0.01 sec)

修改後

mysql> SHOW GLOBAL VARIABLES LIKE 'local_infile';

+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| local_infile  | ON    |
+---------------+-------+
1 row in set (0.01 sec)

後來又看到了一篇說要將 my.cnf 上

[client]
local_infile=1

本來以為這樣沒問題了...
結果還是跳出一樣的訊息
後來再查了一下發現除了 Server 以外 client 也要加
如果使用 mysql cli 了話就是 mysql -h xxx.xxx.xxx.xxx --local-infile=1
如果是 pymysql 則加入參數

local_infile=True

就這樣順利地可以將 csv 匯入了