2009-06-03 38 views
23

Tôi đang sử dụng MySQL 5.0.67 trên RHEL5 và dựa trên cấu hình của mình trên my-huge.cnf.MySQL - những gì hiện bỏ khóa trong my.cnf làm gì?

Tôi không thể tìm thấy bất kỳ thứ gì trong sách hướng dẫn MySQL cho hàng 'bỏ qua khóa' xuất hiện trong tệp cấu hình.

Điều này có nên được thay thế bằng 'skip_external_locking' hay tôi chỉ nên xóa hoàn toàn hàng như hiện tại mặc định.

MySQL Manual for skip-external-locking

Cảm ơn.

Trả lời

25

thấy http://dev.mysql.com/doc/refman/5.0/en/external-locking.html

quote:

Nếu bạn chạy nhiều máy chủ sử dụng thư mục cơ sở dữ liệu tương tự (không khuyến khích), mỗi máy chủ phải bật tính năng khóa từ bên ngoài.

Nó thực sự chỉ liên quan đến những nguy hiểm được trình bày bởi nhiều quy trình truy cập cùng một dữ liệu. Trong nhiều tình huống DBMS, bạn muốn khóa bảng/hàng trước khi thực hiện một thao tác và mở khóa sau đó. Điều này là để ngăn chặn tham nhũng dữ liệu có thể xảy ra.

Chỉnh sửa: xem http://dev.mysql.com/doc/refman/4.1/en/news-4-0-3.html Trích

đổi tên --skip khóa để --skip-ngoài-khóa.

+0

Cảm ơn - nhưng đó là skip_external_locking - Tôi muốn biết liệu 'bỏ qua khóa' có giống nhau không và nếu cần thiết trong tệp cấu hình vì nó đã là mặc định? – Richard

+0

đã chỉnh sửa. nó chỉ là một đổi tên –

+2

Cảm ơn một lần nữa, vì vậy để tóm tắt - hàng 'bỏ khóa' của tập tin cấu hình có thể được gỡ bỏ bởi vì a) nó đã lỗi thời, biến đã được đổi tên. b) hành vi đó là mặc định – Richard

0

Một lưu ý bổ sung cho những ai không làm theo các liên kết được cung cấp bởi @ Jonathan Fingland:
8.7.4. External Locking

Tùy chọn này chỉ áp dụng cho các bảng MyISAM.

Như Richard đã chỉ ra, khóa ngoài bị tắt theo mặc định. Bạn cần bật khóa bên ngoài nếu bạn sử dụng myisamchk để ghi các thao tác hoặc nếu bạn sử dụng myisampack để đóng gói các bảng.

Từ các tài liệu:

Nếu bạn sử dụng myisamchk để thực hiện các hoạt động bảo trì bảng trên MyISAM bảng, bạn phải đảm bảo rằng các máy chủ không hoạt động, hoặc là máy chủ đã khóa bên ngoài được kích hoạt để nó khóa các tệp bảng khi cần thiết để phối hợp với myisamchk để truy cập vào các bảng. Điều tương tự cũng đúng đối với việc sử dụng myisampack để đóng gói các bảng MyISAM.

Nếu bạn sử dụng myisamchk để ghi các hoạt động như sửa chữa hoặc tối ưu hóa bảng, hoặc nếu bạn sử dụng myisampack để đóng gói bảng, bạn phải luôn đảm bảo rằng máy chủ mysqld không sử dụng bảng. Nếu bạn không dừng mysqld, bạn nên ít nhất làm một bảng mysqladmin tuôn ra trước khi bạn chạy myisamchk. Bảng của bạn có thể bị hỏng nếu máy chủ và myisamchk truy cập các bảng cùng một lúc.

Các vấn đề liên quan