[Mac]HomebrewでMySQLのインストールとエラー発生時の対処方法
Mac(macOS Hight Sierra 10.13.3) に Homebrew で MySQL5.7.x をインストールした際、いろいろとハマったのでその解決方法を掲載します。
まず、MySQL のインストールは、以下のコマンドを実行します。
$ brew update $ brew install mysql
そして、MySQL を初期化しようしたらエラーが発生しました。
$ mysqld --initialize --explicit_defaults_for_timestamp 2018-03-03T07:24:04.232360Z 0 [ERROR] --initialize specified but the data directory has files in it. Aborting. 2018-03-03T07:24:04.234076Z 0 [ERROR] Aborting
mysql_secure_installation も以下のメッセージが表示され処理を続けられません。
$ mysql_secure_installation Enter password for user root: Error: Access denied for user 'root'@'localhost' (using password: NO)
いろいろ試したのですがうまくいかないので、最終手段を用います。セーフモードで MySQL を起動して root のパスワードを直接無効化します。まずは既存の MySQL をシャットダウンします。
$ mysql.server stop $ launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist $ ps aux | grep mysql $ kill -9 <PID>
次に、MySQL をセーフモードで立ち上げます。
$ mysqld_safe --skip-grant-tables &
Enter キーを押すとコマンド入力が可能になるので、 mysql -u root でログインして以下のコマンドを実行します。
$ use mysql; $ update user set authentication_string=PASSWORD("") where User='root'; $ exit;
これで root のパスワードを無効化できたので、MySQL を通常モードで起動して root でログインします。
$ mysql.server restart $ mysql -u root
さて、これで root のパスワードが正常化できたので、インストール作業の続きを行います。
$ mysql_secure_installation
パスワードの validate_password プラグインは開発マシンなのでインストールしないようにします。本番サーバーならともかく開発マシンでは要求水準が高すぎるので。ここは自己責任でお願いします。万が一、インストールしてしまった場合は、以下のコマンドを実行することで validate_password プラグインをアンインストールできます。アンインストールできたら、再度 mysql_secure_installation を実行しましょう。
$ mysql -u root mysql> uninstall plugin validate_password; mysql> exit;
これで MySQL のインストールが完了したので、下記コマンドで MySQL を起動します。停止するには、start の部分を stop にするだけです。
$ mysql.server start Starting MySQL . SUCCESS!
いやぁ、長かったです。💦
スポンサーリンク
Twitter ではブログにはない、いろんな情報を発信しています。
@fnyaさんをフォロー
コメント