MySQL 中出現報錯提示: ‘Variable ‘XXX‘ is a read only variable‘的解決方法

A&&K發表於2020-12-15

一)問題描述:

當我們檢視mysql中的 secure_file_priv引數 時,發現它的預設值是NULL,表示限制不能匯入匯出。
在這裡插入圖片描述
當我們要修改此引數時就會報錯:
在這裡插入圖片描述
二)原因分析:

因為 secure_file_priv引數是一個只讀引數,不能使用 set global命令 修改。

三)解決方法:
需要在my.ini配置檔案中更改該引數,之後重啟資料庫。如果當前的mysql版本在my.ini配置檔案中沒有找到secure_file_priv引數,那麼就開啟my.cnf 或 my.ini並新增 secure_file_priv='' 語句後重啟mysql。

此時再檢視secure_file_priv的值就成了:
在這裡插入圖片描述

四)擴充套件知識:

secure_file_priv引數用於限制LOAD DATA, SELECT …OUTFILE, LOAD_FILE()傳到哪個指定目錄:

secure_file_priv 為 NULL 時,表示限制mysqld不允許匯入或匯出。
secure_file_priv 為 /tmp 時,表示限制mysqld只能在/tmp目錄中執行匯入匯出,其他目錄不能執行。
secure_file_priv 沒有值時,表示不限制mysqld在任意目錄的匯入匯出。

相關文章