

AWSでRailsをデプロイする際に、表題のエラーが出ており、ネット上の記事などを参照したのですが、解決できませんでした。

尚、デプロイはCapistrano3をしようしております。

[code]

    ruby -v
    ruby 2.2.3p173
    
[/code]

## 今回のエラー内容

> 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

## 参考にした記事

<http://qiita.com/pollseed/items/b7d187dbbd64b29820d4#%E5%AF%BE%E5%BF%9C3-1libmysqlclient%E5%91%A8%E3%82%8A>

この記事の

[code]

    $ ldd /usr/lib64/mysql/libmysqlclient.so.18
    
[/code]

のところまでは同じように設定し、結果も同じものが返っております。

※mysqlは記事と同じバージョンに合わせております。

ただ、記事中にある

[code]

    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
    
[/code]

の`.rbenv`というのがそもそもなかったため、

[code]

    $ pwd
    /var/project_name/releases/20160605065652
    
[/code]

の配下で実行した際に、エラーがでるため、この部分はできておりません。  
(No such file or directory)

ちなみにrbenv自体はインストールできているはずです。

[code]

    $ which rbenv
    /usr/local/rbenv/bin/rbenv
    
[/code]

rbenvの問題なのか、mysql側の問題なのか、それ以外なのか、  
原因がわからなくなってしまいました。

調べていると、socketが原因だったという記事や、my.cnfの設定ミスが原因だったとか色々あり、混乱してます。

socketとmy.cnfについては再三確認をしております。

socketはrailsのdatabase.ymlとあわせて、`/tmp/mysql.sock`に統一しております。

[code]

    [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
    
[/code]

尚、サーバー上で、mysqlコマンドをたたくと、きちんとmysqlが起動します。

どなたかアドバイス頂けますと幸いです。

よろしくお願いします。


CC BY-SA 3.0
2016-06-05T13:42:08.520
26473
2016-06-06T00:33:50.753
2016-06-05T13:54:40.570
3068
13175
question
ruby-on-rails mysql デプロイ capistrano
Capistranoでデプロイする際にlibmysqlclientのロードエラーが発生する


mysql2.so をコンパイルした環境の libmysqlclient と実行環境の libmysqlclient が異なるためだと思います。

実行環境で mysql2.so をコンパイルし直してみるのが良いと思います。


CC BY-SA 3.0
2016-06-06T00:33:50.753
26483
2016-06-06T00:33:50.753
3249
26473
answer