小学校受験の話をガッツリ書く前に、今日はちょっとしたMySQLの小話。
なんで起動しないのか確認できないよぉ…
MySQL Serverを起動しようとしたら起動しない。
でも、エラーログが出てない。
実行しているコンソール上にも何も出ない。
なんで起動しないのかわからないよー!
そんな時ありませんでした?
理由は恐らくあなたのmy.cnf(my.ini)にあります。
my.cnfやmy.iniのあるパラメータに注目
それはdatadirとlog_errorです。
log_error が指定されていない場合、またはファイルに名前を付けずに指定されている場合、--pid-file オプションが指定されていないかぎり、デフォルトの宛先はデータディレクトリ内の host_name.err という名前のファイルになります。
log_error が指定されているが、ファイル名だけの場合、そのファイルはデータディレクトリ上に作られます。
log_error が指定されていて、パスも記載されている場合、そのファイルはそのパス上に作られます。
データディレクトリは通常、インストールディレクトリ下のdataフォルダ下になり、datadirで指定されます。
つまり、
- datadirに記載されたパスが間違っていて、
- かつlog_error が指定されていない or ファイル名しか記載されてない or パスが記載されているが、そのパスがdatadirに書かれたものと同じ
場合、エラーログが出ない上に、起動しない現象が起きます。
解決方法はdatadirを直す
こういう場合、datadirの記述を見直してください。
Linuxだったら大文字小文字、Windowsだったら¥の数や半角スペースとかがおかしくないか見てみましょう。
log_error をデータディレクトリじゃないところにして、パスも記載しておけばdatadirが間違っててもログを見ればばっちりです。
参考
https://dev.mysql.com/doc/refman/8.0/ja/error-log-destination-configuration.html https://dev.mysql.com/doc/refman/8.0/ja/server-system-variables.html#sysvar_datadir https://dev.mysql.com/doc/refman/8.0/ja/server-system-variables.html#sysvar_log_error