排查连接到源数据库时出现的 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 时出现的问题的详细信息,请参阅以下资源: