数据管理DMS中添加自建MySQL数据库时出现“not allowed to connect to this MySQL server”的错误

说明

本文档可能包含第三方产品信息,该信息仅供参考。阿里云对第三方产品的性能、可靠性以及操作可能带来的潜在影响,不做任何暗示或其他形式的承诺。

问题描述

数据管理DMS中添加自建的MySQL数据库时报下列错误。

null,message from server:"Host 'x.x.x.x' is not allowed to connect to this MySQL server"

问题原因

数据管理DMS的IP地址不在自建MySQL数据库的授权用户表中。

解决方案

说明
  • 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。

  • 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。

  • 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。

您需要先在自建MySQL数据库中对数据管理DMS的IP地址进行授权,然后重试登录。关于授权,有下列两种方案:

  • 允许单个IP地址访问在自建MySQL数据库中对登录用户进行授权,允许被拒绝的IP地址访问自建的MySQL。具体步骤如下。

    说明

    数据管理DMS对外的IP地址定期更换,该方法仅对单个DMS的IP有效。如果需要长期使用DMS登录自建的MySQL数据库,可参考下一个方案。

    1. 记录数据管理DMS报错信息中的IP地址。

    2. 登录自建的MySQL数据库,执行下列SQL语句,对被拒绝的IP地址进行授权。

      GRANT ALL PRIVILEGES ON *.* TO '[$DB_User]'@'[$Host]' IDENTIFIED BY '[$DB_Pass]' WITH GRANT OPTION;
      说明
      • [$DB_User]:自建MySQL数据库的登录用户。

      • [$Host]:报错信息中的IP地址。

      • [$DB_Pass]:自建MySQL数据库的登录密码。

      • 该命令仅供参考,具体的权限、数据库名、用户名、IP地址等信息以实际情况为准。

    3. 执行下列SQL语句,刷新权限。

      FLUSH PRIVILEGES;
    4. 在数据管理DMS中重新添加自建的MySQL数据库并进行登录。

  • 允许所有IP地址访问在自建MySQL数据库中对登录用户进行授权,允许所有远程IP地址访问自建的MySQL。具体步骤如下。

    说明

    该方案将允许所有IP地址通过指定用户登录自建的MySQL数据库,存在一定的安全风险,请谨慎执行。

    1. 登录自建的MySQL数据库,执行下列SQL语句,对某个MySQL用户授予所有地址的访问权限。

      GRANT ALL PRIVILEGES ON *.* TO '[$DB_User]'@'%' IDENTIFIED BY '[$DB_Pass]' WITH GRANT OPTION;
    2. 执行下列SQL语句,刷新权限。

      FLUSH PRIVILEGES;
    3. 在数据管理DMS中重新添加自建的MySQL数据库并进行登录。

适用于

  • 数据管理DMS