くりにっき

フルスタックキュアエンジニアです

homebrewでバージョンを戻したくなった時の対処法

結論

むやみにbrew upgradeするのは危険

概要

不用意にbrew upgradeしてmysqlを5.5から5.6に上げてしまったので戻した時のメモ。

手順

バージョン確認

$ mysql --version
mysql  Ver 14.14 Distrib 5.6.10, for osx10.7 (x86_64) using  EditLine wrapper

$ ls -l /usr/local/bin/mysql*
lrwxr-xr-x  1 sueyoshi_go  admin  32  2 25 11:50 /usr/local/bin/mysql -> ../Cellar/mysql/5.6.10/bin/mysql
lrwxr-xr-x  1 sueyoshi_go  admin  39  2 25 11:50 /usr/local/bin/mysql.server -> ../Cellar/mysql/5.6.10/bin/mysql.server
lrwxr-xr-x  1 sueyoshi_go  admin  44  2 25 11:50 /usr/local/bin/mysql_client_test -> ../Cellar/mysql/5.6.10/bin/mysql_client_test
lrwxr-xr-x  1 sueyoshi_go  admin  53  2 25 11:50 /usr/local/bin/mysql_client_test_embedded -> ../Cellar/mysql/5.6.10/bin/mysql_client_test_embedded

インストールされてるバージョンの確認

$ brew versions mysql
5.6.10   git checkout d28e5d5 /usr/local/Library/Formula/mysql.rb
5.5.29   git checkout 336c976 /usr/local/Library/Formula/mysql.rb
5.5.28   git checkout 5825f62 /usr/local/Library/Formula/mysql.rb
5.5.27   git checkout 93aecfa /usr/local/Library/Formula/mysql.rb
5.5.25a  git checkout faaa6c1 /usr/local/Library/Formula/mysql.rb
5.5.25   git checkout 5bcd1f3 /usr/local/Library/Formula/mysql.rb
5.5.24   git checkout a977fbd /usr/local/Library/Formula/mysql.rb

指定したバージョンに戻す

今回の場合5.5.28に戻したかったので

cd /usr/local/
git checkout 5825f62 /usr/local/Library/Formula/mysql.rb

既にローカルに入ってたのでこれはこれで正常

$ brew upgrade mysql
Error: mysql-5.5.28 already installed

リンクを貼り直す

5.6.10のがあるので一度消す必要があるらしい

$ brew link mysql
Warning: Already linked: /usr/local/Cellar/mysql/5.6.10
To relink: brew unlink mysql && brew link mysql

消して作る

$ brew unlink mysql && brew link mysql
Unlinking /usr/local/Cellar/mysql/5.6.10... 147 links removed
Linking /usr/local/Cellar/mysql/5.5.28... 135 symlinks created

再度バージョン確認

$ mysql --version
mysql  Ver 14.14 Distrib 5.5.28, for osx10.7 (i386) using readline 5.1

$ ls -l /usr/local/bin/mysql*
lrwxr-xr-x  1 sueyoshi_go  admin  32  2 25 16:20 /usr/local/bin/mysql -> ../Cellar/mysql/5.5.28/bin/mysql
lrwxr-xr-x  1 sueyoshi_go  admin  39  2 25 16:20 /usr/local/bin/mysql.server -> ../Cellar/mysql/5.5.28/bin/mysql.server
lrwxr-xr-x  1 sueyoshi_go  admin  44  2 25 16:20 /usr/local/bin/mysql_client_test -> ../Cellar/mysql/5.5.28/bin/mysql_client_test
lrwxr-xr-x  1 sueyoshi_go  admin  39  2 25 16:20 /usr/local/bin/mysql_config -> ../Cellar/mysql/5.5.28/bin/mysql_config
lrwxr-xr-x  1 sueyoshi_go  admin  53  2 25 16:20 /usr/local/bin/mysql_convert_table_format -> ../Cellar/mysql/5.5.28/bin/mysql_convert_table_format


戻ッタ━━━━(゚∀゚)━━━━!!

大事なことなのでもう一度

むやみにbrew upgradeするのは危険