以前一直用的好端端的,此次啓動服務忽然就報了這錯誤。 mysql
更好的閱讀體驗可訪問 這裏。sql
原由
爲了使用 LOAD_FILE 函數,在數據庫配置文件 my.ini
的 [mysqld] 裏添加 secure_file_priv=「一個絕對路徑」 。以前添加過一次,成功使用完後加了註釋,此次不過是再次把註釋打開。而後就報了上述那個錯誤。數據庫
解決過程
這是我第二次遇到這個問題了。第一次遇到是由於很長一段時間沒有使用mysql(不知道哪裏出了問題),而後網上查詢瞭解到一種方法,當時幫助我解決了問題,我還記了筆記。這是當時解決的過程,你們也能夠參考一下。函數
方法一
- 先備份。找到MySQL的data文件夾,把data裏的數據庫名文件夾以及ibdata1文件複製一份。
- 刪除data文件夾
- 用管理員身份打開cmd,進入到mysql的bin目錄下,輸入命令初始化數據庫文件(也就是data)。
mysqld --initialize-insecure --user=mysql
- 把剛纔複製的文件粘貼到新的data文件夾裏替換
- 啓動成功
當時主要參考的是這篇文章:解決 本地計算機上的MySQL80服務啓動後中止,某些服務在未由其餘服務或者程序使用時將自動中止spa
可是,此次我再次使用這種方法卻無論用了.net
因爲我是在 還處於mysql命令行的狀態下,中止了服務,當時懷疑是否是由於這點把文件搞壞了(後來證實並非這樣)。 而且上述方法以前確實解決了問題,因此一直想着此次爲何不起做用,,在從新刪除、初始化好幾回都不行的狀況下,才把心思再次放回my.ini
上。 而後把 secure_file_priv 那行註釋掉,再次啓動,居然啓動成功了。。無語。而後觀察這一行,發現原來是我以前 secure_file_priv 使用的絕對路徑,不知何時已經被我改掉了。而後MySQL在啓動的時候調用 my.ini 不能正確執行,故啓動失敗。因而,再次打開註釋,更改了正確路徑,就成功啓動了。下面是總結的方法。命令行
方法二
- 回想本身是否更改了
my.ini
文件。 - 回想本身是否更改過 MySQL 使用的文件夾的路徑。
- 去 my.ini 裏看下里面使用的絕對路徑是否正確。
- 修改完後,保存配置,啓動成功。
並不僅有絕對路徑這一點,凡是 my.ini 出了問題都不能正確啓動,根據本身的狀況而定。code
總結
出現這種狀況的緣由可能有多種,仔細想下出現這種問題的原由。根據你們的文章,再結合本身的問題通常均可以解決。 中途還發現:mariadb 可直接使用load_file函數,mysql新版本才須要考慮blog