排查连接到源数据库时出现的 DMS 错误

以下文章详细介绍了如何解决将 Azure 数据库迁移服务 (DMS) 连接到源数据库时可能会遇到的问题。 以下每个部分与特定类型的源数据库相关,列出了可能会遇到的错误,以及有关如何排查连接问题的信息的链接。

SQL Server

下表提供了连接到源 SQL Server 数据库时可能会出现的问题及其解决方法。

错误 原因和故障排除详细信息
SQL 连接失败。 建立与 SQL Server 的连接时,出现网络相关或特定于实例的错误。 找不到或无法访问服务器。 验证实例名称是否正确,以及 SQL Server 是否已配置为允许远程连接。 如果服务找不到源服务器,则会发生此错误。 若要解决该问题,请参阅使用动态端口或命名实例连接到源 SQL Server 时出错
错误 53 - SQL 连接失败。 (同样适用于错误代码 1、2、5、53、233、258、1225、11001) 如果服务无法连接到源服务器,则会发生此错误。 若要解决该问题,请参考以下资源,然后重试。

有关排查连接问题的交互式用户指南

将 SQL Server 迁移到 Azure SQL 数据库的先决条件

将 SQL Server 迁移到 Azure SQL 托管实例的先决条件
错误 18456 - 登录失败。 如果服务无法使用提供的 T-SQL 凭据连接到源数据库,则会发生此错误。 若要解决该问题,请检查输入的凭据。 还可以参考 MSSQLSERVER_18456 或此表下面的注释中列出的故障排除文档,然后重试。
提供了格式不当的 AccountName 值“{0}”。 AccountName 的所需格式为“域名\用户名” 如果用户选择了 Windows 身份验证但提供了格式无效的用户名,则会发生此错误。 若要解决该问题,请为 Windows 身份验证提供正确格式的用户名,或选择“SQL 身份验证”。

AWS RDS MySQL

下表提供了连接到源 AWS RDS MySQL 数据库时可能会出现的问题及其解决方法。

错误 原因和故障排除详细信息
错误 [2003] [HY000] - 连接失败。 ERROR [HY000] [MySQL][ODBC x.x(w) 驱动程序] 无法连接到 '{server}' (10060) 上的 MySQL 服务器 如果 MySQL ODBC 驱动程序无法连接到源服务器,则会发生此错误。 若要解决该问题,请参考此表下面的注释中列出的故障排除文档,然后重试。
错误 [2005] [HY000] - 连接失败。 错误 [HY000] [MySQL][ODBC x.x(w) 驱动程序] 未知的 MySQL 服务器主机 '{server}' 如果服务在 RDS 上找不到源主机,则会发生此错误。 此问题的原因可能是列出的源不存在,或者 RDS 基础结构有问题。 若要解决该问题,请参考此表下面的注释中列出的故障排除文档,然后重试。
错误 [1045] [HY000] - 连接失败。 错误 [HY000] [MySQL][ODBC x.x(w) 驱动程序] 拒绝 '{server}' 上的用户 '{user}' 访问(使用密码:是) 如果由于凭证无效,导致 MySQL ODBC 驱动程序无法连接到源服务器,则会发生此错误。 请检查输入的凭据。 如果该问题持续出现,请检查源计算机是否具有正确的凭据。 可能需要在控制台中重置密码。 如果依然遇到该问题,请参考此表下面的注释中列出的故障排除文档,然后重试。
错误 [9002] [HY000] - 连接失败。 ERROR [HY000] [MySQL][ODBC x.x(w) 驱动程序] 连接字符串可能不正确。 访问门户以获得参考信息。 如果连接字符串问题导致连接失败,则会发生此错误。 请检查连接字符串是否有效。 若要解决该问题,请参考此表下面的注释中列出的故障排除文档,然后重试。
二进制日志记录出错。 变量 binlog_format 的值为 '{value}'。 请将其更改为 'row'。 如果二进制日志记录存在错误,则会发生此错误。变量 binlog_format 的值不正确。 若要解决该问题,请将参数组中的 binlog_format 更改为 'ROW',然后重新启动实例。 有关详细信息,请参阅二进制日志记录选项和变量AWS RDS MySQL 数据库日志文件文档

