FAQ 数据库
数据库问题

1、数据库审计连接问题排查方式:

问题解答:

(1)请检查当前数据库访问方案使用的是哪个数据库代理;

  • 数据库代理:默认中转服务器(默认就是行云管家门户服务器)

  • 数据库代理:Proxy宿主机

(2)检查代理机是否开放的代理映射端口(默认从8300开始),可以通过当前电脑/客户端在cmd里telnet 代理机IP 映射端口(例如8300)来看是否能连通;

(3)请检查数据库所在主机是否开放了数据库的端口,代理机是否能连通目标数据库IP及端口;

(4)请检查数据库是否允许代理机进行远程连接;

(5)请检查该局域网里是否设置了安全组网络限制;

(6)如果通过上述方式还无法解决问题,请把代理机日志发送给行云管家客服;

  • Proxy日志(Linux)路径:/usr/local/cloudbility/CloudGateway/logs

  • Proxy日志(Windows)路径:C:\Program Files (x86)\Cloudbility\CloudGateway\logs

  • 门户中转日志路径:/opt/cloudbility/logs/cloudTransit.log

2、MySQL授权代理使用此账户访问目标数据库命令

问题解答:

数据库访问方案创建成功,请在您的目标数据库中以“管理员身份”按步骤执行以下命令来授权:

(1)命令1:grant all privileges on . to username@'DBProxy_IP' identified by 'password';

  • a)命令中的 username 和 password 请替换成您在第一步输入的 数据库账户 与 密码;

  • b)命令中的 DBProxy_IP 请替换成您指定数据库代理的一个IP;

(2)命令2:FLUSH PRIVILEGES;

3、grant all privileges on . to root@'IP' identified by "password";这里的password填的是主机密码还是MySQL密码?

问题解答:

这里填写的是MySQL数据库的密码,在MySQL数据库里执行步骤1和2即可;

4、新增数据库实例时:阿里云RDS不支持创建root用户,也不支持.数据库

问题解答:

这里赋予跳板机远程访问数据库的权限是一个示例,并非强制root和所有权限。您可以按照具体情形来处理。比如:授予需要登录的用户某个库的权限就可以了;

5、Navicat连接MySQL时提示:2003 - Can't connect to MySQL server on 'IP' (10060 "Unkown error")

问题解答:

(1)请检查代理机是否开放数据库所映射的端口,当前客户端能否连通代理机的IP及映射端口;

(代理机指的是Proxy宿主机/门户服务器,具体请参照您用的哪种代理方式)

(2)请检查数据库所在主机是否开放了数据库的端口,代理机是否能连通目标数据库IP端口;

(3)请检查该局域网里是否设置了安全组网络限制;

6、Navicat连接Oracle时提示:ORA-28547:connection to server failed,probable Oracle Net admin error

问题解答:

(1)不通过行云管家连也会有该问题,是因为用户没有安装oracle client或者instantclient;

Navicat连Oracle数据库需要配合oracle client或者instantclient;

(2)有Oracle官网的帐号直接在Oracle官网这里下载

https://www.oracle.com/database/technologies/instant-client/downloads.html

7、Navicat连接Oracle时提示:ORA-12514:TNS:listener does not currently know of service requested in conncet descriptor

问题解答:

请检查服务名或SID那里是否填写或选择错误;

8、Navicat连接SQLServer时提示:08001 - TCP Provider: Timeout error 258.

问题解答:

(1)请检查代理机是否开放数据库所映射的端口,当前客户端能否连通代理机的IP及映射端口;

(代理机指的是Proxy宿主机/门户服务器,具体请参照您用的哪种代理方式)

(2)请检查数据库所在主机是否开放了数据库的端口,代理机是否能连通目标数据库IP端口;

(3)请检查该局域网里是否设置了安全组网络限制;

9、Navicat连接SQLServer访问串时IP地址如何填写端口

问题解答:

如图,用逗号隔开,格式为IP,端口;

10、Navicat连接SqlServer时提示:【IM002】 【Microsoft】【ODBC 驱动程序管理器】 未发现数据源名称并且未指定默认驱动程序 (0)

问题解答:

请去Navicat Premium安装目录里安装sqlncli_x64.msi文件,安装过程选择如下

安装完成后即可使用访问串登录数据库了;

11、连接SqlServer时提示:无法连接到 IP端口

问题解答:

(1)请检查代理机是否开放数据库所映射的端口,当前客户端能否连通代理机的IP及映射端口;

(代理机指的是Proxy宿主机/门户服务器,具体请参照您用的哪种代理方式)

(2)请检查数据库所在主机是否开放了数据库的端口,代理机是否能连通目标数据库IP端口;

(3)请检查该局域网里是否设置了安全组网络限制;

12、数据库闲置超时时长设置方式

如果您是高于4.19版本,请直接在管理控制台里进行设置,如果您是低于4.19版本,请参考下述方式设置;

行云管家数据库连接是有超时机制的,后台有个调度每十分钟去检查活跃的数据库会话,如果会话十分钟都没有sql操作会关闭当前会话,可以参考如下方式来修改闲置时长;

问题解答:

(1)登录行云管家管理控制台:一般访问网址为ip/console

(2)把访问网址改为如图:ip/console/index.html#/systemconfig

(3)进入到如图页面后,点击“添加配置项”;

(4)如图输入配置项key: db.session_idle_time

(5)如图输入配置项value:该值为数据库会话闲置时间,单位为分钟,如图这里输入的是120分钟;

13、应用宿主机无法直连数据库报10054错误

问题解答:

这是因为目标数据库版本(操作系统)等TLS、SSL版本太低,因为安全原因,在应用宿主机的安全策略里不支持去连接太低版本的TLS、SSL;

请修改应用宿主机的注册表以及本地组策略,如图,在“注册表编辑器”计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols里把SSL2.0、TLS1.0、TLS 1.1、TLS1.2下的Client这里的"DisabledByDefault"数据改为0、"Enabled"改为1;

在“本地组策略编辑器”里把计算机配置\管理模板\网络\SSL配置设置里的"SSL密码套件顺序"改为已禁用;

14、waiting for initial communication packet

2013-Lost connection to MySQL server at 'waiting for initial communication packet',system error:0"Internal error/check(Not system error)"

问题解答:

请开放对应Proxy代理的数据库映射端口,可以通过个人电脑telnet ProxyIP 映射端口来查看端口是否能通;

15、1152 - query access info error for 访问串账号:not exsits

问题解答:

如图,可以看到左边栏这里还有之前的访问串未完全关闭,请把左边栏里已有的访问串删除掉,然后重新再访问这个数据库连接。或者可以把所有数据库相关活跃会话全部关闭后再尝试连接;