2009-06-03 9 views
23

Sto usando MySQL 5.0.67 su RHEL5 e basando la mia configurazione su my-huge.cnf.MySQL: cosa fa skip-locking in my.cnf?

Non riesco a trovare nulla nel manuale MySQL per la riga 'skip-locking' che appare nel file di configurazione.

Se questo deve essere sostituito con "skip_external_locking" o devo semplicemente rimuovere la riga interamente poiché ora è un valore predefinito.

MySQL Manual for skip-external-locking

Grazie.

risposta

25

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

citazione:

Se si eseguono più server che utilizzano la stessa directory del database (non raccomandato), ogni server deve avere bloccaggio esterno abilitato.

Ha davvero a che fare con i pericoli presentati da più processi che accedono agli stessi dati. In molte situazioni DBMS, si desidera bloccare la tabella/riga prima di eseguire un'operazione e lo sblocco in seguito. Questo per prevenire possibili corruzioni di dati.

Edit: vedi http://dev.mysql.com/doc/refman/4.1/en/news-4-0-3.html Quota

rinominato --skip-blocco per --skip-external-bloccaggio.

+0

Grazie - ma questo è skip_external_locking - Mi piacerebbe sapere se 'skip-locking' è la stessa cosa, e se è necessario nel file di configurazione perché è già un valore predefinito? – Richard

+0

modificato. era solo un rinominare –

+2

Grazie ancora, quindi per riassumere - la riga 'skip-locking' del file di configurazione può essere rimossa perché a) non è aggiornata, la variabile è stata rinominata. b) il comportamento è comunque predefinito – Richard

0

Una nota aggiuntiva per chi non segue il link fornito da @ Jonathan Fingland:
8.7.4. External Locking

Questa opzione è valida solo per le tabelle MyISAM.

Come indicato da Richard, il blocco esterno è disabilitato per impostazione predefinita. È necessario abilitare il blocco esterno se si utilizza myisamchk per le operazioni di scrittura o se si utilizza myisampack per comprimere le tabelle.

Dalla documentazione:

Se si utilizza myisamchk per eseguire operazioni di tabella di manutenzione sulla MyISAM tabelle, è necessario assicurarsi che il server non è in esecuzione, o che il server ha permesso di bloccaggio esterno in modo che blocca i file di tabella come necessario per coordinare con myisamchk per l'accesso ai tavoli. Lo stesso vale per l'uso di myisampack per imballare le tabelle MyISAM.

Se si utilizza myisamchk per operazioni di scrittura come la riparazione o tavoli ottimizzazione, o se si utilizza myisampack per il confezionamento di tabelle, è necessario assicurarsi sempre che il server mysqld non utilizza la tabella. Se si non si blocca mysqld, si dovrebbe almeno eseguire un mysqladmin flush-tables prima di eseguire myisamchk. Le tabelle potrebbero essere danneggiate se il server e myisamchk accedono contemporaneamente alle tabelle.