MariaDB 및 Amazon Linux 2: 오류: ld.so: LD_PRELOAD에서 '/usr/lib64/libjemalloc.so.1' 객체를 미리 로드할 수 없습니다.

MariaDB 및 Amazon Linux 2: 오류: ld.so: LD_PRELOAD에서 '/usr/lib64/libjemalloc.so.1' 객체를 미리 로드할 수 없습니다.

다음과 같은AWS 설명서, 기본 LAMP 서버를 가동하고 실행하려고 합니다. 모든 것이 잘 돌아가고 있는 것 같습니다. 터미널이나 phpMyAdmin(GUI)을 통해 MySQL에 로그인하면 됩니다.

그런데 MariaDB의 상태를 확인해보니 오류가 발생하고 어떻게 해결해야 할지 모르겠습니다.

[ec2-user@ip-172-31-30-51 ~]$ sudo systemctl status mariadb● mariadb.service - 

MariaDB 10.2 database server   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)  Drop-In: /etc/systemd/system/mariadb.service.d           └─override.conf        /usr/lib/systemd/system/mariadb.service.d           └─tokudb.conf   Active: active (running) since Sat 2021-11-13 16:52:39 UTC; 37s ago  Process: 3087 ExecStartPost=/usr/libexec/mysql-check-upgrade (code=exited, status=0/SUCCESS)
  Process: 2837 ExecStartPre=/usr/libexec/mysql-prepare-db-dir %n (code=exited, status=0/SUCCESS)
  Process: 2801 ExecStartPre=/usr/libexec/mysql-check-socket (code=exited, status=0/SUCCESS)
 Main PID: 2943 (mysqld)
   Status: "Taking your SQL requests now..."
   CGroup: /system.slice/mariadb.service
           └─2943 /usr/libexec/mysqld --basedir=/usr

Nov 13 16:52:39 ip-172-31-30-51.ec2.internal mysql-check-upgrade[3087]: ERROR: ld.so: object '/usr/lib64/libjemalloc.so.1' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
Nov 13 16:52:39 ip-172-31-30-51.ec2.internal mysql-check-upgrade[3087]: ERROR: ld.so: object '/usr/lib64/libjemalloc.so.1' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
Nov 13 16:52:39 ip-172-31-30-51.ec2.internal mysql-check-upgrade[3087]: ERROR: ld.so: object '/usr/lib64/libjemalloc.so.1' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
Nov 13 16:52:39 ip-172-31-30-51.ec2.internal mysql-check-upgrade[3087]: ERROR: ld.so: object '/usr/lib64/libjemalloc.so.1' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
Nov 13 16:52:39 ip-172-31-30-51.ec2.internal mysql-check-upgrade[3087]: ERROR: ld.so: object '/usr/lib64/libjemalloc.so.1' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
Nov 13 16:52:39 ip-172-31-30-51.ec2.internal mysql-check-upgrade[3087]: ERROR: ld.so: object '/usr/lib64/libjemalloc.so.1' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
Nov 13 16:52:39 ip-172-31-30-51.ec2.internal mysql-check-upgrade[3087]: ERROR: ld.so: object '/usr/lib64/libjemalloc.so.1' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
Nov 13 16:52:39 ip-172-31-30-51.ec2.internal mysql-check-upgrade[3087]: ERROR: ld.so: object '/usr/lib64/libjemalloc.so.1' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
Nov 13 16:52:39 ip-172-31-30-51.ec2.internal mysql-check-upgrade[3087]: ERROR: ld.so: object '/usr/lib64/libjemalloc.so.1' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
Nov 13 16:52:39 ip-172-31-30-51.ec2.internal systemd[1]: Started MariaDB 10.2 database server.

아직 문제는 발생하지 않았지만 방금 모든 설치를 완료했습니다. 그러면 앞으로 이런 문제가 생길 것 같나요?

편집: 30GB의 스토리지를 갖춘 t2.micro EC2 인스턴스에서 이것을 테스트하고 있습니다.

답변1

나도 같은 상황에 처해 있습니다.

이 문제를 해결하기 위해 jemalloc 패키지를 설치했습니다. sudo yum install jemalloc

징후:

sudo find / -name "libjemalloc*"시스템에 jemalloc 패키지가 없다는 내용의 아무것도 반환되지 않았으며(AWS LAMP 지시문의 실수일까요?) systemctl을 사용하여 mariadb를 다시 시작할 때 동일한 로그 메시지가 발견되었습니다.

무시하려고 했는데 발견했어요이 메모이로 인해 나는 jemalloc을 설치하면 내 시스템이 더 원활하게 작동할 것이라고 믿게 되었습니다(그리고 내 WordPress 사이트를 괴롭히는 mariadb 충돌을 막을 수 있기를 바랍니다).

확인하다:

sudo find / -name "libjemalloc*"이제 이것은 변수에서 참조되는 것과 동일한 경로입니다 /usr/lib64/libjemalloc.so.1 . 위 질문의 오류 메시지는 이제 생성되지 않습니다.cat /etc/my.cnf.d/tokudb.cnfmalloc-libsudo systemctl restart mariadb

답변2

어딘가에 환경 변수가 설정되어 있습니다

LD_PRELOAD=/usr/lib64/libjemalloc.so.1

그리고 libjemalloc.so.1그것은 실제로 존재하지 않습니다.

malloc(3)표준 구현을 로 대체할 특별한 이유가 없는 경우 jemalloc실행하여 grep -r jemalloc /etcLD_PRELOAD가 설정된 위치를 찾아 주석 처리하거나 제거하십시오. 설정은 아무런 영향을 미치지 않으며 실제 라이브러리가 그렇지 않은 경우 로그만 발생시키기 때문입니다. 설치된 소음이 발생합니다.

관련 정보