Mysql(win)是否可以同時從多個驅動器獲取數據庫?
我的問題是,有什麼方法可以同時從不同的驅動器讀取 mysql 數據文件夾(Windows)?
例如:我有來自驅動器 C: 的 1TB 數據庫,以及來自驅動器 D: 的另外 1TB 數據庫。因此,當我啟動 mysql 時,它只會從兩個驅動器中看到兩個數據庫。
一個給定的 MySQL 實例只能使用一個數據目錄。在 datadir 下,每個 MySQL 模式都位於一個子目錄中。
例如,預設數據目錄是
C:\Program Files\MySQL\MySQL Server 8.0\data
.Schema1 將在
C:\Program Files\MySQL\MySQL Server 8.0\data\Schema1
Schema2 將在
C:\Program Files\MySQL\MySQL Server 8.0\data\Schema2
但是,如果您可以誘使 Windows 認為該
Schema2
子文件夾實際上使用了物理驅動器 D: 中的儲存空間,那麼您就可以實現您想要的。一種方法是使用
mklink
如下所示:https ://dev.mysql.com/doc/refman/8.0/en/windows-symbolic-links.html我更喜歡這個解決方案,因為它允許您在您的D:驅動。第二種選擇是使用虛擬驅動器。Windows 允許您將驅動器映射到另一個驅動器的特定路徑。沒有多少 Windows 使用者使用此選項,他們更喜歡使用驅動器作為驅動器號。
https://winaero.com/create-virtual-drive-from-a-folder-in-windows-10/
所以你會使用
SUBST D: C:\Program Files\MySQL\MySQL Server 8.0\data\Schema2
閱讀我連結到的文章以獲取更多詳細資訊。
無論您使用哪種解決方案,現在 Schema2 下的文件都會自動儲存在您的物理驅動器 D: 上,並且不會佔用物理驅動器 C: 上的空間。
如果您已經創建了 Schema2 怎麼辦?所以在 C: 上已經有一個用於該模式表的子目錄。好吧,你必須做一些文件雜耍才能完成這項工作。我沒有 Windows 機器,因此無法對其進行測試或提供有關步驟的建議。
記住不要在 MySQL 伺服器服務執行時手動移動 MySQL 表。先停止服務,否則會損壞數據。在另一台伺服器上練習這種配置,而不是你的重要生產數據,並且在你嘗試任何事情之前備份整個數據庫實例。