VSCodeからRaspberry Pi内のmariaDBを操作したい
SQLの勉強のためRaspberry PiにmariaDBをインストールしたけど、ターミナルからSQLを入力するのが面倒になり、VSCodeから操作するための環境を構築してみました。忘れないようにメモしておきます。
mariaDBにてユーザー作成と権限付与
# root権限でログイン
$ mysql -u root -p
# ユーザーを作成
CREATE USER 'testuser'@'%' IDENTIFIED BY 'hogehoge';
# データベースを作成する
MariaDB [(none)]> CREATE DATABASE testdb;
# データベースへの権限を与える
MariaDB [(none)]> GRANT ALL PRIVILEGES ON testdb.* TO testuser@'%';
# 一度ログアウトする
MariaDB [(none)]>exit
新規ユーザーでログインしてみる
$ mysql -u testuser -phogehoge
MariaDB [(none)]>
リモートでログインしてみる
$ mysql -h IP Address -u testuser -phogehoge
-- ERROR 2003 (HY000): Can't connect to MySQL server on 'IPアドレス' (111 "Connection refused")
エラー発生。いろいろ調べていたらこのような素敵なサイトに遭遇。
こちらを参考にRaspberry Piにて設定していく。
# nmapで確認(インストールされていないときはpipでインストール)
$ nmap IPアドレス
Starting Nmap 7.70 ( https://nmap.org ) at 2020-01-03 15:45 JST
Nmap scan report for IPアドレス
Host is up (0.00037s latency).
Not shown: 997 closed ports
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
Nmap done: 1 IP address (1 host up) scanned in 0.38 seconds
FTPとSSHしかポートが開いてない事を確認。
# データベースの設定が書かれたコンフィグファイルを検索する
$ sudo grep bind-address /etc/ -r -n --color
/etc/mysql/mariadb.conf.d/50-server.cnf:28:#bind-address = 127.0.0.1
# エディターで開いて、bind-addressをコメントアウトする
$ sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
(修正前)bind-address = 127.0.0.1
(修正後)#bind-address = 127.0.0.1
# mariadbを再起動
$ sudo systemctl restart mysql
# 再度ポート確認
# nmapを確認
admin@raspberrypi:~ $ nmap IPアドレス
Starting Nmap 7.70 ( https://nmap.org ) at 2020-01-03 15:45 JST
Nmap scan report for IPアドレス
Host is up (0.00037s latency).
Not shown: 997 closed ports
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
3306/tcp open mysql
Nmap done: 1 IP address (1 host up) scanned in 0.38 seconds
これで接続できるようになったはずなので確認してみる。
# リモートアクセスでログインしてみる
$ mysql -h IPアドレス -u testuser -phogehoge
MariaDB [(none)]>
Raspberry Pi側の設定はこれでOKなはず。
VSCode側の設定
①VSCodeを立ち上げてExtensionsを選択
②MySQLを選択
③インストールをクリック(画像のアンインストールの場所に表示されます。)
④エクスプローラーをクリック
⑤下部にMYSQLが表示されるのでクリック
⑥+ボタンが表示されるのでクリック
⑦画面上部にウィンドウが表示されるので下記の順に入力
1. The hostname of the database:DBのIPアドレス
2. The MySQL user to authenticate as :接続したいユーザー名
3. The password of the MySQL user:選択したユーザーのパスワード
4. The port number to connect to:DBのポート
5. SSL certificate path.Leave empty to ignore.:何も入力しなくてOK
⑧エクスプローラーのMYSQLにDBのIPアドレスが表示されるのでクリック
⑨権限のあるDBやテーブルの一覧が表示される。
これでセッティング完了。これでSQLの勉強が捗ります.