テクニカル雑記帳です
MySQLのReInstall
HomeBrewで入れたMySQLのrootパスワードを忘れたので入れ直すことにした……
コマンドリスト1〜順に実行していく
brew remove mysql
brew cleanup
~/Library/LaunchAgents/com.mysql.mysqld.plist
の有無を確認- 3.があった場合 remove する
sudo rm -rf /usr/local/var/mysql
brew install mysql
unset TMPDIR
(TMPDIR環境変数の解除)mkdir -p ~/Library/LaunchAgents
cp /usr/local/Cellar/mysql/5.7.22/homebrew.mxcl.mysql.plist ~/Library/LaunchAgents/
(パスのバージョンはinstallした時に表示されたものを指定すること)launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
mysql_secure_installation
(セキュリティ関連セットアップ)–> YES/NO形式で答えていく- root ユーザーのパスワードの変更
- VALIDATE PASSWORD プラグインのインストール
- ポリシーに沿った root ユーザーパスワードの設定 (VALIDATE PASSWORD プラグインをインストールした場合)
- anonymous ユーザーの削除
- リモートホストから root ユーザーでログインするのを禁止する
- testデータベースの削除 (存在する場合)
- 設定ファイルによる設定(my.cnf)
6.のinstall結果は以下のようになる(現在の最新は5.7.22)
$ brew install mysql
==> Installing dependencies for mysql: openssl
==> Installing mysql dependency: openssl
==> Downloading https://homebrew.bintray.com/bottles/openssl-1.0.2o_1.high_sierra.bottle.tar.gz
######################################################################## 100.0%
==> Pouring openssl-1.0.2o_1.high_sierra.bottle.tar.gz
==> Caveats
A CA file has been bootstrapped using certificates from the SystemRoots
keychain. To add additional certificates (e.g. the certificates added in
the System keychain), place .pem files in
/usr/local/etc/openssl/certs
and run
/usr/local/opt/openssl/bin/c_rehash
This formula is keg-only, which means it was not symlinked into /usr/local,
because Apple has deprecated use of OpenSSL in favor of its own TLS and crypto libraries.
If you need to have this software first in your PATH run:
echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.bash_profile
For compilers to find this software you may need to set:
LDFLAGS: -L/usr/local/opt/openssl/lib
CPPFLAGS: -I/usr/local/opt/openssl/include
==> Summary
🍺 /usr/local/Cellar/openssl/1.0.2o_1: 1,791 files, 12.3MB
==> Installing mysql
==> Downloading https://homebrew.bintray.com/bottles/mysql-5.7.22.high_sierra.bottle.tar.gz
######################################################################## 100.0%
==> Pouring mysql-5.7.22.high_sierra.bottle.tar.gz
==> /usr/local/Cellar/mysql/5.7.22/bin/mysqld --initialize-insecure --user=asahinakamura --basedir=/usr/local/Cellar/mysql/5.7.22 --datadir=/usr/local/var/mysql --tmpdir=/tmp
==> Caveats
We've installed your MySQL database without a root password. To secure it run:
mysql_secure_installation
MySQL is configured to only allow connections from localhost by default
To connect run:
mysql -uroot
To have launchd start mysql now and restart at login:
brew services start mysql
Or, if you don't want/need a background service you can just run:
mysql.server start
==> Summary
🍺 /usr/local/Cellar/mysql/5.7.22: 317 files, 234.2MB
12.設定ファイルは左から順に読み込まれる
$ mysql --help | grep my.cnf
order of preference, my.cnf, $MYSQL_TCP_PORT,
/etc/my.cnf /etc/mysql/my.cnf /usr/local/etc/my.cnf ~/.my.cnf
▷一つずつみていくと /usr/local/etc/my.cnf
だけファイルが有ったのでこれに以下の設定を追記
# デフォルトの文字コード
character-set-server = utf8
# ユーザーのパスワードの有効期限(0:無効)
default_password_lifetime = 0
▷default_password_lifetimeを無効にするのは、MySQL5.7からユーザパスワードの有効期限がデフォルトで360日になったために360日を過ぎてログインできなくなるのを防ぐための処置です
最後に
起動の確認。
$ mysql -u root -p
以上です。