##はじめに
rootユーザーでログインできない、何かしらに権限がない、など、
MySQLの環境周りで色々いじくりまわした挙句、全く解決しなかった際に
最初から入れ直すという選択をして解決したのでやったことを記載。
##環境
macOS Mojave 10.14.6
mysql Ver 8.0.18 for osx10.14 on x86_64 (Homebrew)
##手順
・MySQLをアンインストールする
$ brew uninstall mysql
・消したMySQL関連ファイルの残骸を削除
$ sudo rm -rf /usr/local/mysql
$ sudo rm -rf /Library/StartupItems/MYSQL
$ sudo rm -rf /Library/PreferencePanes/MySQL.prefPane
$ sudo rm -rf /Library/Receipts/mysql-.pkg
$ sudo rm -rf /usr/local/Cellar/mysql*
$ sudo rm -rf /usr/local/bin/mysql*
$ sudo rm -rf /usr/local/var/mysql*
$ sudo rm -rf /usr/local/etc/my.cnf
$ sudo rm -rf /usr/local/share/mysql*
$ sudo rm -rf /usr/local/opt/mysql*
・MySQLをインストールする
$ brew install mysql
・起動してルートユーザでログインできることを確認(パスワードなし)してexit
$ mysql.server start
$ mysql -u root
$ exit
・セキュリティとパスワードの設定
$ mysql_secure_installation
実行するとY/Nで色々聞かれるので、以下は好みで設定
secure enough. Would you like to setup VALIDATE PASSWORD plugin?
→パスワードの脆弱性チェックをしてくれるVALIDATE PASSWORDプラグインを使うか?(自分はNo)
→業務で使うならYesにした方がいいと思うが、けっこうチェック内容が厳しくてパスワードが通りにくい
Remove anonymous users?
→anounymousユーザを消すか?(自分はYes)
Disallow root login remotely?
→リモートでのrootユーザへのログインを禁止するか?(自分はYes)
Remove test database and access to it?
→テストデータベースを消すか?(自分はYes)
Reload privilege tables now?
→すぐに変更を反映するか?(自分はYes)
・ログイン
$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 8.0.18 Homebrew
できた!!!
おまけ
GUIツールとして使っているSequel Proで接続するための設定変更
Sequel ProはMySQL8.0の認証方法「caching_sha2_password」に対応できていないため、
「mysql_native_password」に戻す必要がある。(connectしようとするとエラーになる)
mysql> ALTER USER 'ユーザー名'@'ホスト名' IDENTIFIED WITH mysql_native_password BY 'パスワード';
mysql> FLUSH PRIVILEGES;
まとめ
休日プログラミングをするために環境を作ろうとしたら
なかなかうまくいかず環境を作るだけで1日の大半をかけてしまった
そんなことがよくありますね・・・