投稿日:
2020年3月21日
最終更新日:
【MySQL】~/.my.cnfの設定が読み込まれない原因【–defaults-fileオプション】
YouTubeも見てね♪
Anker PowerCor
旅行には必須の大容量モバイルバッテリー!
ペヤング ソースやきそば 120g×18個
とりあえず保存食として買っておけば間違いなし!
モンスターエナジー 355ml×24本 [エナジードリンク]
脳を活性化させるにはこれ!
ドラゴンクエスト メタリックモンスターズギャラリー メタルキング
みんな大好き経験値の塊をデスクに常備しておこう!
Bauhutte ( バウヒュッテ ) 昇降式 L字デスク ブラック BHD-670H-BK
メインデスクの横に置くのにぴったりなおしゃれな可動式ラック!
BANDAI SPIRITS ULTIMAGEAR 遊戯王 千年パズル 1/1スケール
もう一人の僕を呼び覚ませ!!
MOFT X 【新型 ミニマム版】 iPhone対応 スマホスタンド
Amazon一番人気のスマホスタンド!カード類も収納出来てかさ張らないのでオススメです!
目次
設定を変えたいのに反映されない
MySQLのポートを変えたい
先日、お勉強用サーバーのMySQLをいじっていた際にポートを変えようと思い、上書き用の.my.cnf
を作業ユーザーのホームディレクトリに作成しました。
1
2
|
[mysqld]
port=3336
|
ファイルの中身自体はポート番号を変えるだけの簡単なものです。
また、事前調査でMySQLの設定は以下の順番で設定ファイルを読み込みし、同一プロパティの指定がある場合は後勝ちで使用されるという記事も確認済みだったのでこれで行けると思いMySQLサーバーを再起動しました。
/etc/my.cnf
/etc/mysql/my.cnf
SYSCONFDIR/my.cnf
$MYSQL_HOME/my.cnf
--defaults-extra-file=path
~/.my.cnf
~/.mylogin.cnf
あれ、変わらないぞ・・・?
再起動後、ポートが変わっていると思いきや変わっておらず外部からのアクセスが出来ません。
なぜだ?
試しにMySQLが起動しているサーバーからmysqlに入りポート番号を確認してみると。
1
2
3
4
5
6
|
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| port | 3306 |
+---------------+-------+
1 row in set (0.01 sec)
|
変わっていない。。。
しっかりサーバー上にも~/.my.cnf
は存在しています。
1
2
3
4
5
6
7
|
...
(略)
...
-rw------- 1 work-user work-user 71 3月 21 11:07 .my.cnf
...
(略)
...
|
ファイルの中身も先ほどのものと同じです。。。
原因
原因は–defaults-fileオプション
原因は、MySQLサーバーを起動する際に--defaults-file
を指定していたことが原因でした。
このオプションが指定されると、上記の複数ファイルは読み込まずにオプションで指定したファイルのみしか読み込まなくなります。
このオプションが入っている経緯としては、まだ知識が無い頃にAnsibleを使ってMySQLをインストールしたのですが、その参考記述に--defaults-file
が指定されており、そのままオプションが含まれたコマンドを実行していたのが原因でした。
–defaults-extra-fileで上書き
対応策として、--defaults-extra-file
という読み込む設定ファイルを明示的に追加するオプションが用意されているので、こちらを使って~/.my.cnf
を追加することで上書きすることが可能になりました。
1
2
3
4
5
6
|
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| port | 3336 |
+---------------+-------+
1 row in set (0.00 sec)
|
一件落着!
終わりに
以上のように、ちょっとハマりガチな現象でした。
原因が分からないとハマってしまう可能性があるので、お困りの方は是非試してみてください♪