MySQL・MSSQL・PostgreSQLで接続するまでの流れまとめ

# 環境

Almalinux9.2でアクセスする事を想定する。

# mySql

Linuxから、IPアドレスを指定してmysqlでアクセスするには。

https://26gram.com/connect-to-mysql

https://www.t3a.jp/blog/web-develop/mysql-login/

まずは、mysql-client をインストールする必要がある。今回は、mysqlサーバとして使用しないので以下コマンドのみ。
```
sudo yum install mysql
```
その後、以下のコマンドを実行する。
```
mysql -h(ホスト名) -u(ユーザー名) -p -D(データベース名)
```
ポートを指定するなら、-Pを指定する。デフォルトは3306である。

```:実行例
mysql -h 192.168.219.212 -u ngpf -p passwd -D dbname
mysql -h 192.168.219.212 -u ngpf -p passwd -P 3306 -D dbname
```

https://dev.mysql.com/doc/refman/8.0/ja/mysqlcheck.html

# MSSQL接続

LinuxからMSSQLに接続するには以下のツールをインストールする。

https://learn.microsoft.com/ja-jp/sql/linux/sql-server-linux-setup-tools?view=sql-server-ver16&tabs=redhat-install

まずはリポジトリを入れる。
```
curl https://packages.microsoft.com/config/rhel/9/prod.repo | sudo tee /etc/yum.repos.d/mssql-release.repo
```
旧版がまだある場合はremoveを行う。
```
sudo yum remove mssql-tools unixODBC-utf16 unixODBC-utf16-devel
```
その後、インストールする。
```
sudo yum install -y mssql-tools18 unixODBC-devel
```
whichでコマンドパスを見ると、sqlcmdのパスはここになっているらしい。
```
[ito@hostname ~]$ which sqlcmd
/opt/mssql-tools18/bin/sqlcmd
[ito@hostname ~]$
```
なので、パスを通す必要がある。
```
vi ~/.bashrc
```
で、こんな感じに編集しなおす。
```:編集箇所
export PATH=$PATH:/opt/mssql-tools18/bin/sqlcmd
```
その後、アクセスしてみる。-Sでホスト名を指定する。
```
sqlcmd -S <SQL Serverのホスト名またはIPアドレス> -U <ユーザー名> -d YourDatabase
```
```:実行例
sqlcmd -S 192.168.169.100 -U username -d dbname
```
実行すると、データベースのパスワードを求められるので入れる。これで実行すると、以下のように言われる。これは、SSLの証明書がうまくいかなかったことであるらしいので、-Cをつけてみる。

```
sqlcmd -S 192.168.169.100 -U username -d dbanme -C
```
その後、クエリを実行するには、クエリを入れた後にgoを入力する。
```
2> SELECT top 1 * FROM FILEMETA WHERE cid=3672 and mid=1593
3> go
```

# PostgreSQL

まずは、リポジトリをダウンロードする。
```
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm
```
その後、ビルトインのポスグレを無効化する。
```
sudo dnf -qy module disable postgresql
```
以下コマンドでインストールする。
```
sudo dnf install -y postgresql
```
すると、psqlが使える。MSSQLより楽！
```
[username@hostname ~]$ which psql
/usr/bin/psql
[username@hostname ~]$
```
これを使って接続する。
```
psql -h ホスト名 -p ポート番号 -U ユーザ名 -d データベース名
```
```:実行例
psql -h 192.168.100.100 -p 5432 -U username -d dbname
パスワードを入力後、クエリを実行できる。
```

参考サイト

https://www.postgresql.org/download/linux/redhat/

https://programming-style.com/postgresql/reference/connect/#:~:text=PostgreSQL%E6%8E%A5%E7%B6%9A%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E6%9B%B8%E5%BC%8F%20psql%20-h%20%E3%83%9B%E3%82%B9%E3%83%88%E5%90%8D%20-p%20%E3%83%9D%E3%83%BC%E3%83%88%E7%95%AA%E5%8F%B7%20-U,%E3%83%AD%E3%83%BC%E3%83%AB%E5%90%8D%20-d%20%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E5%90%8D%20PostgreSQL%E3%82%B5%E3%83%BC%E3%83%90%E3%81%AB%E6%8E%A5%E7%B6%9A%E3%81%99%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AE%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E6%9B%B8%E5%BC%8F%E3%81%AF%E3%80%81%E4%B8%8A%E8%A8%98%E3%81%AE%E3%81%A8%E3%81%8A%E3%82%8A%E3%81%A7%E3%81%99%E3%80%82%20%E3%83%9B%E3%82%B9%E3%83%88%E5%90%8D%E3%81%AB%E3%81%AF%E3%80%81PostgreSQL%E3%82%B5%E3%83%BC%E3%83%90%E6%8E%A5%E7%B6%9A%E5%85%88%E3%81%AE%E3%80%8CIP%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%80%8Dor%E3%80%8CURL%E3%80%8D%E3%82%92%E6%8C%87%E5%AE%9A%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%20%E3%82%82%E3%81%97%E6%8E%A5%E7%B6%9A%E5%85%88%E3%81%8C%E3%83%AD%E3%83%BC%E3%82%AB%E3%83%AB%E7%92%B0%E5%A2%83%EF%BC%88%E5%90%8C%E3%81%98PC%E7%92%B0%E5%A2%83%EF%BC%89%E3%81%A7%E3%81%82%E3%82%8C%E3%81%B0%E6%8C%87%E5%AE%9A%E4%B8%8D%E8%A6%81%E3%81%A7%E3%81%99%E3%80%82%20%E3%83%9D%E3%83%BC%E3%83%88%E7%95%AA%E5%8F%B7%E3%81%AB%E3%81%AF%E3%80%81PostgreSQL%E3%82%B5%E3%83%BC%E3%83%90%E3%81%AE%E3%83%9D%E3%83%BC%E3%83%88%E7%95%AA%E5%8F%B7%E3%82%92%E6%8C%87%E5%AE%9A%E3%81%97%E3%81%BE%E3%81%99%E3%80%82