外部服务器能否访问GaussDB(for MySQL)数据库
对于开通公网访问功能的GaussDB(for MySQL)实例,可以通过外网进行访问。
具体请参见:
未开通公网访问的实例
- 在虚拟私有云中开通虚拟专用网络(Virtual Private Network,简称VPN),通过虚拟专用网络连接GaussDB(for MySQL)。
- 将GaussDB(for MySQL)与弹性云主机创建在同一个虚拟专用网络下,通过弹性云主机来访问GaussDB(for MySQL)。
具体请参见:
ECS无法连接到GaussDB(for MySQL)实例的原因
遇到该问题,参考以下步骤排查解决。
步骤 1 先确认弹性云主机和GaussDB(for MySQL)实例是否在同一个虚拟私有云下。
- 如果在,执行步骤2。
- 如果不在,需要重新创建弹性云主机实例,使之和GaussDB(for MySQL)实例在同一个虚拟私有云下。
步骤 2 查看弹性云主机实例是否添加安全组。
- 如果有,检查安全组的配置规则是否满足要求。
请参见“创建实例”中的“安全组”的描述,然后执行步骤3。
- 如果没有,从弹性云主机的实例详情页面,进入虚拟私有云页面,选择“安全组”,添加安全组。
步骤 2 在弹性云主机上,测试是否可以正常连接到GaussDB(for MySQL)实例地址的端口。
GaussDB(for MySQL)主备版实例的默认端口为3306。
telnet < 连接地址 > { 端口号 }
- 如果可以通信,说明网络是正常的。
- 如果端口不通,请联系售后技术支持协助排查
如何创建和连接ECS
- 创建弹性云主机,请参见《弹性云主机用户指南》。
该弹性云主机用于连接GaussDB(for MySQL)实例,需要与目标实例处于同一虚拟私有云内。
正确配置安全组,使得弹性云主机可以通过“连接地址”访问GaussDB(for MySQL)实例。 - 连接弹性云主机,请参见《弹性云主机用户指南》中“登录弹性云主机”的内容。
客户端问题导致连接失败
客户端问题导致连接GaussDB(for MySQL)失败,可以从以下几个方面检查。
- 弹性云主机的安全策略对于Windows平台,可检查Windows的安全策略是否开放GaussDB(for MySQL)端口。对于Linux平台,可使用iptables检查防火墙及端口的放行情况。
- 应用配置错误常见的有连接地址写错、端口参数配置错误和JDBC等的连接参数配置错误。
- 用户名或密码错误如果连接数据库时出现类似如下错误,请检查用户名或密码是否正确。
- [Warning] Access denied for user 'username'@'yourIp' (using password: NO)
- [Warning] Access denied for user 'username'@'yourIp' (using password: YES)
说明如问题仍未解决,请联系售后技术支持。
GaussDB(for MySQL)跨地域内网能访问吗
跨地域内网默认不能访问,不同区域的云服务之间内网互不相通。您可以通过云连接或者VPN打通网络实现内网访问。
- 云连接:对于不同区域的VPC,不区分是否同一帐号,都可以互连,跨区域连接实现全球云上网络。
- 虚拟专用网络VPN:基于Internet使用加密隧道将不同区域的VPC连接起来。具备成本低、配置简单、即开即用等优点。但它的网络质量依赖Internet。
GaussDB(for MySQL)实例连接数过多,存在什么隐患
GaussDB(for MySQL)连接数过多,可能会导致业务侧无法正常连接,也会导致实例全量备份和增量备份失败,影响业务的正常使用。
解决方案
- 请及时排查业务侧连接是否有效,优化实例连接,释放不必要的连接。
- 云监控服务目前可以监控数据库CPU、内存、磁盘、连接数等指标,并且设置告警策略,出现告警时可以提前识别风险。
ECS和GaussDB(for MySQL)部署在同一区域的不同的VPC内,网络不通怎么办
本节介绍了不同VPC互通的问题与处理方法。
同一区域内,不同VPC下GaussDB(for MySQL)内网是不通的。且创建实例后不支持切换VPC。
解决方法:
- 为两个不同的虚拟私有云建立对等连接,实现内网互通。
- 将ECS的虚拟私有云切换为与GaussDB(for MySQL)相同的虚拟私有云。
如何查看当前时间所有连接数据库的IP
在数据库上执行以下SQL语句,统计IP连接数。
SELECT substring_index(host, ':',1) AS host_name,state,count(*) FROM information_schema.processlist GROUP BY state,host_name;