トラブル概要
MacOSX Sierraを2017/04/06時点の最新版にアップデートしたら
$ mysql mysql not found
になってしまった。
対応した手順
brew list でインストールされているか確認
$ brew list | grep mysql mysql56 mysql@5.6
入っている…
mysqlの最新版は5.7ですが、現状の業務では5.6を使用していたので、5.6を動作させなければなりません。
※ ちなみにbrew でインストールできるソフトウェアのバージョンは以下で調査できる
$ brew info mysql # インストールできる最新版を表示してくれる。 mysql: stable 5.7.17 (bottled) Open source relational database management system https://dev.mysql.com/doc/refman/5.7/en/ Conflicts with: mariadb, mariadb-connector-c, mysql-cluster, mysql-connector-c, percona-server Not installed
brew doctor で Homebrew の状態を確認
$ brew doctor Your System is ready to brew
問題ない…
brew uninstall ▷ install で入れ直そう
$ brew uninstall mysql56 Uninstalling /usr/local/Cellar/mysql@5.6/5.6.35... (345 files, 154.7MB) mysql@5.6 5.6.32, 5.6.34 are still installed. Remove all versions with `brew uninstall --force mysql@5.6`. $ brew install mysql56 brew install mysql56 Updating Homebrew... #中略 Warning: The post-install step did not complete successfully You can try again using `brew postinstall mysql@5.6` ==> Caveats A "/etc/my.cnf" from another install may interfere with a Homebrew-built server starting up correctly. To connect: mysql -uroot This formula is keg-only, which means it was not symlinked into /usr/local. This is an alternate version of another formula. If you need to have this software first in your PATH run: echo 'export PATH="/usr/local/opt/mysql@5.6/bin:$PATH"' >> ~/.zshrc For compilers to find this software you may need to set: LDFLAGS: -L/usr/local/opt/mysql@5.6/lib CPPFLAGS: -I/usr/local/opt/mysql@5.6/include To have launchd start mysql@5.6 now and restart at login: brew services start mysql@5.6 Or, if you don't want/need a background service you can just run: /usr/local/opt/mysql@5.6/bin/mysql.server start ==> Summary 🍺 /usr/local/Cellar/mysql@5.6/5.6.35: 345 files, 154.7MB ➜ ~ which mysql mysql not found
ここで、
To have launchd start mysql@5.6 now and restart at login: brew services start mysql@5.6 Or, if you don't want/need a background service you can just run: /usr/local/opt/mysql@5.6/bin/mysql.server start
パスが /usr/local/opt/mysql@5.6/bin/
以下であることに気づく。
Homebrewで入れた場合は自動的に /usr/local/bin
配下に設置されるものだと理解していたけど、ちょっと違う???
とりあえずパスの在り処がわかったので /usr/local/bin
配下にコマンドをコピーする
$ sudo cp /usr/local/opt/mysql@5.6/bin/mysql /usr/local/bin $ which mysql /usr/local/bin/mysql
と、ここまで来てコマンドの場所がわかったのなら、PATH通せば終わりじゃね?ってことに気づき、 .zshrc
に export PATH=/usr/local/opt/mysql@5.6/bin:$PATH
を通し
$ which mysql /usr/local/opt/mysql@5.6/bin/mysql
と表示されたので完了。