以下のサイトを参照
https://blog.websandbag.com/entry/2018/06/03/223431
mariaDBのconfigファイルのありか
/etc/mysql/mariadb.conf.d/50-server.cnf
Q. iptablesって何だ?
A.Unix系のパケットフィルタ(ファイヤーウォールみたいなやつ)
https://qiita.com/dtanimoto00/items/1d0a9b02867add646ea5
RaspberryPiでiptablesを使うには
https://www.downtown.jp/~soukaku/archives/2019/0728_185332.html
1. MariaDBのポート確認
これは"3306"から変えてないから問題なし
2. ファイアーウォールにMariaDBポート用の設定を追加する
ここでいきなりつまづく。iptablesコマンドが使えない!
以下のサイトでiptablesを使えるようにした。
また、サイトの通りの記述だと走らなかったのと、全IP許可はセキュリティが心配なので以下のようにした。
×: iptables -I INPUT 2 -m state --state NEW -p tcp --dport 3306 -j ACCEPT
〇:iptables -A INPUT -s [IPアドレス] -m state --state NEW -p tcp --dport 3306 -j ACCEPT
さらに上記の変更を保存するのに
service iptables save
を打ったが、そんなコマンドはないといわれる。
以下のサイトで、iptables-persistentを使った保存方法を実施。
https://qiita.com/yas-nyan/items/e5500cf67236d11cce72
やっと保存できた。
3.外部からの接続確認
telnetを使った確認だったので、RaspberryPiでなくwindows10上のUbuntoで確認。(RaspberryPiにはtelnetデフォルトで入ってないから)
とりあえず、ポート開放は確認できた。
4.MariaDBの環境ファイル編集
bind-address = 0.0.0.0
を追加。
5.MariaDBに外部接続用のユーザー追加
ほかのユーザーが全部"localhost"なので、ホストが"%"(どこからでもアクセスできるような)のユーザーを作る。
GRANT ALL PRIVILEGES ON *.* TO "ユーザー名"@"%" IDENTIFIED BY
"パスワード" WITH GRANT OPTION;
6.外部からMariaDBに接続
別のPCから以下を実行
$mysql -u [ユーザー名] -p -h [IPアドレス]
やっと繋げた。。。
以下、補足。
MariaDBをRaspberry Piにインストール
http://fanblogs.jp/mi9999/archive/51/0
バインドアドレスが書かれたファイルを検索
$sudo grep bind-address /etc/ -r -n --color