由於自己需要國外服務器和國內服務器數據同步,
所以從國外服務器連接過國內服務器的數據庫。
下文中,國內服務器稱作一號機,國外服務器為二號機。前提是兩台服務器都安裝配置了數據庫。
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
以上,全部內容結束。