Cơ sở dữ liệu MySQL đóng băng sau khi 'sử dụng'


17

Gần đây tôi đã mắc một lỗi khá ngu ngốc và làm hỏng cài đặt Ubuntu của tôi. Để giải quyết nó, tôi đã khởi động với một đĩa CD trực tiếp và sao chép các tệp cơ sở dữ liệu. Tuy nhiên, bây giờ tôi đã sao chép các thư mục từ cài đặt cũ sang cài đặt mới, bất cứ khi nào tôi gõ "sử dụng cơ sở dữ liệu", nó chỉ đóng băng trên này:

mysql> use my_database_name;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Và sau đó đóng băng mà không đưa thiết bị đầu cuối.

Câu trả lời:


28

Trong lệnh "sử dụng" đầu tiên sau khi đăng nhập, MySQL quét cơ sở dữ liệu, tên bảng và cột để hoàn thành tự động. Nếu bạn có nhiều db, các bảng có thể mất một lúc.

Để tránh điều đó, hãy khởi chạy ứng dụng khách của bạn với tùy chọn -A (hoặc --no-auto-Rehash)

mysql -uroot -p -A

Bạn cũng có thể thêm biến vô hiệu hóa_auto_rehash trong my.cnf của bạn (trong phần [mysql]) nếu bạn muốn tắt nó hoàn toàn. Thay đổi này không yêu cầu khởi động lại (nó là máy khách, không phải máy chủ, biến).


"một thời gian" có thể là hơn một ngày cho cơ sở dữ liệu ~ 2,5GiB, hoặc nó có dài quá mức không hợp lý?
lucidbrot

2

Trong trường hợp của tôi, "Thông tin bảng đọc" đã chiếm một lượng thời gian không hợp lý. Khi tôi chạy, mysql -e 'show processlist'tôi phát hiện ra rằng quy trình "treo" là "Đang chờ khóa siêu dữ liệu bảng". Điều này có ý nghĩa khi tôi có một truy vấn dài của biểu mẫu create table from select ...chạy ở nơi khác, vì vậy ở một cấp độ tôi có thể hiểu rằng cho đến khi bảng mới được tạo xong, siêu dữ liệu về các bảng sẽ không khả dụng. (Tôi đoán sẽ tốt hơn nếu quét tự động hoàn thành chỉ cần bỏ qua bất kỳ bảng "chưa hoàn thành" nào khỏi truy vấn dữ liệu meta nếu điều này là có thể.)


0

📌

Khi bạn sao chép toàn bộ cơ sở dữ liệu từ hệ thống khác:

/ var / lib / mysql / *

Bạn có thể chown -R mysql: mysql / var / lib / mysql / * và bắt đầu dịch vụ lại.

Điều này đã giải quyết vấn đề của tôi


2
Chào mừng bạn đến với Sàn giao dịch DBA! Bạn đã định dạng nó như một trích dẫn; nếu bạn thực sự có giải pháp này từ nơi khác, bạn phải cung cấp nguồn . Nếu không, vui lòng xóa định dạng.
Glorfindel
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.