数据库基本信息采集器
采集数据库的基础信息,包括数据库版本、字符集、数据库大小、性能数据、数据库部分配置信息、表对象的统计信息(包括表使用到的数据类型、主键字段的数据类型、无主键表信息、LOB表信息、大数据表信息以及分区表和大分区信息),以及Schema维度的统计信息。
约束与限制
当前支持MySQL数据库。需要目标数据库防火墙开放数据库端口(默认为3306)。
参数配置说明
参数 |
必选 |
配置说明 |
---|---|---|
db_instance_name |
否 |
输入连接数据库时的初始数据库名称,连接MySQL时默认值为mysql。 |
output_path |
否 |
自定义的采集结果输出文件路径。如 C:\MgC-Agent\test。 默认路径C:\MgC-Agent\data\collection-result\ agent_collector_database_all_basic_info。 |
user_selector |
否 |
输入待采数据库schema/database列表,用英文逗号分隔。默认值为空,表示采集该库中的所有schema/database。 |
MySQL数据库凭证授权操作
数据库采集器需要连接到数据库并查询系统视图获取信息,请确保提供的用户具有相关权限,可参考如下步骤准备和授权:
- 登录数据库服务器。打开终端(Linux)或命令提示符(Windows),进入MySQL客户端安装目录或配置MySQL环境变量。执行以下命令登录数据库:
mysql -u <user> -p
-- user:数据库用户名。该用户需要有创建用户与授权的权限,通常情况下,只有数据库管理员(如 root 用户)会被赋予这些权限。建议联系数据库管理员进行以下创建与授权操作。
图1 MySQL 命令行界面 - 登录数据库成功后,执行以下命令,创建用户:
CREATE USER '<db-user>'@'<host>' IDENTIFIED BY '<db-password>';
- --db-user:需替换为实际创建的用户名,对应mgc-agent中凭证的用户名。
- --host:指定允许登录的主机,@'<host>'可省略,省略时的默认值是@%,您可以指定迁移中心Agent服务器所在的IP地址为host。示例:
- %:允许从任意主机登录(包括远程);
- localhost:仅允许从数据库服务器本机登录;
- 192.168.1.%:允许从指定网段(如192.168.1.x)的主机登录;
- 192.168.1.252:仅允许192.168.1.252的主机登录;
- --db-password: db-user的密码,对应mgc-agent中凭证的密码。
- 进行数据库授权。参考以下两种方式并结合实际需求选择指定数据库授权或所有数据库授权。
- 执行以下命令进行指定数据库授权,采集器默认使用mysql数据库进行测试连接,若没有以下权限测试连接将失败。
GRANT SELECT ON mysql.* TO '<db-user>'@'<host>'; GRANT PROCESS ON *.* TO '<db-user>'@'<host>'; GRANT SELECT ON <database-name>.* TO '<db-user>'@'<host>';
-- process权限用于指定用户可以查看information_schema所有的表。
--db-user:数据库用户名,步骤2中创建的用户。
--@'<host>':指定允许登录的主机,与步骤2创建的值保持一致,不填默认为@%。
--database-name:对待采集的数据库名称。
- 执行以下命令进行所有数据库授权:
GRANT PROCESS ON *.* TO '<db-user>'@'<host>'; GRANT SELECT ON *.* TO '<db-user>'@'<host>';
--db-user:数据库用户名,步骤2中创建的用户。
--@'<host>':指定允许登录的主机,与步骤2创建的值保持一致,不填默认为@%。
- 执行以下命令进行指定数据库授权,采集器默认使用mysql数据库进行测试连接,若没有以下权限测试连接将失败。
- 执行以下命令,刷新权限:
FLUSH PRIVILEGES;
- 执行以下命令,查看用户是否有权限:
SHOW GRANTS FOR '<db-user>'@'<host>';
--db-user:数据库用户名,步骤2中创建的用户。
--@'<host>':指定允许登录的主机,与步骤2创建的值保持一致,不填默认为@%。
- 在MgC-Agent上添加凭证。
- 登录MgC Agent控制台,进入凭证管理页面,单击创建凭证,进入创建凭证页面。
- 资源类型选择数据库,认证方式选择用户名/密码。用户名和密码为步骤2中创建的用户和对应的密码。
MySQL数据库取消授权和删除用户操作
- 取消已授予的权限使用 REVOKE 命令,语法与 GRANT 对应,按需执行以下命令取消上面授予的权限。
REVOKE PROCESS ON *.* FROM '<db-user>'@'<host>'; REVOKE SELECT ON *.* FROM '<db-user>'@'<host>'; REVOKE SELECT ON mysql.* FROM '<db-user>'@'<host>'; REVOKE SELECT ON <database-name>.* TO <db-user>;
- 执行以下命令,删除用户。
DROP USER '<db-user>'@'<host>';