解決windows下mysql8修改my.ini設置datadir后無法啟動問題
mysql8修改my.ini設置datadir后無法啟動問題
mysql默認數據庫文件在安裝目錄下。創(chuàng)建數據庫的時候,并不能指定數據文件存放位置。這就很扯。它只能通過修改mysql.ini來更改數據文件存放目錄,而且是一刀切的,沒有辦法做到數據文件和日志文件分開存放。假如服務器有多個盤,就不能利用磁盤不同IO的優(yōu)勢。但是,既然是服務器,通常會做陣列的吧,做了陣列,就無所謂哪個盤了。
我這次要說的,是修改mysql.ini后,mysql無法啟動的問題。
我遇到的是2個原因:
- 一個是mysql.ini修改后字符編碼被改變,導致mysql無法識別;
- 另一個是存放mysql數據文件的新路徑沒有足夠權限。
1、字符編碼問題
一般來說,mysql.ini位于mysql安裝目錄下。但其實并不準確,像我的操作系統(tǒng)是win10,mysql默認安裝在c:\program files
,但mysql.ini位于C:\ProgramData\MySQL\MySQL Server 8.0
。
這是一個隱藏的文件夾。
如果要改變數據文件的存儲路徑,就要修改mysql.ini。mysql.init默認字符編碼是ANSI,保存后,就有可能會改變其字符編碼為UTF-8,導致mysql無法識別,從而無法啟動mysql。
正確做法是:
1)首先備份一個mysql.ini。切記!??!
2)用記事本打開mysql.ini,修改mysql.ini里的datadir,如
# Path to the database root datadir=e:\mysql\Data
3)mysql.ini默認字符編碼是ANSI。所以修改后,用記事本另存為,記得選字符編碼為ANSI。
2、新路徑權限問題
如上所述,我將datadir修改成新的路徑e:\mysql\Data,同時將C:\ProgramData\MySQL\MySQL Server 8.0\Data拷貝到新路徑。但要注意,這個文件夾必須要有足夠的權限,mysql才能使用。其中,關鍵的權限是SYSTEM或NETWORK SERVICE要有全部權限。
也有可能是network service。這個可能是跟安裝時的環(huán)境有關。最好是看一下原先數據存放點C:\ProgramData\MySQL\MySQL Server 8.0\Data的安全屬性。
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
MySQL中REPLACE INTO和INSERT INTO的區(qū)別分析
REPLACE的運行與INSERT很相似。只有一點例外,假如表中的一個舊記錄與一個用于PRIMARY KEY或一個UNIQUE索引的新記錄具有相同的值,則在新記錄被插入之前,舊記錄被刪除。2011-07-07IDEA鏈接MySQL報錯08001和連接成功后不顯示表的問題及解決方法
這篇文章主要介紹了IDEA鏈接MySQL報錯08001和連接成功后不顯示表的問題及解決方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-10-10mysql error 1071: 創(chuàng)建唯一索引時字段長度限制的問題
這篇文章主要介紹了mysql error 1071: 創(chuàng)建唯一索引時字段長度限制的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-09-09mysql報錯:MySQL server version for the right syntax to use nea
這篇文章主要介紹了mysql報錯:MySQL server version for the right syntax to use near type=InnoDB的解決方法,涉及MySQL語句的使用技巧,需要的朋友可以參考下2016-01-01