Tôi đã nâng cấp OpenBSD 6.9 lên 7.0 vào ngày hôm qua.
Nó đã nâng cấp MariaDB:10.5 lên 10.6.
Tôi đã kiểm tra my.cnf
thay đổi và nó có vẻ ổn.
Tuy nhiên, sự cố đã được tìm thấy trên máy chủ NextCloud sử dụng MariaDB trên OpenBSD.
Điều gì đã xảy ra là không cập nhật được gói.
Tôi đã kết nối với máy chủ NextCloud bằng trình duyệt web. Không có bảng điều khiển ứng dụng và thay vào đó, trình cập nhật đã chờ được khởi động. Nó có nghĩa là pkg_add -u
không cập nhật được NextCloud. Nhấp vào nút bắt đầu trên trang kết thúc hiển thị một số ngoại lệ đã xảy ra.
Tôi đã đọc nextcloud.log
trong máy chủ và nhận được:
"level":3,
(...)
"Exception":"Doctrine\\DBAL\\Exception\\DriverException",
"Message":"An exception occurred while executing a query:
SQLSTATE[HY000]:
General error:
4047 InnoDB refuses to write tables with ROW_FORMAT=COMPRESSED or KEY_BLOCK_SIZE.","Code":4047,
Đối với COMPRESSED
định dạng hàng, MariaDB đang trên đường cho phép nó ở chế độ Chỉ đọc bằng cách "loại bỏ hỗ trợ ghi và không dùng tính năng nữa".
Họ đã giới thiệu innodb_read_only_compressed¶
tùy chọn ở 10.6.0 ON
theo mặc định.
Đó là lý do tại sao cập nhật NextCloud (từ 21.0.4) lên 21.0.5 trên OpenBSD 7.0 không thành công. Đó không phải là do hệ điều hành hoặc phiên bản ứng dụng mà là do khả năng tương thích với MariaDB có phiên bản lớn hơn hoặc bằng 10.6.0.
Có một vấn đề mở liên quan đến nó trong repo NextCloud.
Chà, tôi đã chỉnh sửa /etc/my.cnf
tạm thời để giải quyết vấn đề:
[mysqld]
(...)
+ innodb_read_only_compressed = 0
Bên cạnh đó, tôi không tìm thấy cách đặt nó trên một cơ sở dữ liệu hoặc một bảng cụ thể và thậm chí cả khả năng😅
Tôi đã khởi động lại mysqld
trong máy chủ và thử lại trình cập nhật trên trang web. Rốt cuộc, nó đã hoàn toàn thành công.
Tôi đánh giá cao tài liệu MariaDB và một số bài đăng như các vấn đề trên Github và blog. Họ đã giúp tôi rất nhiều.