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ライフを!




このエントリーをはてなブックマークに追加     

profile
profile

洋ちゃん

@c5apple

システムエンジニアをしています。二児の父です。

夢は天井から床までビッシリ並んだ本棚のある書斎を作ること!