お菓子と紅茶と、時々IT

趣味のお菓子(作る方)と紅茶の話、そして今進めているIT(プログラミングなど)に関する勉強の記録。

homebrewでローカルにMySQLインストールした時、各種設定ファイルはどこにあるのか?

以下コマンドでHomebrewでMySQLをインストール。

% brew install 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コマンドで内容確認しようとしたら、めちゃ文字化けしててやっぱりよくわからなかった。