Linux 伺服器連線遠端資料庫(Mysql、Pgsql)
阿新 • • 發佈:2021-10-28
由於自己需要國外伺服器和國內伺服器資料同步,
所以從國外伺服器連線過國內伺服器的資料庫。
下文中,國內伺服器稱作一號機,國外伺服器為二號機。前提是兩臺伺服器都安裝配置了資料庫。
Mysql
1、兩臺伺服器安全組設定
一號機入站規則,開放 3306 埠,來源設定為二號機 IP。
二號機出站規則,開發 3306 埠,目的地設定為一號機 IP。
2、mysql 配置檔案修改(my.cnf)
登入一號機去除配置檔案中的允許訪問限制。註釋掉下面一行,或者在後面追加二號機 IP
# 設定時補全二號機 IP
bind-address = 127.0.0.1 172......14
至此,重啟 Mysql,兩臺伺服器可以通過 3306 埠順利通訊。
登入二號機執行命令確認是否正常通訊。
# 確認時補全一號機 IP
telnet 182......21 3306
3、設定遠端連線的賬號及許可權
登入一號機,連到本地資料庫,在系統的 mysql 資料庫的 user 表中存放了所有 mysql 的使用者資訊。
mysql> select Host, User from user; +------------------------------------------------+------------------+ | Host | User | +------------------------------------------------+------------------+ | % | root | | ip-10-x-xx-xx5.ap-xxxxxxxx | root | | localhost | mysql.infoschema | | localhost | mysql.session | | localhost | mysql.sys | | localhost | root | +------------------------------------------------+------------------+ 6 rows in set (0.00 sec)
上圖中 root 使用者的 host 是 %,可以用於所有 IP 登入一號機的資料庫。
用命令建立新使用者,用於遠端登入,
# 允許 172.......14 IP 用 newuser 使用者 pwd 密碼登入到一號機的所有資料庫
# 第一個 *,指定允許連線的資料庫
# 第二個 *,指定允許連線的資料表
GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'172.......14' IDENTIFIED BY 'pwd' WITH GRANT OPTION;
4、登入二號機連線測試
mysql -h 182........214 -u newuser -p pwd
Pgsql
1、兩臺伺服器的安全組設定
一號機入站規則開放 5432 埠,來源設定為二號機 IP。
二號機出站規則開發 5432 埠,目的地設定為一號機 IP。
2、pgsql 配置檔案修改(登入一號機)
① 在postgresql.conf 檔案中,修改 psql 服務端監聽地址
# 監聽地址預設為 localhost,修改為 *
listen_addresses = '*'
② 在pg_hba.conf 檔案中,修改訪問策略
# TYPE DATABASE USER ADDRESS METHOD
host all newuser 172.....14/20 trust
上面的設定表示172.....14 IP 可以用 newuser 使用者無需密碼驗證登入一號機的所有資料庫
3、重啟一號機 Pgsql 服務。
4、登入二號機連線測試。
# 連線 182........214 伺服器的 db 資料庫
psql -h 182........214 -u newuser -d db
以上,全部內容結束。