ローカルにmysqlを再インストールでめっちゃトラブった話
この本の第9章にMySQLを使ってみようみたいな内容があり、興味があったのでやってみたかった。
https://www.amazon.co.jp/dp/4774150207/ref=cm_sw_em_r_mt_dp_HA25T40W8F32CMS4B97G
が...、私はmacを使っているのだが、インストール例がlinuxでのコマンド操作が前提でmacOSだとマニュアル通りにできなかった。
こういうコマンドとか叩けない。
groupadd mysql
なのでいちいちこのコマンドのmacバージョンはなんなのかを調べてはやってみてとかやってみたけど...。
そもそもやらなくてもすでによしなにやってくれていた。
macOSでは直接コマンド叩くが許可されていないやつがある(`chown -R mysql:mysql /var/lib/mysql`とか。)
てか、zipファイルでダウンロードすると、ここに書いてある手順通りにやらなくてもよしなになってくれるのだ。
ていうことに気づいて、zipでのインストーラー起動でやってみることにして再度インストールしたのだが、
元々arm形式でMySQLをダウンロードしてたこともあって意味わからないことになり、元々使用していたMySQLが繋がらなくなり。
で、どうやらアンインストールするしかないからアンインストール方法をぐぐるのだけれども、brewでインストールしたMySQLをアンインストールする方法しか出てこない。
唯一、arm形式でインストールした場合は環境設定からアンインストールしたら良いよという記事がヒットするも、この通りにやろうとしたら
このコンピュータでは“mysql”環境設定パネルを開けません。このソフトウェアの開発者に、新しいバージョンについて問い合わせてください。
とかいう意味わからんエラー出るし。
はあ、そうか。私のようなITど底辺人間はbrewでインストールなんかしてねえよ。
初心者でもプログラミングで丸儲け的な怪しいWebサイトに従ってarmでインストールしてたから、結果中身が何がどうなっているんだかわからん。
いろいろ探って、結果macのmysqlの環境設定に関するファイルを消さないといけないのだねということに気づいて以下を実行。
・/Library/PreferencePanes
・/System/Library/PreferencePanes
・/Users/ユーザ名/Library/PreferencePanes]
この記事に助けられた。
で、今度はbrewでインストールした。でないといろいろ弄った時にまたなんかあった時に復旧できないし、エンジニアたるものちょっとでも中身を知っておきたいよねと思って。
コマンド試実行してみたらまたエラー出る。
% mysql
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
この記事を見て、/tmp/mysql.sock を新規で作る。
% sudo touch /tmp/mysql.sock
% mysql
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (38)
エラーが変わった。また上記Webサイトを参考にして以下コマンドを実行して権限を付与。
で、サーバーを起動させてみる。
% sudo mysql.server start
Starting MySQL
.Logging to '/usr/local/var/mysql/mendarukanoMacBook-puro.local.err'.
ERROR! The server quit without updating PID file (/usr/local/var/mysql/{PCユーザー名}.local.pid).
どこでググって見つけたか忘れたけど、以下を実行してみる。
再度サーバー起動してみる。
% sudo mysql.server start
Starting MySQL
.Logging to '/usr/local/var/mysql/{PCユーザー名}.local.err'.
SUCCESS!
なんかいけた。ログインもでけた。
% mysql -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.27 Homebrew
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.