다음과 같은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.cnf
malloc-lib
sudo systemctl restart mariadb
답변2
어딘가에 환경 변수가 설정되어 있습니다
LD_PRELOAD=/usr/lib64/libjemalloc.so.1
그리고 libjemalloc.so.1
그것은 실제로 존재하지 않습니다.
malloc(3)
표준 구현을 로 대체할 특별한 이유가 없는 경우 jemalloc
실행하여 grep -r jemalloc /etc
LD_PRELOAD가 설정된 위치를 찾아 주석 처리하거나 제거하십시오. 설정은 아무런 영향을 미치지 않으며 실제 라이브러리가 그렇지 않은 경우 로그만 발생시키기 때문입니다. 설치된 소음이 발생합니다.