2009-06-03 40 views

回答

25

看到http://dev.mysql.com/doc/refman/5.0/en/external-locking.html

報價:

如果您運行使用同一數據庫目錄(不推薦)多臺服務器,每臺服務器都必須啓用外部鎖定。

它確實只是與訪問相同數據的多個進程提供的危險有關。在許多DBMS情況下,您希望在執行操作之前鎖定表格/行,然後再解鎖。這是爲了防止可能的數據損壞。

編輯:見http://dev.mysql.com/doc/refman/4.1/en/news-4-0-3.html 報價

改名--skip-鎖定到--skip-外部鎖定。

+0

謝謝 - 但那是skip_external_locking - 我想知道'skip-locking'是否是相同的東西,如果在配置文件中是必要的,因爲它已經是默認的? – Richard 2009-06-03 09:08:46

0

的人附加的註釋誰不遵循@Jonathan Fingland提供的鏈接:
8.7.4. External Locking

此選項僅適用於MyISAM表。

正如Richard所示,默認情況下外部鎖定是禁用的。如果您使用myisamchk進行寫操作,或者使用myisampack打包表,則需要啓用外部鎖定。

從文檔:

如果你使用myisamchk上的MyISAM 表執行表維護操作,則必須確保服務器沒有運行,或者 服務器已經啓用外部鎖定,這樣它會根據需要鎖定表文件 以與myisamchk協調訪問表。 使用myisampack打包MyISAM表格也是如此。

如果您使用myisamchk進行寫操作(如修復或 優化表),或者如果使用myisampack來打包表,則必須始終確保mysqld服務器不使用該表。如果你不停止mysqld,你至少應該在運行myisamchk之前執行mysqladmin flush-tables 。如果 服務器和myisamchk同時訪問表,您的表可能會損壞。