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