Score:1

/usr/sbin/mysqld: เกิดข้อผิดพลาดขณะโหลดไลบรารีที่ใช้ร่วมกัน: liblz4.so.1: ไม่สามารถเปิดไฟล์วัตถุที่ใช้ร่วมกันได้: ไม่มีไฟล์หรือไดเร็กทอรีดังกล่าว

ธง ng
p2@P2:~$sudo systemctl รีสตาร์ท mariadb
งานสำหรับ mariadb.service ล้มเหลวเนื่องจากกระบวนการควบคุมออกโดยมีรหัสข้อผิดพลาด
ดู "สถานะ systemctl mariadb.service" และ "journalctl -xe" สำหรับรายละเอียด
p2@P2:~$sudo systemctl สถานะ mariadb
mariadb.service - เซิร์ฟเวอร์ฐานข้อมูล MariaDB 10.3.31
     โหลดแล้ว: โหลดแล้ว (/lib/systemd/system/mariadb.service; เปิดใช้งาน; การตั้งค่าล่วงหน้าของผู้ขาย: เปิดใช้งาน)
    ดรอปอิน: /etc/systemd/system/mariadb.service.d
ใช้งานอยู่: ล้มเหลว (ผลลัพธ์: exit-code) ตั้งแต่ ศุกร์ 2021-08-13 15:13:46 CEST; 5 นาทีที่แล้ว
       เอกสาร: man:mysqld(8)
             https://mariadb.com/kb/en/library/systemd/
    กระบวนการ: 313918 ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysqld (รหัส=ออก สถานะ=0/สำเร็จ)
    กระบวนการ: 313919 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
    กระบวนการ: 313921 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= || VAR=`ซีดี /usr/bin/..; /usr/bin/galera_recovery`; [ $? -eq 0 ] && systemctl ตั้งค่าสภาพแวดล้อม _WSRE>
    กระบวนการ: 313968 ExecStart=/usr/sbin/mysqld $MYSQLD_OPTS $_WSREP_NEW_CLUSTER $_WSREP_START_POSITION (รหัส=ออกแล้ว สถานะ=127)
   PID หลัก: 313968 (รหัส=ออก สถานะ=127)

srp 13 15:13:46 P2 systemd[1]: กำลังเริ่มต้นเซิร์ฟเวอร์ฐานข้อมูล MariaDB 10.3.31...
srp 13 15:13:46 P2 mysqld[313968]: /usr/sbin/mysqld: ข้อผิดพลาดขณะโหลดไลบรารีที่ใช้ร่วมกัน: liblz4.so.1: ไม่สามารถเปิดไฟล์วัตถุที่ใช้ร่วมกัน: ไม่มีไฟล์หรือไดเร็กทอรีดังกล่าว
srp 13 15:13:46 P2 systemd[1]: mariadb.service: ออกจากกระบวนการหลักแล้ว, รหัส=ออกแล้ว, สถานะ=127/n/a
srp 13 15:13:46 P2 systemd[1]: mariadb.service: ล้มเหลวด้วยผลลัพธ์ 'exit-code'
srp 13 15:13:46 P2 systemd[1]: ไม่สามารถเริ่มเซิร์ฟเวอร์ฐานข้อมูล MariaDB 10.3.31

srp 13 15:13:46 P2 mysqld[313968]: /usr/sbin/mysqld: ข้อผิดพลาดขณะโหลดไลบรารีที่ใช้ร่วมกัน: liblz4.so.1: ไม่สามารถเปิดไฟล์วัตถุที่ใช้ร่วมกัน: ไม่มีไฟล์หรือไดเร็กทอรีดังกล่าว

โอเค ดังนั้น mariaDB หาไลบรารี่ liblz4-1 ไม่เจอ อย่างไรก็ตาม:

แพ็คเกจ liblz4-1 ได้รับการติดตั้งและเป็นปัจจุบันliblz4.so.1 ติดตั้งที่ /lib/x86_64-linux-gnu/liblz4.so.1

ถ้าเราเรียกใช้ mariaDB ด้วยตัวเอง:

