homebrewでローカルにMySQLインストールした時、各種設定ファイルはどこにあるのか?
以下コマンドでHomebrewでMySQLをインストール。
MySQLファイルの確認。
% which mysql
/usr/local/bin/mysql
ちなみにこのファイルを展開したらやたら文字化けした長々としたファイルが出力された。
% cat /usr/local/bin/mysql
内容は割愛。長ったらしいし、なんか機密情報が入っていたら嫌だし。
gccという文字とかあったから、Cのソースコードをコンパイルしているみたい。
で、MySQLはCで実装されているから、こいつでMySQLのソースコードをコンパイルしているのかな?と思う。
(ちょうどCを一通り勉強してみたから、これからMySQLのソースコード読んでみるぞ!わくわく。)
MySQL起動のための設定ファイルであるmy.cnfはlocal/etcディレクトリ配下にあった。
% cd local/etc
% cat my.cnf
# Default Homebrew MySQL server config
[mysqld]
# Only allow connections from localhost
bind-address = 127.0.0.1
mysqlx-bind-address = 127.0.0.1
うーん、なんか設定ファイルすげーシンプルじゃね?
専用ユーザー名、基本ディレクトリ、データディレクトリ、ポート番号...、
このあたりの情報がない。
データディレクトリらしきものは作成されていた。
% pwd
/var/lib/mysql
て思ったら、単純に私の知識不足だった。
実行ファイルの本体はmysqldにあって、そこに各種設定情報もあるみたい。
ていうのは、ログファイルを確認したらわかった...いやわかったのか、この解釈で合っているのかわからないが。
こいつは、MySQLサーバーを立ち上げた時のログ。
```
% pwd
/usr/local/var/mysql
% sudo cat mendarukanoMacBook-puro.local.err
Password:
2021-10-27T07:38:58.962408Z 0 [System] [MY-010116] [Server] /usr/local/Cellar/mysql/8.0.27/bin/mysqld (mysqld 8.0.27) starting as process 2448
2021-10-27T07:38:58.966803Z 0 [Warning] [MY-010159] [Server] Setting lower_case_table_names=2 because file system for /usr/local/var/mysql/ is case insensitive
2021-10-27T07:38:58.984837Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2021-10-27T07:38:59.130126Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2021-10-27T07:38:59.414878Z 0 [Warning] [MY-013746] [Server] A deprecated TLS version TLSv1 is enabled for channel mysql_main
2021-10-27T07:38:59.414915Z 0 [Warning] [MY-013746] [Server] A deprecated TLS version TLSv1.1 is enabled for channel mysql_main
2021-10-27T07:38:59.417599Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
2021-10-27T07:38:59.417683Z 0 [System] [MY-013602] [Server] Channel mysql_main configured to support TLS. Encrypted connections are now supported for this channel.
2021-10-27T07:38:59.455767Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Bind-address: '127.0.0.1' port: 33060, socket: /tmp/mysqlx.sock
2021-10-27T07:38:59.455833Z 0 [System] [MY-010931] [Server] /usr/local/Cellar/mysql/8.0.27/bin/mysqld: ready for connections. Version: '8.0.27' socket: '/tmp/mysql.sock' port: 3306 Homebrew.
```
最後の行で、mysqldというファイルを呼び出していてそこでソケットは何とかポート番号はなんだとか判断して接続しているから、mysqldに書いてある??
けど、catコマンドで内容確認しようとしたら、めちゃ文字化けしててやっぱりよくわからなかった。