Linux 服务器连接远程数据库(Mysql、Pgsql)
由于自己需要国外服务器和国内服务器数据同步,
所以从国外服务器连接过国内服务器的数据库。
下文中,国内服务器称作一号机,国外服务器为二号机。前提是两台服务器都安装配置了数据库。
Mysql
1、两台服务器安全组设定
一号机入站规则,开放 3306 端口,来源设置为二号机 IP。
二号机出站规则,开发 3306 端口,目的地设置为一号机 IP。
2、mysql 配置文件修改(my.cnf)
登录一号机去除配置文件中的允许访问限制。注释掉下面一行,或者在后面追加二号机 IP
1 2 | # 设置时补全二号机 IP bind-address = 127.0.0.1 172......14 |
至此,重启 Mysql,两台服务器可以通过 3306 端口顺利通信。
登录二号机执行命令确认是否正常通信。
1 2 | # 确认时补全一号机 IP telnet 182......21 3306 |
3、设置远程连接的账号及权限
登录一号机,连到本地数据库,在系统的 mysql 数据库的 user 表中存放了所有 mysql 的用户信息。
1 2 3 4 5 6 7 8 9 10 11 12 | 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 登录一号机的数据库。
用命令创建新用户,用于远程登录,
1 2 3 4 | # 允许 172.......14 IP 用 newuser 用户 pwd 密码登录到一号机的所有数据库 # 第一个 *,指定允许连接的数据库 # 第二个 *,指定允许连接的数据表 GRANT ALL PRIVILEGES ON *.* TO 'newuser' @ '172.......14' IDENTIFIED BY 'pwd' WITH GRANT OPTION ; |
4、登录二号机连接测试
1 | mysql -h 182........214 -u newuser -p pwd |
Pgsql
1、两台服务器的安全组设定
一号机入站规则开放 5432 端口,来源设置为二号机 IP。
二号机出站规则开发 5432 端口,目的地设置为一号机 IP。
2、pgsql 配置文件修改(登录一号机)
① 在 postgresql.conf 文件中,修改 psql 服务端监听地址
1 2 | # 监听地址默认为 localhost,修改为 * listen_addresses = '*' |
② 在 pg_hba.conf 文件中,修改访问策略
1 2 | # TYPE DATABASE USER ADDRESS METHOD host all newuser 172.....14/20 trust |
上面的设置表示 172.....14 IP 可以用 newuser 用户无需密码验证登录一号机的所有数据库
3、重启一号机 Pgsql 服务。
4、登录二号机连接测试。
1 2 | # 连接 182........214 服务器的 db 数据库 psql -h 182........214 -u newuser -d db |
以上,全部内容结束。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异