my.cnfの場所がどこにあるか探す方法
投稿日: 2018/11/05
MySQL
MySQLの環境設定を変えるとき、設定ファイルであるmy.cnfを書き換える必要があります。
my.cnfは環境によって置き場所が異なることが多いので、どこにあるか探す方法を紹介します。
my.cnfが読まれているパスを調べるコマンド
各々の環境によってコマンドが異なるので注意してください。
Windowsの場合
Windowsを使っている方は、コマンドプロンプトから次のコマンドを入力します。
> mysql --help | find "my.cnf"
もし見つからなければ、次のコマンドも入力してみましょう。
> mysql --help | find "my.ini"
'mysql' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
と表示されてしまう方は、mysqlのパスが通っていませんので、先に環境変数(path)にmysqlを設定してからコマンドを実行してください。
Linuxの場合
Linuxを使っている方は、ターミナルから次のコマンドを入力します。
$ mysql --help | grep my.cnf
実行結果の例
各々の環境によって実行結果は異なると思いますので、参考までに。
一例として、私の環境での実行結果を記載してみます。
> mysql --help | find "my.cnf"
C:\WINDOWS\my.ini C:\WINDOWS\my.cnf C:\my.ini C:\my.cnf C:\xampp\mysql\my.ini C:\xampp\mysql\my.cnf
C:\xampp\mysql\data\my.ini C:\xampp\mysql\data\my.cnf
$ mysql --help | grep my.cnf
/etc/mysql/my.cnf /etc/my.cnf ~/.my.cnf
こちらが実際に読み込まれているいるmy.cnfです。
スペース区切りで、左から順番に読み込まれているようです。
もしご自身で作成されたmy.cnfが読まれていないようでしたら、実行結果に表示されているかを確認してみましょう。
もし読まれているけど変数が書き換わっていないようでしたら、さらに後(右)に読まれているmy.cnfで上書きされていないかを確認してみましょう。
my.cnfとmy.iniの違い
my.cnfはLinuxの設定ファイルです。
my.iniはwindowsの設定ファイルです。
WindowsでもXAMMPなどのツールを入れた場合はmy.cnfを読む設定になっているようですね。
MySQLサービス起動時に「--defaults-file=」など指定されていると読み込まれるファイルが変わります。
この辺りは、先ほどの探すコマンドで実際に何が読み込まれているか確認することをおススメします。
いつ調べるのか
いつ調べるかは「探したいとき」と言ったらそれまでなのですが(笑)
私の経験上、よく使うのは文字コードをUTF-8にするときです。
WindowsにMySQLをインストールした直後は、文字コードがShift-JISになっていてUTF-8に変えたいときにmy.cnfを修正します。
例えば、次の設定値を書き換えるときですね。
MariaDB [(none)]> show variables like "character_set_server";
+----------------------+--------+
| Variable_name | Value |
+----------------------+--------+
| character_set_server | latin1 |
+----------------------+--------+
1 row in set (0.00 sec)
my.cnfにcharacter-set-server=utf8
を追記します。
※今回はmy.cnfの探し方の記事なので詳しい説明は割愛します。
文字コード設定に限らずmy.cnfでは様々な設定ができますので、いろんなときに探すコマンドを使ってみてくださいね。
では良きmy.cnfライフを!