p2@P2:~$ /usr/sbin/mysqld
/usr/sbin/mysqld: เกิดข้อผิดพลาดขณะโหลดไลบรารีที่ใช้ร่วมกัน: liblz4.so.1: ไม่สามารถเปิดไฟล์วัตถุที่ใช้ร่วมกันได้: ไม่มีไฟล์หรือไดเร็กทอรีดังกล่าว

แต่ถ้าเรารัน ldd บน mariaDB เพื่อค้นหาไลบรารีที่ต้องการ:

p2@P2:~$ ldd /usr/sbin/mysqld
    ลินุกซ์ 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)

แอลดีดี สามารถ ค้นหาห้องสมุด! (หากไม่สามารถทำได้ liblz4.so.1 => not found)

เอาล่ะ อะไรทำให้เกิดข้อผิดพลาดนี้และฉันจะทำให้ mariaDB ทำงานได้อย่างไร

หมายเหตุเพิ่มเติม: การดำน้ำลึกบนอินเทอร์เน็ตบางคนเปิดเผยว่าปัญหานี้ อาจ เกิดจากการขาด/เสีย ตัวโหลดไลบรารี. อย่างไรก็ตาม ฉันสงสัยว่าคำแนะนำที่ให้ไว้นั้นล้าสมัยไปแล้ว เนื่องจากปัญหาเหล่านี้เกิดจากสถาปัตยกรรมที่หลากหลายของฉัน และแพ็คเกจในระบบของฉันเป็นแบบ 64 บิต นอกจากนี้ รถตักที่พวกเขาอ้างถึงไม่มีอยู่ในการแจกจ่ายของฉัน

นอกจากนี้ ฉันใช้ Ubuntu 20.04.2 LTS

แก้ไข: การตรวจสอบห้องสมุด

ค้นหา / -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
hr flag
`ls -l /lib/x86_64-linux-gnu/liblz4.so.1` แสดงอะไร ควรเป็นลิงก์สัญลักษณ์ มันเสีย?
psaniac avatar
ng flag
แสดงว่าเป็น symlink ไปยัง liblz4.so.1.9.2 ในไดเร็กทอรีเดียวกัน ฉันไม่เห็นข้อผิดพลาดที่นั่น
N0rbert avatar
zw flag
โปรดเรียกใช้ `find / -name "liblz4.so*" -type f | xargs sha256sum` และเพิ่มผลลัพธ์ให้กับเนื้อหาคำถาม บน 20.04 LTS VM ใหม่พร้อมการอัปเดตทั้งหมดฉันมี
psaniac avatar
ng flag
ฉันได้แก้ไขโพสต์ของฉันแล้ว แต่ผลรวมตรวจสอบเหมือนกับที่คุณโพสต์ ฉันคิดว่าถ้าไลบรารีเสียหาย มันจะไม่แสดงข้อผิดพลาด "ไม่มีไฟล์หรือไดเร็กทอรีดังกล่าว"
Score:0
ธง in

มันคือ AppArmor มันบอกว่า "ไม่มีไฟล์หรือไดเร็กทอรีดังกล่าว" อย่างน่ารำคาญ คำตอบนี้แก้ไขให้ฉันใน Ubuntu 20.04 LTS (เซิร์ฟเวอร์): https://stackoverflow.com/a/60423057/539198

สิ่งนี้ใช้ได้สำหรับฉัน: -

sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/

sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.mysqld

นอกจากนี้ยังปิดการใช้งาน AppArmor สำหรับ MySQL ในระบบด้วย

ได้จากประเด็นนี้

Score:0
ธง ru

ในการลบ mariadb ออกจากชุดเกราะของแอพ นี่คือสิ่งที่ได้ผลสำหรับฉัน

วิธีแก้ไขการค้นหา mysqld บนเอาต์พุตสถานะชุดเกราะของแอป:

$ sudo aa-สถานะ

จากนั้นทำตามขั้นตอนด้านล่างเพื่อลบ mysqld ออกจากชุดเกราะของแอพ:

$ echo "/usr/sbin/mysqld { }" | sudo ที /etc/apparmor.d/usr.sbin.mysqld
$ sudo apparmor_parser -v -R /etc/apparmor.d/usr.sbin.mysqld
$ sudo systemctl รีสตาร์ท mariadb

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา