我在RHEL5上使用MySQL 5.0.67并将我的配置基于my-huge.cnf。
我在MySQL手册中找不到配置文件中出现的'skip-locking'行。
是否应将其替换为'skip_external_locking',或者我应该完全删除该行,因为现在这是默认行。
MySQL Manual for skip-external-locking
感谢。
答案 0 :(得分:26)
请参阅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-locking to --skip-external-locking。
答案 1 :(得分:0)
对于未遵循@Jonathan Fingland提供的链接的任何人的附加说明:
8.7.4. External Locking
此选项仅适用于MyISAM表。
正如Richard指出的那样,默认情况下禁用外部锁定。如果使用myisamchk
进行写入操作,或者使用myisampack
打包表,则需要启用外部锁定。
来自文档:
如果使用myisamchk在MyISAM上执行表维护操作 表,您必须确保服务器没有运行,或者那样 服务器已启用外部锁定,以便锁定表文件 必要时与myisamchk协调以访问表格。 使用myisampack打包MyISAM表也是如此。
如果您使用myisamchk进行修复等操作 优化表,或者如果使用myisampack打包表,则必须 始终确保mysqld服务器不使用该表。如果你 不要停止mysqld,你至少应该做一个mysqladmin flush-tables 在你运行myisamchk之前。如果你的表可能会被破坏 server和myisamchk同时访问表。