LoginSignup
0
0

More than 3 years have passed since last update.

MySQL 5.5から5.7へのバージョンアップと、libmysqlclient.so.18: cannot open shared object file: No such file or directoryの解消

Posted at

はじめに

前回の記事 Cloud9でRuby on Railsの環境構築 ~インストールから起動まで~ で「Yay! You’re on Rails!」を表示し、最低限の環境構築までは完了したが、MySQLのバージョンが古かったためバージョンアップをすることに。

その過程でいくつかエラーが発生したので、備忘録のためにカキカキしていきます。

目標

MySQL 5.5 からMySQL 5.7にアップデートし、「Yay! You’re on Rails!」を表示させる

環境

Amazon linux
ruby 2.6.3
Rails 6.0.3.4
MySql 5.5.62

やっていきましょう

MySQLのバージョンアップ

まずはバージョンを確認しておきます。

$ mysql -uroot -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.5.62-log MySQL Community Server (GPL)
~略~

そうしたら"yum"を使ってMySQL関連のモジュールをアンインストール。
その後使用するバージョンを指定して、MySQLのモジュールをインストールします。

$ yum remove mysql*
$ yum install mysql57 mysql57-devel mysql57-server

ここで一度バージョンを確認してみます。

$ mysql -u root -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket'/var/lib/mysql/mysql.sock' (2)

エラーが発生。前回の記事と同じ内容です。

socketファイルが無いためMySQLに接続できていないので、MySQLを再起動してsoketファイルを自動作成させます。
その後もう一度バージョンを確認。

$ sudo /etc/init.d/mysqld restart
$ mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.31 MySQL Community Server (GPL)

これでうまく5.7.31がインストールできました。

サーバー起動

サーバーを起動して接続できるか確認します。

$ rails s
~略~
libmysqlclient.so.18: cannot open shared object file: No such file or directory
~略~

エラーです。
ディレクトリとかファイルがないから開けませんって言われています。

今回はDBにMySQLを使用するため、プロジェクト作成時に"-d mysql"オプションを追加しました(前回の記事参照)。
この時にmysql2というgemがインストールされたのですが、これを再インストールすれば解消されるっぽい。

そんなわけでmysql2をインストールしなおします。

$ gem uninstall mysql2
$ gem install mysql2

これで起動してみましょう。

$ rails s
Mysql2::Error::ConnectionError
Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

またsoketファイルか・・・
MySQLを再起動してから再びサーバーを起動。

$ sudo /etc/init.d/mysqld restart
$ rails s

スクリーンショット 2020-11-26 184833.png

成功しました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0