Synology DS216j の MySQL に外部からつなぐ

作業メモ
スポンサーリンク

Synology DS216j をNAS(RAID1 12TB)として使っています。もっぱらデータ保存用です。他のパソコンをNAS用に購入してもいいなとは思っているのですが、ヘルス管理の定期処理などがとても手間な気がして、Synologyに頼りっきりです。

[amazonjs asin=”B076HJB5L1″ locale=”JP” title=”Synology DiskStation DS218j 2ベイ NAS キット 日本正規代理店アスク サポート対応 デュアルコアCPU搭載 保証2年 CS7088″]

このSynologyなのですが、便利な機能が色々あって、VPNやブログとかも書けたりするのでお薦めです。でも、実は廉価版のものだと、本当に使いたい機能がなかったりするので、ちゃんと購入前に自分の用途にあっているNASなのかは確認したほうが良いです。僕の場合は、GITLABの運用をしようとして製品が対応していない問題で諦めた経緯があります。

今回はそのSynologyの機能を利用して、MySQL(MariaDB)を運用してみます。余談ですが、MariaDBを初めて使うきっかけとなったのですが、MariaDBはMySQLのforkでオラクルから脱却してコミュニティベースの開発がなされているMySQLなのですね。内容には好感が持てるので、今後使っていくかもしれません。

MariaDBのインストール

これはSynologyのWebUIからインストールをします。今回はMariaDB 10をインストールすることにしました。

外部からの接続設定

躓いたのはこの外部からの接続を行うための設定です。どうやら、DS216jにはMySQLのクライアント機能がないようで、MySQLのユーザ権限の設定をいじることができないため、外部からの接続を許可できないようです。迂回案としてはphpAdminを使ってそれをMySQLのクライアント代わりにするという案が見つかりましたが、あまりイケてないと思う次第。そこで、SSH Tunnelを使って変更をしてみることにしました。

localhostからのアクセスしか受け付けていないため、ssh tunnelを使えばそれを通過できます。ssh tunnelを使うためにはsshのconfigファイルの一部を以下のように変更してください。

sudo vim  /etc/ssh/sshd_config
# AllowTcpForwarding no から
AllowTcpForwarding yes

sshd を再起動します。

sudo synoservicectl --reload sshd

トンネル付きでssh接続を確立します。

ssh -L localhost:4321:localhost:3307 nas

SSHクライアント側から ssh tunnelを使ってmysqlの接続をします。

mysql -h 127.0.0.1 -P 4321 -u root -p

あとは、ユーザの権限を変更してリモートからのアクセスを許可してしまってください。

grant all privileges on *.* to root@"192.168.%" identified by 'your password' with grant option;
exit

これで完成!私の環境ではこれで外部からの接続ができました。

コメント

タイトルとURLをコピーしました