Capistranoでデプロイする際にlibmysqlclientのロードエラーが発生する
AWSでRailsをデプロイする際に、表題のエラーが出ており、ネット上の記事などを参照したのですが、解決できませんでした。
尚、デプロイはCapistrano3をしようしております。
ruby -v
ruby 2.2.3p173
今回のエラー内容
LoadError: /usr/lib64/mysql/libmysqlclient.so.18: version `libmysqlclient_16' not found (required by /var/project_name/shared/bundle/ruby/2.2.0/extensions/x86_64-linux/2.2.0-static/mysql2-0.3.20/mysql2/mysql2.so) - /var/project_name/shared/bundle/ruby/2.2.0/extensions/x86_64-linux/2.2.0-static/mysql2-0.3.20/mysql2/mysql2.so
参考にした記事
この記事の
$ ldd /usr/lib64/mysql/libmysqlclient.so.18
のところまでは同じように設定し、結果も同じものが返っております。
※mysqlは記事と同じバージョンに合わせております。
ただ、記事中にある
ldd .rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/extensions/x86_64-linux/2.2.0-static/mysql2-0.3.18/mysql2/mysql2.so
ldd .rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/mysql2-0.3.18/ext/mysql2/mysql2.so
ldd .rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/mysql2-0.3.18/lib/mysql2/mysql2.so
の.rbenv
というのがそもそもなかったため、
$ pwd
/var/project_name/releases/20160605065652
の配下で実行した際に、エラーがでるため、この部分はできておりません。
(No such file or directory)
ちなみにrbenv自体はインストールできているはずです。
$ which rbenv
/usr/local/rbenv/bin/rbenv
rbenvの問題なのか、mysql側の問題なのか、それ以外なのか、
原因がわからなくなってしまいました。
調べていると、socketが原因だったという記事や、my.cnfの設定ミスが原因だったとか色々あり、混乱してます。
socketとmy.cnfについては再三確認をしております。
socketはrailsのdatabase.ymlとあわせて、/tmp/mysql.sock
に統一しております。
[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
datadir=/var/lib/mysql
socket=/tmp/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Recommended in standard MySQL setup
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
explicit_defaults_for_timestamp=1
skip-grant-tables
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[client]
socket=/tmp/mysql.sock
尚、サーバー上で、mysqlコマンドをたたくと、きちんとmysqlが起動します。
どなたかアドバイス頂けますと幸いです。
よろしくお願いします。