之前在下載mysql時發現沒有my.ini。考慮到后面的項目可能需要,看著教程自己創建了一次,當時就發生了所有數據庫消失的問題,近幾天這種事件又發生了。我在服務里看到我有mysql和mysql57兩個服務,啟動一個的時候另一個就無法啟動,發現有的數據庫在mysql57里。mysql57是網絡登錄 mysql是本地系統。
1 my.ini沒有配置文件的原因?
之前一直以為配置文件是在MYSQL下載的文件地址里,今天在排錯時發現是在ProgramData存放數據的MYSQL文件里
2 新建my.ini后數據庫消失的問題:
可能是因為MySQL的配置文件(my.ini或my.cnf)中的datadir參數指向了錯誤的目錄。當手動創建my.ini時,如果沒有正確設置datadir,MySQL可能會使用默認的數據目錄,而這個目錄可能沒有之前的數據庫文件,導致數據庫“消失”了。?
3 mysql和mysql57問題
啟動一個服務時,另一個無法啟動,這可能是因為兩個服務都試圖監聽相同的端口(默認3306),導致端口沖突。此外,每個服務可能使用不同的數據目錄和配置文件,因此啟動不同的服務會加載不同的數據庫實例。
解決方案:
1. 確認服務配置信息
查看服務屬性:
-
打開「服務」管理器,右鍵點擊?
MySQL57
?和?MySQL
?服務,選擇「屬性」。 -
記錄兩者的「可執行文件路徑」,找到?
--defaults-file
(配置文件路徑)和?--datadir
(數據目錄路徑)。
2. 停止并禁用冗余服務
保留一個服務:
-
以管理員身份運行CMD,停止并刪除另一個服務:
sc stop MySQL # 停止服務
sc delete MySQL # 刪除服務(謹慎操作!)
3. 統一配置文件與數據目錄
檢查?my.ini
?配置:
-
打開保留服務的配置文件。
-
確認以下關鍵參數:
[mysqld]
datadir=D:/MySQL/Data # 確保指向實際數據目錄
port=3306 # 避免端口沖突
4. 解決端口沖突
修改端口號:
-
如果需同時運行兩個服務,編輯其中一個的?
my.ini
,修改端口:
[mysqld]
port=3307
最后重啟。