不同的服務使用不同的埠指向同一個 datadir 文件夾
假設我已經
mysqla.ini
在 …\data 中安裝了具有 (port number=3306) 設置和 datadir 文件夾的服務 MySQLa那麼是否有可能,我安裝了另一個服務 MySQLb
mysqlb.ini
(埠號 = 3307)設置並在 …\data 中共享 datadir 文件夾?會不會與系統架構(mysql、information_schema 和 performance_schema)有任何衝突?
我嘗試將 datadir 定位到不同的文件夾(…\dataa 和 …\datab),它執行良好。
InnoDB
請注意 InnoDB 架構(圖片由 Percona 首席技術官 Vadim Tkachenko 提供)
如果您的數據庫是讀/寫的,我寫了為什麼 InnoDB 不能允許多個實例
Apr 24, 2014
:兩台 MySQL 伺服器通過 NFS 訪問同一個數據庫Oct 03, 2013
:有沒有辦法在同一台伺服器上為不同的數據庫使用不同的 InnoDB 設置?您唯一的選擇是以只讀模式啟動 InnoDB(請參閱我的唯一文章,其中提到瞭如何使用只讀數據目錄啟動 mysqld?以及MySQL 5.6 Documentation for the ReadOnly InnoDB Setting)。
MyISAM
如果您的數據庫全部是 MyISAM 或 InnoDB 和 MyISAM 的混合,您的 MyISAM 表將很容易處於崩潰狀態(不幸的是,即使對於單個 mysqld 實例也是如此)。
請記住,每次打開 MyISAM 表時,MyISAM 表的標題中都有一個計數器,用於監視 MyISAM 表有多少打開的文件句柄(請參閱我對 MySQL 表為什麼會崩潰的
Mar 15, 2012
回答?如何防止它?)。如果單個 mysqld 實例崩潰,則認為該表已崩潰。這將在錯誤日誌中堆積警告,指出必須修復 MyISAM 表。如果這是單個 mysqld 實例的情況,那麼它更有可能發生在多個實例上。即使 mysqld 實例是在啟用innodb_read_only和read_only的情況下啟動的,也會出現這種情況。你的問題
您的 mysql 架構中有一些 MyISAM 表。他們很小。即使它們崩潰了,您也可以在它們上執行 REPAIR TABLE 并快速修復它們,但如果您無法修復它們,則有百萬分之一的機會處理身份驗證問題。
既然你提到
.ini
了,我假設你在 Windows 中。對於 MySQL,Windows 中的文件處理鎖定往往比 Linux 中的更嚴格。因此,InnoDB 在只讀模式下可能更麻煩或更慢。結論
如果您的數據庫是讀/寫的,那是不可能的
如果您的數據庫是只讀的
- 如果您的數據庫有任何 MyISAM 表,則可能會更容易受到文件句柄計數損壞甚至數據損壞的影響
- 如果你的數據庫都是 InnoDB,那麼是可以的。