したいこと
Alpine Linuxにて絶賛稼働中のMariaDBに,WAN側からもアクセスできるようにしたかったのですが,
全然アクセスはできないし,netstatたたいても一向にポートを開けてる感じがしない.
ということで調べてみました.
調べたこと
ネット上の情報をいろいろ見て確認したものの,ほぼほぼ問題なさそう.
- rc-service mariadb status → 〇 動いている
- iptables → 〇 tcp/3306開いている
- MariaDBのskip-networking → × なんか知らないけどOnになっている
skip-netowrkingとは?
MariaDBの設定項目の一つ.
詳しく調べていないので何とも言えないのですが,
おそらくたぶん
Network設定をSkipする(外部からのアクセスなんて知らないよ)
ということだと思います.確認不足申し訳ない.
なので,これがOnになっていると外からのアクセスはできないというわけのようです.
コメントアウトしてみた…ものの
my.cnf
内のskip-networkingを#
でコメントアウト.
# skip-networking ←コメントアウト
ネット上の情報を見て,これでOffになるよ~と書いてあったのでコメントアウトし,保存してMariaDBを再起動
どうなっているか,確認してみました.
MariaDB内でSHOW VARIABLES LIKE 'skip_networking';
を実行した結果…
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| skip_networking | ON |
+-----------------+-------+
Offになってない…
サーバ自体再起動してみたりしても結果は変わらず.
何なんだ一体!
値の書き換え
さらに情報を探していると,それらしい名前の公式ドキュメント(英語)に遭遇.
公式ドキュメント: Configuring MariaDB for Remote Client Access
その中にこんなものが.
skip-networking = 0
skip-bind-address
_人人人人人人人人人人人人人人_
> 値書き換えられたのかよ! <
 ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄
ドキュメント内に
Alternatively, just add the following lines at the end of your .my.cnf (notice that the file name starts with a dot) file in your home directory or alternative last in your /etc/my.cnf file.
とかなんとか書いてあったので,上記の方法に従って追記してみました.
その後,もう一度MariaDBを再起動して,SHOW VARIABLES LIKE 'skip_networking';
を再実行した結果…
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| skip_networking | OFF |
+-----------------+-------+
Offになりました.
無事,netstatでもポート開いているのを発見できましたし,外からも繋げました.
結論
まずは公式ドキュメントを読みましょう(当然)