Điểm:0

Vô hiệu hóa hoàn toàn InnoDB trong MariaDB 10.6

lá cờ tm

Không thực sự chắc chắn nên hỏi điều này tại đây hay tại dba.stackexchange.com nhưng tôi cho rằng ở đây có thể phù hợp hơn vì đó là sự cố cấu hình máy chủ.

Tôi có bản cài đặt MariaDB 10.6.5 hoàn toàn mới trên Ubuntu 20.04

Tôi đã sử dụng kho lưu trữ riêng của MariaDB có thể tìm thấy tại URL này - https://mariadb.org/download/?t=repo-config&d=20.04+%22focal%22&v=10.6&r_m=one

Làm theo hướng dẫn từ liên kết ở trên, mọi thứ sẽ cài đặt tốt nhưng mọi thứ bắt đầu trở nên lộn xộn sau đó.

Tôi có một máy khác chạy Ubuntu 20.04 và MariaDB 10.3.32 và mọi thứ đang hoạt động tốt, nhờ chạy các truy vấn này sau khi cài đặt:

THAY ĐỔI BẢNG mysql.innodb_index_stats THAY ĐỔI tên_bảng_tên_bảng VARCHAR(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL;
CHỌN CONCAT('ALTER TABLE ',table_schema,'.',table_name,' ENGINE=MyISAM;') TỪ information_schema.tables WHERE table_schema='mysql' AND engine='InnoDB';

và sau đó thêm các dòng sau vào [mysqld] phần của /etc/mysql/my.cnf:

bỏ qua-innodb
default-storage-engine=MyISAM

Tôi đã thử làm tương tự cho bản cài đặt 10.6 (bằng cách thêm 2 dòng bên trong [mysqld] phần trong /etc/mysql/mariadb.conf.d/50-server.cnf) nhưng vì lý do nào đó InnoDB vẫn hoạt động và mặc định sau khi tôi phát hành ĐỘNG CƠ HIỂN THỊ; truy vấn trong bảng điều khiển.

Một điều khác tôi đã nhận thấy là mới hệ thống cơ sở dữ liệu cũng sử dụng InnoDB và tôi không thể tìm thấy thông tin ở bất kỳ đâu về cách loại bỏ nó. Sau khi xóa cơ sở dữ liệu, tôi gặp một số vấn đề và phải cài đặt lại mọi thứ.

Lý do tôi cần điều này chủ yếu là do sử dụng các máy giá rẻ có RAM 1GB trở xuống trong đó MyISAM vẫn là vua.

//CHỈNH SỬA:

Đây là đầu ra của my_print_defaults --mysqld --defaults-file=/etc/mysql/mariadb.cnf

--socket=/run/mysqld/mysqld.sock
--skip-innodb
--default-storage-engine=MyISAM
--user=mysql
--pid-file=/run/mysqld/mysqld.pid
--basedir=/usr
--datadir=/var/lib/mysql
--tmpdir=/tmp
--lc-messages-dir=/usr/share/mysql
--lc-messages=en_US
--skip-external-locking
--bind-address=127.0.0.1
--expire_logs_days=10
--character-set-server=utf8mb4
--collation-server=utf8mb4_general_ci

Đây là trạng thái systemctl mariadb.service

mariadb.service - Máy chủ cơ sở dữ liệu MariaDB 10.6.5
     Đã tải: đã tải (/lib/systemd/system/mariadb.service; đã bật; giá trị đặt sẵn của nhà cung cấp: đã bật)
    Đăng nhập: /etc/systemd/system/mariadb.service.d
             ââmigrated-from-my.cnf-settings.conf
     Hoạt động: hoạt động (đang chạy) kể từ Thứ Hai 2021-12-27 08:13:02; 3 phút 57 giây trước
       Tài liệu: man:mariadbd(8)
             https://mariadb.com/kb/en/library/systemd/
    Quá trình: 2884 ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysqld (code=exited, status=0/SUCCESS)
    Quá trình: 2889 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (mã=đã thoát, trạng thái=0/THÀNH CÔNG)
    Quá trình: 2899 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= || VAR=`cd /usr/bin/..; /usr/bin/galera_recovery`; [$? -eq 0 ] && môi trường thiết lập systemctl _WSREP_START_POSITION=$VAR || thoát 1 (c>
    Quá trình: 2924 ExecStartPost=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (mã=đã thoát, trạng thái=0/THÀNH CÔNG)
    Quá trình: 2926 ExecStartPost=/etc/mysql/debian-start (code=exited, status=0/SUCCESS)
   PID chính: 2907 (mariadbd)
     Trạng thái: "Nhận yêu cầu SQL của bạn ngay bây giờ..."
      Nhiệm vụ: 10 (giới hạn: 9451)
     Bộ nhớ: 63,1M
     Nhóm C: /system.slice/mariadb.service
             ââ2907 /usr/sbin/mariadbd

Ngày 27 tháng 12 08:13:02 testhost mariadbd[2907]: 27/12/2021 8:13:02 3 [Cảnh báo] Quyền truy cập bị từ chối đối với người dùng 'root'@'localhost' (sử dụng mật khẩu: KHÔNG)
Ngày 27 tháng 12 08:13:02 testhost mariadbd[2907]: 27/12/2021 8:13:02 4 [Cảnh báo] Quyền truy cập bị từ chối đối với người dùng 'root'@'localhost' (sử dụng mật khẩu: KHÔNG)
27 tháng 12 08:13:02 testhost /etc/mysql/debian-start[2931]: Tìm 'mysql' dưới dạng: /usr/bin/mysql
Ngày 27 tháng 12 08:13:02 testhost /etc/mysql/debian-start[2931]: Tìm 'mysqlcheck' dưới dạng: /usr/bin/mysqlcheck
Ngày 27 tháng 12 08:13:02 testhost /etc/mysql/debian-start[2931]: Kiểm tra phiên bản không thành công. Gặp lỗi sau khi gọi ứng dụng khách dòng lệnh 'mysql'
Ngày 27 tháng 12 08:13:02 testhost /etc/mysql/debian-start[2931]: ERROR 1045 (28000): Truy cập bị từ chối đối với người dùng 'root'@'localhost' (sử dụng mật khẩu: KHÔNG)
Ngày 27 tháng 12 08:13:02 testhost /etc/mysql/debian-start[2931]: LỖI FATAL: Nâng cấp không thành công
27 tháng 12 08:13:02 testhost /etc/mysql/debian-start[2941]: Kiểm tra các tài khoản root không an toàn.
Ngày 27 tháng 12 08:13:02 testhost mariadbd[2907]: 27/12/2021 8:13:02 5 [Cảnh báo] Quyền truy cập bị từ chối đối với người dùng 'root'@'localhost' (sử dụng mật khẩu: KHÔNG)
Ngày 27 tháng 12 08:13:02 testhost debian-start[2944]: ERROR 1045 (28000): Truy cập bị từ chối đối với người dùng 'root'@'localhost' (sử dụng mật khẩu: KHÔNG)

Và đây là tạp chíctl -u mariadb.service -n 30

Ngày 27 tháng 12 08:13:01 testhost mariadbd[2907]: 27-12-2021 8:13:01 0 [Lưu ý] /usr/sbin/mariadbd (máy chủ 10.6.5-MariaDB-1:10.6.5+maria~focal ) bắt đầu từ quy trình 2907 ...
Ngày 27 tháng 12 08:13:01 testhost mariadbd[2907]: 27-12-2021 8:13:01 0 [Lưu ý] InnoDB: Bảng nén sử dụng zlib 1.2.11
Ngày 27 tháng 12 08:13:01 testhost mariadbd[2907]: 27-12-2021 8:13:01 0 [Ghi chú] InnoDB: Số nhóm: 1
Ngày 27 tháng 12 08:13:01 testhost mariadbd[2907]: 27-12-2021 8:13:01 0 [Lưu ý] InnoDB: Sử dụng hướng dẫn crc32 + pclmulqdq
Ngày 27 tháng 12 08:13:02 testhost mariadbd[2907]: 27-12-2021 8:13:02 0 [Lưu ý] InnoDB: Sử dụng AIO gốc của Linux
Ngày 27 tháng 12 08:13:02 testhost mariadbd[2907]: 27/12/2021 8:13:02 0 [Lưu ý] InnoDB: Đang khởi tạo nhóm bộ đệm, tổng kích thước = 134217728, kích thước khối = 134217728
Ngày 27 tháng 12 08:13:02 testhost mariadbd[2907]: 27/12/2021 8:13:02 0 [Lưu ý] InnoDB: Đã hoàn thành khởi tạo vùng đệm
Ngày 27 tháng 12 08:13:02 testhost mariadbd[2907]: 27/12/2021 8:13:02 0 [Lưu ý] InnoDB: 128 phân đoạn khôi phục đang hoạt động.
Ngày 27 tháng 12 08:13:02 testhost mariadbd[2907]: 27-12-2021 8:13:02 0 [Lưu ý] InnoDB: Tạo không gian bảng dùng chung cho các bảng tạm thời
Ngày 27 tháng 12 08:13:02 testhost mariadbd[2907]: 27-12-2021 8:13:02 0 [Lưu ý] InnoDB: Đặt kích thước tệp './ibtmp1' thành 12 MB. Vật lý viết đầy đủ các tập tin; Vui lòng chờ ...
Ngày 27 tháng 12 08:13:02 testhost mariadbd[2907]: 27-12-2021 8:13:02 0 [Lưu ý] InnoDB: Kích thước tệp './ibtmp1' hiện là 12 MB.
Ngày 27 tháng 12 08:13:02 testhost mariadbd[2907]: 27-12-2021 8:13:02 0 [Ghi chú] InnoDB: 10.6.5 đã bắt đầu; dãy số đăng nhập 33062; id giao dịch 4
Ngày 27 tháng 12 08:13:02 testhost mariadbd[2907]: 27-12-2021 8:13:02 0 [Lưu ý] InnoDB: Đang tải (các) nhóm bộ đệm từ /var/lib/mysql/ib_buffer_pool
Ngày 27 tháng 12 08:13:02 testhost mariadbd[2907]: 27/12/2021 8:13:02 0 [Lưu ý] Plugin 'PHẢN HỒI' bị tắt.
Ngày 27 tháng 12 08:13:02 testhost mariadbd[2907]: 27-12-2021 8:13:02 0 [Lưu ý] InnoDB: Tải (các) nhóm bộ đệm hoàn tất lúc 211227 8:13:02
Ngày 27 tháng 12 08:13:02 testhost mariadbd[2907]: 27/12/2021 8:13:02 0 [Lưu ý] Ổ cắm máy chủ được tạo trên IP: '0.0.0.0'.
Ngày 27 tháng 12 08:13:02 testhost mariadbd[2907]: 27-12-2021 8:13:02 0 [Lưu ý] Ổ cắm máy chủ được tạo trên IP: '::'.
Ngày 27 tháng 12 08:13:02 testhost mariadbd[2907]: 27-12-2021 8:13:02 0 [Lưu ý] /usr/sbin/mariadbd: sẵn sàng kết nối.
Ngày 27 tháng 12 08:13:02 testhost mariadbd[2907]: Phiên bản: '10.6.5-MariaDB-1:10.6.5+maria~focal' ổ cắm: '/run/mysqld/mysqld.sock' cổng: 3306 mariadb.org phân phối nhị phân
Ngày 27 tháng 12 08:13:02 testhost systemd[1]: Khởi động máy chủ cơ sở dữ liệu MariaDB 10.6.5.
Ngày 27 tháng 12 08:13:02 testhost mariadbd[2907]: 27/12/2021 8:13:02 3 [Cảnh báo] Quyền truy cập bị từ chối đối với người dùng 'root'@'localhost' (sử dụng mật khẩu: KHÔNG)
Ngày 27 tháng 12 08:13:02 testhost mariadbd[2907]: 27/12/2021 8:13:02 4 [Cảnh báo] Quyền truy cập bị từ chối đối với người dùng 'root'@'localhost' (sử dụng mật khẩu: KHÔNG)
27 tháng 12 08:13:02 testhost /etc/mysql/debian-start[2931]: Tìm 'mysql' dưới dạng: /usr/bin/mysql
Ngày 27 tháng 12 08:13:02 testhost /etc/mysql/debian-start[2931]: Tìm 'mysqlcheck' dưới dạng: /usr/bin/mysqlcheck
Ngày 27 tháng 12 08:13:02 testhost /etc/mysql/debian-start[2931]: Kiểm tra phiên bản không thành công. Gặp lỗi sau khi gọi ứng dụng khách dòng lệnh 'mysql'
Ngày 27 tháng 12 08:13:02 testhost /etc/mysql/debian-start[2931]: ERROR 1045 (28000): Truy cập bị từ chối đối với người dùng 'root'@'localhost' (sử dụng mật khẩu: KHÔNG)
Ngày 27 tháng 12 08:13:02 testhost /etc/mysql/debian-start[2931]: LỖI FATAL: Nâng cấp không thành công
27 tháng 12 08:13:02 testhost /etc/mysql/debian-start[2941]: Kiểm tra các tài khoản root không an toàn.
Ngày 27 tháng 12 08:13:02 testhost mariadbd[2907]: 27/12/2021 8:13:02 5 [Cảnh báo] Quyền truy cập bị từ chối đối với người dùng 'root'@'localhost' (sử dụng mật khẩu: KHÔNG)
Ngày 27 tháng 12 08:13:02 testhost debian-start[2944]: ERROR 1045 (28000): Truy cập bị từ chối đối với người dùng 'root'@'localhost' (sử dụng mật khẩu: KHÔNG)
Điểm:1
lá cờ cn

Daniel Black trên MariaDB Zulip đã thử nghiệm điều này và nó hoạt động đủ tốt trong một vùng chứa:

$ podman run --rm --env MARIADB_RANDOM_ROOT_PASSWORD=1 mariadb:10.6 --skip-innodb --default-storage-engine=Aria
23-12-2021 05:54:16+00:00 [Lưu ý] [Điểm vào]: Tập lệnh điểm vào cho Máy chủ MariaDB 1:10.6.5+maria~focal đã bắt đầu.
23-12-2021 05:54:17+00:00 [Lưu ý] [Điểm vào]: Chuyển sang người dùng chuyên dụng 'mysql'
23-12-2021 05:54:17+00:00 [Lưu ý] [Điểm vào]: Tập lệnh điểm vào cho Máy chủ MariaDB 1:10.6.5+maria~focal đã bắt đầu.
...
23-12-2021 5:54:27 0 [Lưu ý] Plugin 'InnoDB' đã bị tắt.
23-12-2021 5:54:27 0 [Lưu ý] Plugin 'PHẢN HỒI' bị tắt.
23-12-2021 5:54:27 0 [Cảnh báo] Bạn cần sử dụng --log-bin để --expire-logs-days hoặc --binlog-expire-logs-seconds hoạt động.
23-12-2021 5:54:27 0 [Lưu ý] Ổ cắm máy chủ được tạo trên IP: '0.0.0.0'.
23-12-2021 5:54:27 0 [Lưu ý] Ổ cắm máy chủ được tạo trên IP: '::'.
23-12-2021 5:54:27 0 [Cảnh báo] Mục nhập 'proxies_priv' '@% root@9df410ee481f' bị bỏ qua trong chế độ --skip-name-resolve.
23-12-2021 5:54:27 0 [Lưu ý] mysqld: sẵn sàng kết nối.
Phiên bản: '10.6.5-MariaDB-1:10.6.5+maria~focal' ổ cắm: '/run/mysqld/mysqld.sock' cổng: 3306 phân phối nhị phân mariadb.org

hiển thị động cơ:

$ podman exec lạc quan_kalam mariadb -p'4(V_6icy&6BPL4wt*cG!=vi"rh8gvW;Q' -e 'hiển thị động cơ'
Công cụ Hỗ trợ Bình luận Giao dịch XA Savepoints
CSV CÓ Lưu trữ bảng dưới dạng tệp CSV KHÔNG KHÔNG KHÔNG
MRG_MyISAM CÓ Tập hợp các bảng MyISAM giống nhau KHÔNG KHÔNG KHÔNG
BỘ NHỚ CÓ Dựa trên hàm băm, được lưu trữ trong bộ nhớ, hữu ích cho các bảng tạm thời KHÔNG KHÔNG KHÔNG
Aria MẶC ĐỊNH Các bảng an toàn với sự cố với di sản MyISAM. Được sử dụng cho các bảng tạm thời nội bộ và bảng đặc quyền KHÔNG KHÔNG KHÔNG
MyISAM CÓ Công cụ phi giao dịch với hiệu suất tốt và lượng dữ liệu nhỏ KHÔNG KHÔNG KHÔNG
TRÌNH TỰ CÓ Các bảng đã tạo chứa đầy các giá trị tuần tự CÓ KHÔNG CÓ
InnoDB KHÔNG Hỗ trợ giao dịch, khóa cấp hàng, khóa ngoại và mã hóa cho bảng NULL NULL NULL
PERFORMANCE_SCHEMA CÓ Lược đồ hiệu suất KHÔNG KHÔNG KHÔNG

Các mysql.transaction_registry sử dụng nó vì nó cần một công cụ lưu trữ giao dịch.

danblack avatar
lá cờ dz
các thùng chứa lưu ý chạy mysql_install_db trong cùng một cấu hình và có đủ thông minh ở đó để phát hiện việc thiếu innodb và điều chỉnh cho phù hợp. Nếu bạn đang thực hiện cài đặt mới, hãy xóa /var/lib/mysql và `mysql_install_db --user mysql` sau khi cấu hình của bạn thay đổi.
danblack avatar
lá cờ dz
Trong ví dụ của tôi, [~markusjm] cũng không cho rằng tôi đã sử dụng Aria thay vì MyISAM để đảm bảo an toàn khi va chạm. Cũng nên chứa các tùy chọn thân thiện với bộ nhớ tương tự.
Sledge Hammer avatar
lá cờ tm
@markusjm và @danblack - Cảm ơn cả hai vì sự giúp đỡ, nhưng tôi vẫn không biết cách tắt công cụ thông qua các tệp cấu hình. Tôi đã thử ví dụ trên trong bảng điều khiển sau khi dừng dịch vụ và InnoDB thực sự bị vô hiệu hóa, nhưng khi tôi thêm các tùy chọn vào tệp cấu hình mà tôi đã đề cập trong câu hỏi - không có gì xảy ra. Tôi đã tò mò và thay thế toàn bộ thư mục `/etc/mysql` bằng thư mục từ 10.3 và nó hoạt động tốt, nhưng những tệp đó là từ một phiên bản thậm chí còn cũ hơn và tôi e rằng chúng sẽ ngừng hoạt động vào một lúc nào đó và tôi muốn có cấu hình cập nhật hơn.
danblack avatar
lá cờ dz
Bao gồm thông tin trong câu hỏi của bạn. "không có gì xảy ra" có lẽ nó không khởi động được tuy nhiên tôi không thể biết tại sao nếu không có thêm thông tin. Hiển thị nhật ký máy chủ `journalctl -u mariadb.service -n 30` và `trạng thái systemctl mariadb.service`. Không nên thay thế bằng cấu hình 10.3 vì các tùy chọn không dùng nữa có thể đã xảy ra như đề xuất. Để câu hỏi rõ ràng, hãy bao gồm `my_print_defaults --mysqld` để xem những mục cấu hình nào được đặt.
Sledge Hammer avatar
lá cờ tm
@danblack - "Không có gì xảy ra" Ý tôi là mọi thứ đều giống như tôi đã nêu trong câu hỏi - Tôi đang thêm các thay đổi vào tệp, dịch vụ bắt đầu tốt nhưng vì lý do nào đó, các tùy chọn cấu hình đó bị bỏ qua và InnoDB vẫn hoạt động và mặc định khi tôi chạy `SHOW Engines;`. Tôi đã thêm đầu ra của nhật ký bạn muốn... Tôi đã đặt pass cho root, vì vậy nó phải là lý do gây ra lỗi root. Tôi đang lên kế hoạch xóa sạch toàn bộ máy và bắt đầu lại từ đầu trong vài ngày tới để xem liệu bằng cách nào đó tôi có làm hỏng thứ gì đó không, mặc dù tôi nghi ngờ kết quả sẽ khác đi.
danblack avatar
lá cờ dz
Làm theo hướng dẫn xóa datadir trong nhận xét đầu tiên và khởi tạo lại bằng cách sử dụng `mysql_install_db`. Tôi đã xem mã và innodb dường như khởi tạo nếu các tệp đó ở đó.
Sledge Hammer avatar
lá cờ tm
@danblack - Đã thử điều đó trước nhận xét trước đây của tôi và kết quả vẫn như vậy. Tôi đã chỉnh sửa cấu hình với 2 tùy chọn được thêm vào và thực hiện `service mariadb stop`, `rm -rf /var/lib/mysql/*` theo sau là `mysql_install_db --user mysql` và `service mariadb start` và vẫn có innodb đang chạy.

Đă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.