前提
- OS:MacBook Air (Apple M2)
- MySQLは8.4(LTS)を使用
- Homebrew環境は構築済
- Homebrewについてはhttps://brew.sh/ja/
結論
brew install mysql@8.4
install実行後に、/opt/homebrew/以下を検索。
find /opt/homebrew/* -name "my.cnf"
% find /opt/homebrew/* -name "my.cnf"
/opt/homebrew/Cellar/mysql@8.4/8.4.4/.bottle/etc/my.cnf
/opt/homebrew/etc/my.cnf
(※)8.4/8.4.4はバージョンなので環境により違う可能性があります。
MySQLがサポートしているmy.cnf置き場を確認する。
mysql --help | grep cnf
% mysql --help | grep cnf
order of preference, my.cnf, $MYSQL_TCP_PORT,
/etc/my.cnf /etc/mysql/my.cnf /opt/homebrew/Cellar/mysql-client@8.4/8.4.4/etc/my.cnf ~/.my.cnf
インストールしたMySQLが参照する、my.cnfの場所は下記の通り。
1 /etc/my.cnf
2 /etc/mysql/my.cnf
3 /opt/homebrew/Cellar/mysql-client@8.4/8.4.4/etc/my.cnf
4 ~/.my.cnf
Linuxサーバーでもよく使用されている/etc/my.cnf
にコピーする。Macでetc以下を変更する場合、sudo
が必要。
% sudo cp /opt/homebrew/Cellar/mysql@8.4/8.4.4/.bottle/etc/my.cnf /etc/my.cnf
Password:(パスワードを入力)
これで/etc/my.cnf
で設定の変更が可能になります。
my.cnfで設定変更が効くかの確認
今の最大接続数(max_connections)を確認。
mysql> show variables LIKE 'max_connections%' \G
*************************** 1. row ***************************
Variable_name: max_connections
Value: 151
1 row in set (0.01 sec)
/etc/my.cnf
にmax_connections = 50
を追加する。(こちらもsudo
が必要)
% sudo vi /etc/my.cnf
Password:
末尾に追記
max_connections = 50
MySQLを再起動して、再度確認。
mysql> show variables LIKE 'max_connections%' \G
*************************** 1. row ***************************
Variable_name: max_connections
Value: 50
1 row in set (0.01 sec)
補足
MySQL8.4 LTSについて
brew install mysql@8.4
(※)MySQL8.4はLTS(Long Term Support・長期間サポート)バージョンです。8.4の次のLTSは9.7の予定です。2025年3月現在、brew install mysql
でインストールすると、MySQL 9.2がインストールされますが、サポート期間は2025年4月までです。MySQLの最新版で追加された機能をどうしても使いたい、仕事で最新版を常に追いかけているなどなければ、LTS版を選択するのが無難です。
その他(コマンド一覧)
インストール(その時の最新バージョン)
brew install mysql
インストール(バージョン指定 8.4)
brew install mysql@8.4
mysql-client8.4のインストール
brew install mysql-client@8.4
起動(8.4指定でインストールした場合)
brew services start mysql@8.4
停止(8.4指定でインストールした場合)
brew services stop mysql@8.4
リロード(8.4指定でインストールした場合)
brew services reload mysql@8.4
(※)私の環境だけかもしれませんが、reloadを使うと正しく起動しない場合がある。再起動の時はstop->startと明示的に実行したほうが良いかも。
バージョン確認
mysql --version
validate_passwordについて
MySQLは、Linuxには何度もYumで入れており、ローカルやクローズドの開発環境の場合にはvalidate_passwordのpolicyをLOW、lengthは4への変更をよくしている。
今回Macに直接インストールしたのは何年ぶり。いつもの癖で、インストール直後にvalidate_passwordを確認しようとしたらEmptyで返って来たので気になって調べてみた。
mysql> show variables like 'validate_password%';
Empty set (0.00 sec)
「MySQL Yum リポジトリ」、「MySQL SLES リポジトリ」または RPM packages provided by Oracle を使用して MySQL 8.0 をインストールする場合、MySQL Server を初めて起動した後、validate_password コンポーネントはデフォルトで有効になります。
いつもLinuxOSにYum(DNF)で入れてたからデフォルト有効になってたのか。知らなかった。
コメント