MySQL8.0インストール時の諸々のエラー解決
What
MySQL8.0インストール時に詰まったので、その対策等を記録しておきます。
MySQL8.0のインストール
Homebrew経由で取得します。デフォルトで最新版をインストールすることができます。
$ brew install mysql
パスワードの再設定
MySQLが起動しているなら、rootユーザーとしてログインできます。初期ではパスワードが設定されていないため、Enterでログインできます。
$ mysql -u root -p
MySQL8.0は5.x以前と比べて関数が変更されているため、以下の手順でパスワードを変更します。
mysql > user mysql; mysql > alter user 'root'@'localhost' identified by '<設定したいパスワード>'; mysql > exit;
[参考]
bundle install
Rails6.0で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.
指示通りコマンドを実行します。
$ gem install mysql2 -v '0.5.2' --source 'https://rubygems.org/'
またしてもエラーです。
Don't know how to set rpath on your system, if MySQL libraries are not in path mysql2 may not load
pathが合ってないみたいなので、以下のコマンドで詳しくみてやります。
$ brew info openssl
ビンゴっぽい文言が出てきました (親切で嬉しい)。
If you need to have openssl@1.1 first in your PATH run: echo 'export PATH="/usr/local/opt/openssl@1.1/bin:$PATH"' >> ~/.zshrc For compilers to find openssl@1.1 you may need to set: export LDFLAGS="-L/usr/local/opt/openssl@1.1/lib" export CPPFLAGS="-I/usr/local/opt/openssl@1.1/include"
ホームディレクトリに.zshrcファイルを作成 (または既存のファイルを利用) して以上のものを追記しておきます。
$ sudo vi ~/.zshrc
export PATH="/usr/local/opt/openssl@1.1/bin:$PATH" export LDFLAGS="-L/usr/local/opt/openssl@1.1/lib" export CPPFLAGS="-I/usr/local/opt/openssl@1.1/include"
これで、bundle installやrails db:create等ができるはずです。
MySQLの中身を見る
RubyMineだと簡単に見れるらしいのですが、VSCodeを使用している (乗り換えようかなぁ) ので、別の方法で見ます。
結論ですが、TablePlusがオススメです。セキュリティ認証レベルを昔のに戻すと、Sequel Proでも使用できるのですが、せっかく登録したrootユーザーのパスワードがぱーになったりして、困ったので、別ツールを使用することにしました。ちなみに、Sequel Pro build版でもMySQL8.0のセキュリティ認証 (caching_sha2_password) に未対応でした (2020.07.01 現在)。