有关排查连接到源 AWS RDS MySQL 数据库时出现的问题的详细信息,请参阅以下资源:

AWS RDS PostgreSQL

下表提供了连接到源 AWS RDS PostgreSQL 数据库时可能会出现的问题及其解决方法。

错误 原因和故障排除详细信息
错误 [101] [08001] - 连接失败。 错误 [08001] 已超时。 如果 Postgres 驱动程序无法连接到源服务器,则会发生此错误。 若要解决该问题,请参考此表下面的注释中列出的故障排除文档,然后重试。
错误:参数 wal_level 的值为 '{value}'。 请将其更改为 'logical' 以允许复制。 如果参数 wal_level 的值不正确,则会发生此错误。 若要解决该问题,请将参数组中的 rds.logical_replication 更改为 1,然后重新启动实例。 有关详细信息, 请参阅使用 DMS 迁移到 Azure PostgreSQL 的先决条件Amazon RDS 上的 PostgreSQL

有关排查连接到源 AWS RDS PostgreSQL 数据库时出现的问题的详细信息,请参阅以下资源:

AWS RDS SQL Server

下表提供了连接到源 AWS RDS SQL Server 数据库时可能会出现的问题及其解决方法。

错误 原因和故障排除详细信息
错误 53 - SQL 连接失败。 建立到 SQL Server 的连接时出现与网络相关或特定于实例的错误。 找不到或无法访问服务器。 验证实例名称是否正确,以及 SQL Server 是否已配置为允许远程连接。 (提供程序:命名管道提供程序,错误:40 - 无法打开到 SQL Server 的连接) 如果服务无法连接到源服务器,则会发生此错误。 若要解决该问题,请参考此表下面的注释中列出的故障排除文档,然后重试。
错误 18456 - 登录失败。 用户 '{user}' 登录失败 如果服务无法使用提供的 T-SQL 凭据连接到源数据库,则会发生此错误。 若要解决该问题,请检查输入的凭据。 还可以参考 MSSQLSERVER_18456 或此表下面的注释中列出的故障排除文档,然后重试。
错误 87 - 连接字符串无效。 建立与 SQL Server 的连接时,出现网络相关或特定于实例的错误。 找不到或无法访问服务器。 验证实例名称是否正确,以及 SQL Server 是否已配置为允许远程连接。 (提供程序:SQL 网络接口,错误:25 - 连接字符串无效) 如果服务因连接字符串无效而无法连接到源服务器,则会发生此错误。 若要解决该问题,请检查提供的连接字符串。 如果问题持续出现,请参考此表下面的注释中列出的故障排除文档,然后重试。
错误 - 服务器证书不受信任。 已成功与服务器建立连接,但在登录过程中发生错误。 (提供程序:SSL 提供程序,错误:0 - 证书链是不受信任的颁发机构颁发的。) 如果使用的证书不受信任,则会发生此错误。 若要解决该问题,需要找到可信的证书,然后在服务器上启用它。 或者,可以在连接时选择“信任证书”选项。 请仅在你熟悉所用的证书并且信任它时,才执行此操作。

使用自签名证书加密的 TLS 连接不提供强安全性 -- 它们容易受到中间人攻击。 请勿在生产环境中或在连接到 Internet 的服务器上依赖使用自签名证书的 TLS。

有关详细信息,请参阅对 Microsoft SQL Server 数据库实例使用 SSL教程:使用 DMS 将 RDS SQL Server 迁移到 Azure
错误 300 - 用户没有所需的权限。 已拒绝对对象 '{server}',数据库 '{database}' 的 VIEW SERVER STATE 权限 如果用户无权执行迁移,则会发生此错误。 若要解决该问题,请参考授予服务器权限 - Transact-SQL教程:使用 DMS 将 RDS SQL Server 迁移到 Azure 了解更多详细信息。

有关排查连接到源 AWS RDS SQL Server 时出现的问题的详细信息,请参阅以下资源:

已知问题