ubuntu(virtual box)のMySQLへリモートクライアントからクエリを発行してみた

参照サイト
https://tex2e.github.io/blog/database/mysql-setup
https://wiki.rookie-inc.com/serverapps/db/mysql/connectexternal
https://www.t3a.jp/blog/infrastructure/mysql-start-stop/
https://stackoverflow.com/questions/19101243/error-1130-hy000-host-is-not-allowed-to-connect-to-this-mysql-server


# 設定(サーバー)
## rootでログインする
```terminal:terminal
sudo mysql -u root
```

## リモート接続可のユーザーを作成する
```terminal:terminal
CREATE USER 'user'@'%' IDENTIFIED BY '1';
GRANT ALL ON weather.* TO 'user'@'%';
```
- ホスト名を%にすることにより、すべてのクライアントから接続できるようになる
- クライアントip addressを指定することにより、クライアントを制限できる

## ユーザーの接続可能リモートホストを確認する
```terminal:terminal
SELECT host FROM mysql.user WHERE User = 'user';
+-----------+
| host      |
+-----------+
| %         |
| localhost |
+-----------+
2 rows in set (0.01 sec)
```

## mysqld.cnfのバックアップを取る
```terminal:terminal
cd /etc/mysql/mysql.conf.d
sudo cp mysqld.cnf mysqld.cnf.copy
ls -la
合計 20
drwxr-xr-x 2 root root 4096 10月  2 22:27 .
drwxr-xr-x 4 root root 4096  9月 24 19:12 ..
-rw-r--r-- 1 root root  132  6月 15 04:23 mysql.cnf
-rw-r--r-- 1 root root 2220  6月 15 04:23 mysqld.cnf
-rw-r--r-- 1 root root 2220 10月  2 22:27 mysqld.cnf.copy
```

## mysqld.cnfを編集する
```conf:mysqld.cnf(編集前)
bind-address		= 127.0.0.1
mysqlx-bind-address	= 127.0.0.1
```
```conf:mysqld.cnf(編集後)
#bind-address		= 127.0.0.1
#mysqlx-bind-address	= 127.0.0.1
```
- bind-addressの設定を削除することにより、サーバー上のすべてのip addressでlistenするようになる


## mysqlを再起動する
```terminal:terminal
systemctl restart mysql
```




# インストール(クライアント)
## MySQLクライアントをインストール
```terminal:terminal
sudo apt update
sudo apt install mysql-client
```

## MySQLサーバーにリモートログインする
```terminal:terminal
sudo mysql -u user -p weather -h x.x.x.x;
```

## SELECTを実行する
```terminal:terminal
SELECT * FROM weather WHERE observationDate = '2020-1-1';
+-----------------+------------------+-----------------------+--------------------+--------------------+-------------------+----------------+
| observationDate | observationPoint | observationPrefecture | averageTemperature | highestTemperature | lowestTemperature | rainfallAmount |
+-----------------+------------------+-----------------------+--------------------+--------------------+-------------------+----------------+
| 2020-01-01      | 八丈島           | 東京                  |               10.9 |               13.1 |               9.4 |              0 |
| 2020-01-01      | 八王子           | 東京                  |                  3 |                9.4 |              -1.9 |              0 |
| 2020-01-01      | 大島             | 東京                  |                7.5 |               12.4 |               4.4 |              0 |
| 2020-01-01      | 小河内           | 東京                  |                1.4 |                6.3 |              -1.5 |              0 |
| 2020-01-01      | 東京             | 東京                  |                5.5 |               10.2 |               3.2 |              0 |
| 2020-01-01      | 江戸川臨海       | 東京                  |                  6 |               10.4 |               2.3 |              0 |
| 2020-01-01      | 練馬             | 東京                  |                5.3 |                9.5 |               2.2 |              0 |
+-----------------+------------------+-----------------------+--------------------+--------------------+-------------------+----------------+
7 rows in set (0.00 sec)
```
- リモートからsqlを実行できた