Richard
Richard

Reputation: 41300

MySQL - what does skip-locking in my.cnf do?

I'm using MySQL 5.0.67 on RHEL5 and basing my configuration on my-huge.cnf.

I can't find anything in the MySQL manual for the row 'skip-locking' which appears in the config file.

Should this be replaced with 'skip_external_locking' or should I just remove the row entirely as that is now a default.

MySQL Manual for skip-external-locking

Thanks.

Upvotes: 29

Views: 77632

Answers (2)

codewaggle
codewaggle

Reputation: 4943

An additional note for anyone who doesn't follow the link provided by @Jonathan Fingland :
8.7.4. External Locking

This option only applies to MyISAM tables.

As Richard indicated, external locking is disabled by default. You need to enable external locking if you use myisamchk for write operations or if you use myisampack to pack tables.

From the docs:

If you use myisamchk to perform table maintenance operations on MyISAM tables, you must either ensure that the server is not running, or that the server has external locking enabled so that it locks table files as necessary to coordinate with myisamchk for access to the tables. The same is true for use of myisampack to pack MyISAM tables.

If you use myisamchk for write operations such as repairing or optimizing tables, or if you use myisampack to pack tables, you must always ensure that the mysqld server is not using the table. If you don't stop mysqld, you should at least do a mysqladmin flush-tables before you run myisamchk. Your tables may become corrupted if the server and myisamchk access the tables simultaneously.

Upvotes: 1

Jonathan Fingland
Jonathan Fingland

Reputation: 57187

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

quote:

If you run multiple servers that use the same database directory (not recommended), each server must have external locking enabled.

It really just has to do with the dangers presented by multiple processes accessing the same data. In many DBMS situations you want to lock the table/row before performing an operation, and unlocking afterwards. This is to prevent possible data corruption.

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

Renamed --skip-locking to --skip-external-locking.

Upvotes: 27

Related Questions