p2@P2:~$sudo systemctl khởi động lại mariadb
Công việc cho mariadb.service không thành công vì quá trình kiểm soát đã thoát với mã lỗi.
Xem "systemctl status mariadb.service" và "journalctl -xe" để biết chi tiết.
p2@P2:~$sudo systemctl status mariadb
mariadb.service - Máy chủ cơ sở dữ liệu MariaDB 10.3.31
Đã 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
Hoạt động: không thành công (Kết quả: mã thoát) kể từ Thứ Sáu 2021-08-13 15:13:46 CEST; 5 phút trước
Tài liệu: man:mysqld(8)
https://mariadb.com/kb/en/library/systemd/
Quá trình: 313918 ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysqld (code=exited, status=0/SUCCESS)
Quá trình: 313919 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: 313921 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= || VAR=`cd /usr/bin/..; /usr/bin/galera_recovery`; [$? -eq 0 ] && set-environment systemctl _WSRE>
Quá trình: 313968 ExecStart=/usr/sbin/mysqld $MYSQLD_OPTS $_WSREP_NEW_CLUSTER $_WSREP_START_POSITION (mã=đã thoát, trạng thái=127)
PID chính: 313968 (mã=đã thoát, trạng thái=127)
srp 13 15:13:46 P2 systemd[1]: Khởi động máy chủ cơ sở dữ liệu MariaDB 10.3.31...
srp 13 15:13:46 P2 mysqld[313968]: /usr/sbin/mysqld: lỗi khi tải thư viện dùng chung: liblz4.so.1: không thể mở tệp đối tượng dùng chung: Không có tệp hoặc thư mục như vậy
srp 13 15:13:46 P2 systemd[1]: mariadb.service: Quá trình chính đã thoát, mã=đã thoát, trạng thái=127/n/a
srp 13 15:13:46 P2 systemd[1]: mariadb.service: Không thành công với kết quả là 'mã thoát'.
srp 13 15:13:46 P2 systemd[1]: Không khởi động được máy chủ cơ sở dữ liệu MariaDB 10.3.31.
srp 13 15:13:46 P2 mysqld[313968]: /usr/sbin/mysqld: lỗi khi tải thư viện dùng chung: liblz4.so.1: không thể mở tệp đối tượng dùng chung: Không có tệp hoặc thư mục như vậy
Được rồi, vậy là mariaDB không thể tìm thấy thư viện liblz4-1. Tuy nhiên:
Gói liblz4-1 đã được cài đặt và cập nhật.liblz4.so.1 được cài đặt tại /lib/x86_64-linux-gnu/liblz4.so.1
Nếu chúng ta tự chạy mariaDB:
p2@P2:~$ /usr/sbin/mysqld
/usr/sbin/mysqld: lỗi khi tải thư viện dùng chung: liblz4.so.1: không thể mở tệp đối tượng dùng chung: Không có tệp hoặc thư mục như vậy
Nhưng nếu chúng ta chạy ldd trên mariaDB để tìm các thư viện cần thiết:
p2@P2:~$ ldd /usr/sbin/mysqld
linux-vdso.so.1 (0x00007ffe322c0000)
liblz4.so.1 => /lib/x86_64-linux-gnu/liblz4.so.1 (0x00007fa0406cd000)
libsnappy.so.1 => /lib/x86_64-linux-gnu/libsnappy.so.1 (0x00007fa0406c2000)
libaio.so.1 => /lib/x86_64-linux-gnu/libaio.so.1 (0x00007fa0406bd000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fa0406a1000)
libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007fa04062e000)
libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1 (0x00007fa0405f3000)
libsystemd.so.0 => /lib/x86_64-linux-gnu/libsystemd.so.0 (0x00007fa040542000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fa04053c000)
libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fa04035a000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fa04020b000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fa0401e8000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fa03fff6000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fa03ffd9000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fa03ffce000)
liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007fa03ffa5000)
libgcrypt.so.20 => /lib/x86_64-linux-gnu/libgcrypt.so.20 (0x00007fa03fe87000)
/lib64/ld-linux-x86-64.so.2 (0x00007fa0423ec000)
libgpg-error.so.0 => /lib/x86_64-linux-gnu/libgpg-error.so.0 (0x00007fa03fe64000)
ldd có thể tìm thư viện! (Nếu không được, nó sẽ xuất liblz4.so.1 => không tìm thấy)
Được rồi, vậy điều gì gây ra lỗi này và làm cách nào để chạy mariaDB?
Lưu ý bổ sung: Một số nghiên cứu rất sâu trên internet đã tiết lộ rằng vấn đề này có thể là do thiếu/hỏng trình tải thư viện. Tuy nhiên, tôi nghi ngờ lời khuyên đưa ra đã lỗi thời, vì các vấn đề của chúng là do nhiều kiến trúc của tôi và các gói trong hệ thống của tôi là 64-bit. Ngoài ra, các trình tải mà họ đang đề cập đến không tồn tại trên bản phân phối của tôi.
Ngoài ra, tôi đang sử dụng Ubuntu 20.04.2 LTS.
chỉnh sửa: tổng kiểm tra thư viện
tìm / -name "liblz4.so*" -type f 2> /dev/null | xargs sha256sum
536ab2f5d4448fd1ff62d43b99ece092ec7824b083af7c7007bb0889353d2777 /snap/snap-store/542/usr/lib/x86_64-linux-gnu/liblz4.so.1.7.1
536ab2f5d4448fd1ff62d43b99ece092ec7824b083af7c7007bb0889353d2777 /snap/snap-store/547/usr/lib/x86_64-linux-gnu/liblz4.so.1.7.1
c619a6d991c87ec2967b2b0c417ae5a9b86a76f11396ff5492947b4f637369db /snap/snapd/12704/usr/lib/x86_64-linux-gnu/liblz4.so.1.7.1
c619a6d991c87ec2967b2b0c417ae5a9b86a76f11396ff5492947b4f637369db /snap/snapd/12398/usr/lib/x86_64-linux-gnu/liblz4.so.1.7.1
c619a6d991c87ec2967b2b0c417ae5a9b86a76f11396ff5492947b4f637369db /snap/core/11420/usr/lib/x86_64-linux-gnu/liblz4.so.1.7.1
c619a6d991c87ec2967b2b0c417ae5a9b86a76f11396ff5492947b4f637369db /snap/core/11316/usr/lib/x86_64-linux-gnu/liblz4.so.1.7.1
536ab2f5d4448fd1ff62d43b99ece092ec7824b083af7c7007bb0889353d2777 /snap/core18/2128/usr/lib/x86_64-linux-gnu/liblz4.so.1.7.1
536ab2f5d4448fd1ff62d43b99ece092ec7824b083af7c7007bb0889353d2777 /snap/core18/2074/usr/lib/x86_64-linux-gnu/liblz4.so.1.7.1
d6574e34006e27cfb5d00dc75018cc06832d0bbc9e1b35316b9c03148355f0a0 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.2