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が設定されている場所を見つけてコメントアウトまたは削除します。設定は影響を与えず、実際のライブラリがそうでない場合はログのみが発生するためです。設置された騒音が発生します。

関連情報