RailsでMySQL2が使えなかった時の最終解決法

geokitというgemを使いたかったんだけどsqliteじゃダメやで〜とのことだったので、MySQLにしようとしたらそれはそれでエラー出てもう大変。

エラーメッセージ各種

An error occurred while installing mysql2 (0.5.2), and Bundler cannot continue. Make sure that `gem install mysql2 -v '0.5.2' --source 'https://rubygems.org/'` succeeds before bundling.
Errno::EACCES: Permission denied @ rb_sysopen - /Users/mb12/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/mysql2-0.5.2/CHANGELOG.md An error occurred while installing mysql2 (0.5.2), and Bundler cannot continue. Make sure that `gem install mysql2 -v '0.5.2' --source 'https://rubygems.org/'` succeeds before bundling.
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

インストールできないやで〜つってる。

確認すべきこと

MySQLを起動できるかどうかを確認

$ mysql.server start で起動できるかどうかを確認してみる。

$ mysql.server start
Starting MySQL
 SUCCESS! 

となれば平気。ダメでも $ mysql -u root -p としてパスワード付きでログインしてみると平気なパターンもあるみたい。

あるいは管理者権限つけて $ sudo chown -R _mysql:_mysql /usr/local/var/mysql としてみたらパスする人は多い模様。

ちなみに僕は全部ダメだった。うんともすんとも起動しない。

そもそもMySQLがインストールされているのかもチェック

そもそもMySQLを環境に落としてなかったという人もいたのでご確認のほどを。下記コードでインストールできる。

$ brew install mysql

最終的な解決法

まぁ〜〜〜〜〜〜色々調べてやってみたけどまるでダメ。というわけでMySQLをアンインストールして、再度インストールという手順をとった。

コアも何もかも全て一旦削除して、再度インストールすることで bundle install 通るようになった。

※ 下記コードは環境内のMySQL内のデータ全て飛びます。大切なものない人だけ推奨。

$ sudo rm -rf /usr/local/var/mysql
$ brew uninstall mysql
$ brew install mysql

結局、何がダメだったか

原因が特定できたわけではないんだけど、一つ思い当たる節があって、MAMPの存在だ。

MAMPはPHPの開発環境が使えるようになるソフトで、WordPressのアレコレをするときにがっつり使っているし、MAMPは思いっきりMySQLを使用していたりする。

別に取っておくべきデータもないし、削除して問題なかったので、アンインストールしたらすんなりRailsでgemもinstallできた。

WordPress用にMAMP使っててRailsでMySQLインストールできないやんけ!って人は試してみる価値あり。

参考

参考https://qiita.com/HrsUed/items/ca2e0aee6a2402571cf6

参考https://qiita.com/tktcorporation/items/0ef8c930fc18ce72c301

参考https://qiita.com/unsoluble_sugar/items/1403ddf0ac9709b1aae6

参考https://qiita.com/_natsu_no_yuki_/items/ae4c94187093e4ab3cdc

コメントを残す

メールアドレスが公開されることはありません。