Điểm:0

Nhật ký MySQL chứa đầy "Thông tin trạng thái" không mong muốn khi khởi động lại máy chủ do SIGHUP

lá cờ dj

Điều này đã làm tôi khó chịu trong một thời gian, vì vậy đã đến lúc phải hỏi.

MySQL error_log lấp đầy "Thông tin trạng thái" khi máy chủ khởi động lại do ĐĂNG KÍ. Đây là một liên kết mô tả hành vi: Máy chủ MySQL phản hồi tín hiệu SIGHUP

Tôi hiểu những gì đang xảy ra, nhưng không biết cách khắc phục.

Tôi có một tập lệnh kiểm soát việc bắt đầu/dừng mysqld: /etc/init.d/mysql

đây là tệp mysql-helpers có nguồn gốc được tham chiếu bởi tập lệnh init.d.

Tôi không thể tìm thấy SIGUP đến từ đâu? Hoặc có thể nó đến từ hệ điều hành? Debian 10.

Chỉnh sửa

Đang làm khởi động lại dịch vụ mysql hoặc dừng lại không bao giờ tạo mục nhập nhật ký bổ sung, vì vậy có thể nó có liên quan đến quá trình tắt máy trong khi khởi động lại máy chủ|tạm dừng? Tôi không đủ hiểu về SIGHUP để xác định xem mình có đang đi đúng hướng hay không.

lá cờ us
Vui lòng thêm chi tiết về hệ điều hành của bạn. Tập lệnh init.d của bạn có được gọi trong quá trình tắt hệ thống có trật tự không?
Jeff avatar
lá cờ dj
Hệ điều hành là Debian 10 Buster với nhân mặc định. Tập lệnh init.d được gọi trong `shutdown -r now` hoặc `shutdown -h now`. Tôi không chắc đó có phải là tắt máy "có trật tự" hay không.
Cameron Kerr avatar
lá cờ id
Đây là máy ảo hay máy vật lý? Tôi chỉ hỏi bởi vì (nhiều) năm trước, tôi đã gặp phải một vấn đề trong đó rất nhiều SIGHUP là do bộ nhớ bị hỏng, vì vậy việc thực hiện kiểm tra trí nhớ có thể hữu ích.... nhưng điều này chắc chắn là rất khó hiểu. Trước tiên tôi sẽ bắt đầu với việc xem những gì khác đang chạy trên hộp. Bất kỳ quản lý giám sát/số liệu/cấu hình nào?
Cameron Kerr avatar
lá cờ id
SIGHUP được gửi tới MySQL khi bạn thực hiện một số việc như xóa bảng cấp hoặc nhật ký... hành vi bạn đang thấy có phải do các công cụ như logrotate không? Có điều gì kỳ lạ xảy ra trên bảng mysql.users, v.v. không? Bạn có thể xác định điều gì dựa trên thời điểm hoạt động diễn ra?
Jeff avatar
lá cờ dj
@CameronKerr Máy này là máy ảo. Không có phần mềm giám sát nào đang chạy. Điều duy nhất tôi có thể nghĩ đến là có thể thay thế `killall` bằng `mysqladmin shutdown` trong tập lệnh /etc/init.d/mysql. Không chắc chắn mặc dù. Tuy nhiên, việc biết *khi nào* SIGHUP được gửi tới mysqld là hữu ích. Trong thời gian chờ đợi, bất kỳ đề xuất nào khác đều được hoan nghênh.
lá cờ us
nếu trong khi tắt máy, tập lệnh init.d của bạn không chạy, tất cả các quy trình còn lại (bao gồm cả mysql) sẽ nhận được một SIGHUP theo sau là SIGKILL, có vẻ như đây là những gì đang xảy ra ở đó.
Jeff avatar
lá cờ dj
@Nils Nhận xét của bạn hóa ra là câu trả lời đúng. Nếu bạn muốn đăng câu trả lời, tôi sẽ đánh dấu nó là chính xác. Giải pháp cuối cùng hóa ra là thay đổi tập lệnh bắt đầu/dừng từ sysvinit thành systemd.
Điểm:0
lá cờ us

Nếu trong khi tắt máy, tập lệnh init.d của bạn không chạy, tất cả các quy trình còn lại (bao gồm cả mysql) sẽ nhận được một SIGHUP theo sau là SIGKILL, có vẻ như đây là những gì đang xảy ra ở đó.

Jeff avatar
lá cờ dj
Đó chính xác là những gì đã xảy ra. Đã chuyển từ init.d sang systemd và mọi thứ đều ổn.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.