Linux 服务器连接远程数据库(Mysql、Pgsql)

由于自己需要国外服务器和国内服务器数据同步,

所以从国外服务器连接过国内服务器的数据库。

下文中,国内服务器称作一号机,国外服务器为二号机。前提是两台服务器都安装配置了数据库。

 

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

 

以上,全部内容结束。

posted @ 2021-10-28 17:32  菜乌  阅读(4532)  评论(0编辑  收藏  举报