一、引言:为什么选择阿里云RDS-MariaDB
MariaDB作为MySQL的优秀分支,由原MySQL创始人Michael Widenius主导开发,在保持与MySQL高度兼容的同时,引入了更多现代数据库特性与性能优化。阿里云RDS-MariaDB将这一开源数据库引擎与云原生基础设施深度融合,提供了高可用架构、自动备份、监控告警、弹性伸缩等企业级能力。自2024年8月起,阿里云RDS-MariaDB已支持10.6版本,为用户提供了更多选择。
本文将从零开始,系统讲解阿里云RDS-MariaDB的完整对接流程与SQL语法体系,帮助开发者快速上手云数据库服务。
二、对接前的准备工作
2.1 账号权限准备
在使用阿里云RDS-MariaDB之前,首先需要确保拥有足够的操作权限。通过RAM用户创建RDS实例时,该RAM用户必须拥有AliyunRDSFullAccess权限和AliyunBSSOrderAccess权限。前者用于管理RDS资源,后者用于处理订单与计费相关操作。
如果当前没有合适的RAM用户,建议先创建一个具有上述权限的子账号,避免直接使用主账号进行日常操作,以降低安全风险。
2.2 理解RDS的核心概念
在开始创建实例之前,有必要了解几个关键概念:
- 地域(Region):RDS实例所在的物理数据中心位置,一旦购买后不可更改。
- 可用区(Zone):同一地域内的不同物理机房,提供跨可用区容灾能力。
- 专有网络(VPC):RDS MariaDB的网络类型固定为专有网络,需提前规划VPC和交换机。
- 高可用系列:当前RDS MariaDB仅支持高可用系列,包含一个主节点和一个备节点。
需要先登录阿里云控制台,点击:阿里云控制台
三、创建RDS MariaDB实例
3.1 进入创建页面
登录阿里云管理控制台后,在左上角产品与服务菜单中找到\"云数据库RDS\",或直接在搜索框输入RDS快速定位。进入RDS控制台后,单击\"创建实例\"按钮开始配置。
3.2 计费方式选择
阿里云RDS提供两种计费方式:
- 包年包月:适合长期稳定运行的业务,一次性付费享受更多折扣,购买时长越长优惠力度越大。
- 按量付费:适合短期测试或业务量波动较大的场景,按小时计费,可随时释放实例停止计费。可以先创建按量付费实例进行验证,确认无误后再转为包年包月。
页面右下角会实时显示预估价格,完成所有配置后即可看到最终费用。
3.3 地域与网络配置
地域选择是创建实例时最重要的决策之一:
- 建议将RDS实例创建在与应用程序ECS实例相同的地域,以确保内网连接的低延迟和高带宽。
- 如果从ECS以外的设备连接,应选择离设备较近的地域,通过外网地址访问。
- 网络类型固定为专有网络(VPC),需选择与ECS相同的VPC,否则无法内网互通。
在可用区选择上,同一地域不同可用区没有实质性区别。ECS访问同可用区RDS的性能比访问同地域其他可用区略好,但差别较小。推荐选择多可用区部署方案,主备节点位于不同可用区,具备跨可用区容灾能力。
3.4 引擎版本与存储配置
在数据库引擎选择中,选择MariaDB。当前RDS MariaDB支持10.3和10.6两个版本。需要注意,RDS MariaDB当前不支持从10.3版本直接升级至10.6版本,如有升级需求需提前规划。
存储类型方面,RDS MariaDB使用ESSD云盘,提供三个性能等级:
- PL1:基础性能,适合大多数常规业务。
- PL2:比PL1最高提升2倍IOPS和吞吐量。
- PL3:比PL1最高提升20倍IOPS、11倍吞吐量。
ESSD云盘最大支持32 TB,扩存储无闪断,支持分钟级升降配。此外,可以勾选云盘加密功能进一步保护数据安全。
备份方面,RDS MariaDB支持分钟级/秒级备份,最高频率可达每15分钟一次。
四、设置白名单与安全访问
4.1 白名单的作用
白名单是RDS实例的第一道安全防线,只有白名单中的IP地址才能访问数据库实例。在实例创建过程中,可以选择是否将VPC网段加入白名单。如果创建时未配置,后续也可以手动设置。
4.2 配置白名单
配置白名单的具体步骤如下:
- 在RDS实例列表中找到目标实例,单击实例ID进入详情页。
- 在左侧导航栏选择\"数据安全性\",进入白名单设置页签。
- 添加需要放行的IP地址或IP段。对于ECS内网访问,应添加ECS实例的主私网IP。
安全建议:白名单应遵循最小授权原则,仅添加必要的IP地址。避免使用0.0.0.0/0(允许所有IP访问)这样的配置,除非在特殊测试场景中。
五、创建数据库与账号
5.1 创建数据库
实例创建完成并配置好白名单后,需要在实例中创建业务数据库。RDS MariaDB支持通过控制台、SQL命令、API接口三种方式管理数据库。
通过控制台创建数据库的步骤:
- 在RDS实例列表中找到目标实例,单击实例ID。
- 在左侧导航栏单击\"数据库管理\"。
- 单击\"创建数据库\"按钮,填写数据库名称并确认。
5.2 创建账号
数据库创建完成后,需要创建用于连接数据库的账号。账号管理同样在实例详情页的左侧导航栏中,单击\"账号管理\"即可进行创建、重置密码等操作。
创建账号时需要注意:
- 账号名称和密码需要妥善保管。
- 建议为不同应用或不同环境(开发、测试、生产)创建独立的账号,便于权限管理和审计追踪。
六、连接RDS MariaDB实例
完成实例创建、白名单配置、数据库和账号创建后,就可以开始连接数据库了。RDS与原生的数据库服务完全兼容,可以使用任何通用的数据库客户端连接到RDS实例。
6.1 方式一:使用DMS连接
DMS(Data Management Service)是阿里云提供的图形化数据管理工具,支持数据管理、结构管理、用户授权、安全审计、数据趋势、数据追踪、BI图表、性能优化等丰富功能。
通过DMS连接RDS MariaDB的步骤:
- 在RDS实例列表中找到目标实例,单击实例ID进入详情页。
- 在页面上方单击\"登录数据库\"。
- 在弹出的DMS页面中,填写数据库账号名和密码。
- 单击登录,成功后即可在DMS中执行SQL操作。
DMS是日常运维最推荐的方式,无需安装任何客户端软件,直接在浏览器中即可完成数据库管理任务。
6.2 方式二:使用客户端连接
除了DMS,也可以使用任何标准的MySQL/MariaDB客户端连接RDS实例。以HeidiSQL为例:
- 启动HeidiSQL客户端,单击\"新建\"。
- 网络类型选择\"MariaDB or MySQL(TCP/IP)\"。
- 主机名/IP地址填写RDS实例的内网地址或外网地址。
- 用户填写在RDS中创建的账号名称。
- 密码填写对应的密码。
- 端口填写实例的内网端口或外网端口。
6.3 内网连接与外网连接的选择
连接地址的选择取决于客户端所在的位置:
- 内网连接:如果客户端部署在ECS实例上,且ECS与RDS实例的地域、VPC相同,应使用内网地址。内网连接提供更低的延迟、更高的带宽,且不产生外网流量费用。
- 外网连接:其他情况(如本地开发环境、其他云平台的服务器等)只能使用外网地址连接。外网连接会产生流量费用,且安全性不如内网。
RDS实例的内网地址格式示例:rm-bp1xxxxxxxxxxxxxx.mysql.rds.aliyuncs.com
6.4 使用命令行连接
对于习惯使用命令行的开发者,可以通过MySQL命令行客户端连接RDS MariaDB:
mysql -h <内网或外网地址> -P <端口号> -u <账号名称> -p
输入密码后即可进入MariaDB命令行交互界面。
七、MariaDB SQL语法详解
阿里云RDS MariaDB与原生的MariaDB服务完全兼容,因此所有的SQL语法与标准MariaDB保持一致。下面系统讲解MariaDB的核心SQL语法。
7.1 数据定义语言(DDL)
DDL用于定义和管理数据库对象,包括数据库、表、索引等。
7.1.1 数据库操作
-- 创建数据库 CREATE DATABASE IF NOT EXISTS my_database DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_unicode_ci; -- 查看所有数据库 SHOW DATABASES; -- 切换数据库 USE my_database; -- 删除数据库(谨慎操作) DROP DATABASE IF EXISTS my_database;
7.1.2 创建表
CREATE TABLE语句用于创建新表,支持定义列、数据类型、约束、索引和存储引擎等。
CREATE TABLE IF NOT EXISTS users ( id INT NOT NULL AUTO_INCREMENT COMMENT '用户ID', username VARCHAR(50) NOT NULL COMMENT '用户名', email VARCHAR(100) NOT NULL COMMENT '邮箱', password_hash VARCHAR(255) NOT NULL COMMENT '密码哈希', age TINYINT UNSIGNED COMMENT '年龄', salary DECIMAL(10,2) DEFAULT 0.00 COMMENT '薪资', created_at DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', status TINYINT DEFAULT 1 COMMENT '状态:1-正常,0-禁用', PRIMARY KEY (id), UNIQUE KEY uk_username (username), UNIQUE KEY uk_email (email), KEY idx_age (age), KEY idx_status (status) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户表';
7.1.3 修改表结构
-- 添加列 ALTER TABLE users ADD COLUMN phone VARCHAR(20) COMMENT '手机号'; -- 修改列 ALTER TABLE users MODIFY COLUMN age SMALLINT UNSIGNED COMMENT '年龄'; -- 重命名列 ALTER TABLE users RENAME COLUMN status TO user_status; -- 删除列 ALTER TABLE users DROP COLUMN phone; -- 添加索引 ALTER TABLE users ADD INDEX idx_created_at (created_at); -- 重命名索引 ALTER TABLE users RENAME INDEX idx_age TO idx_user_age; -- 删除索引 ALTER TABLE users DROP INDEX idx_user_age; -- 重命名表 ALTER TABLE users RENAME TO system_users;
MariaDB的ALTER TABLE还支持更丰富的操作,如修改列的默认值、添加CHECK约束等。
7.1.4 删除表
DROP TABLE IF EXISTS system_users;
7.2 数据操作语言(DML)
DML用于对表中的数据进行增、删、改操作。
7.2.1 插入数据(INSERT)
-- 插入单条记录 INSERT INTO users (username, email, password_hash, age, salary) VALUES ('zhangsan', 'zhangsan@example.com', 'hash_value_1', 28, 8500.00); -- 插入多条记录 INSERT INTO users (username, email, password_hash, age, salary) VALUES ('lisi', 'lisi@example.com', 'hash_value_2', 32, 12000.00), ('wangwu', 'wangwu@example.com', 'hash_value_3', 25, 6500.00); -- 从另一张表插入数据 INSERT INTO users_backup (username, email, password_hash, age, salary) SELECT username, email, password_hash, age, salary FROM users WHERE status = 1;
7.2.2 更新数据(UPDATE)
-- 更新单条记录 UPDATE users SET salary = 9000.00 WHERE username = 'zhangsan'; -- 批量更新 UPDATE users SET status = 0 WHERE age < 18; -- 使用表达式更新 UPDATE users SET salary = salary * 1.1 WHERE status = 1;
7.2.3 删除数据(DELETE)
-- 删除指定记录 DELETE FROM users WHERE username = 'zhangsan'; -- 删除所有数据(保留表结构) DELETE FROM users; -- 快速清空表(重置自增ID) TRUNCATE TABLE users;
7.3 数据查询语言(DQL)
SELECT语句是MariaDB中最常用的查询语句。
7.3.1 基础查询
-- 查询所有列 SELECT * FROM users; -- 查询指定列 SELECT id, username, email, created_at FROM users; -- 带条件的查询 SELECT * FROM users WHERE age >= 25 AND status = 1; -- 排序 SELECT * FROM users ORDER BY created_at DESC; -- 分页查询(LIMIT + OFFSET) SELECT * FROM users ORDER BY id LIMIT 10 OFFSET 20; -- 去重查询 SELECT DISTINCT status FROM users;
7.3.2 聚合查询
-- 统计总数 SELECT COUNT(*) AS total FROM users; -- 分组统计 SELECT status, COUNT(*) AS count, AVG(age) AS avg_age FROM users GROUP BY status; -- 带过滤条件的分组(HAVING) SELECT status, COUNT(*) AS count, AVG(salary) AS avg_salary FROM users GROUP BY status HAVING COUNT(*) > 5; -- 常用聚合函数 SELECT COUNT(*) AS total_count, MAX(salary) AS max_salary, MIN(salary) AS min_salary, AVG(salary) AS avg_salary, SUM(salary) AS total_salary FROM users;
7.3.3 多表连接查询
-- 内连接(INNER JOIN) SELECT u.username, o.order_id, o.total_amount FROM users u INNER JOIN orders o ON u.id = o.user_id; -- 左连接(LEFT JOIN) SELECT u.username, o.order_id, o.total_amount FROM users u LEFT JOIN orders o ON u.id = o.user_id; -- 右连接(RIGHT JOIN) SELECT u.username, o.order_id, o.total_amount FROM users u RIGHT JOIN orders o ON u.id = o.user_id; -- 自连接 SELECT a.username AS employee, b.username AS manager FROM users a LEFT JOIN users b ON a.manager_id = b.id;
7.3.4 子查询
-- WHERE子句中的子查询 SELECT * FROM users WHERE salary > (SELECT AVG(salary) FROM users); -- FROM子句中的子查询(派生表) SELECT avg_salary FROM (SELECT AVG(salary) AS avg_salary FROM users) AS stats; -- 存在性检查(EXISTS) SELECT * FROM users u WHERE EXISTS (SELECT 1 FROM orders o WHERE o.user_id = u.id);
7.4 MariaDB数据类型
MariaDB支持丰富的数据类型,了解这些类型有助于设计合理的表结构。
7.4.1 数值类型
- TINYINT:1字节,有符号范围-128到127,无符号范围0到255。
- SMALLINT:2字节,有符号范围-32768到32767。
- MEDIUMINT:3字节,有符号范围-8388608到8388607。
- INT/INTEGER:4字节,标准整数类型。
- BIGINT:8字节,大整数类型。
- DECIMAL(M,D):精确小数,M为总位数,D为小数位数。
- FLOAT/DOUBLE:浮点数,近似值存储。
7.4.2 字符串类型
- CHAR(N):固定长度字符串,最大255字符。
- VARCHAR(N):可变长度字符串,最大65535字符。
- TINYTEXT:最大255字节的短文本。
- TEXT:最大65535字节的常规文本。
- MEDIUMTEXT:最大16777215字节的中等长度文本。
- LONGTEXT:最大4294967295字节的长文本。
7.4.3 日期时间类型
- DATE:日期,格式'YYYY-MM-DD'。
- TIME:时间,格式'HH:MM:SS'。
- DATETIME:日期和时间,格式'YYYY-MM-DD HH:MM:SS'。
- TIMESTAMP:时间戳,范围'1970-01-01 00:00:01'到'2038-01-19 03:14:07'。
- YEAR:年份,4位数字。
7.4.4 JSON类型
MariaDB将JSON存储为纯文本,而非MySQL的二进制格式。MariaDB的JSON函数比MySQL更快,操作JSON对象更加便捷。
7.5 MariaDB内置函数
MariaDB提供了丰富的内置函数,涵盖字符串处理、数值计算、日期时间操作等各个方面。
7.5.1 字符串函数
-- CONCAT:连接字符串 SELECT CONCAT('Hello', ' ', 'World') AS result; -- Hello World -- SUBSTRING:提取子串 SELECT SUBSTRING('Hello World', 7, 5) AS result; -- World -- LENGTH:获取字符串长度(字节数) SELECT LENGTH('Hello') AS result; -- 5 -- CHAR_LENGTH:获取字符数 SELECT CHAR_LENGTH('你好') AS result; -- 2 -- UPPER/LOWER:大小写转换 SELECT UPPER('hello'), LOWER('WORLD'); -- TRIM:去除首尾空格 SELECT TRIM(' Hello '); -- REPLACE:替换字符串 SELECT REPLACE('Hello World', 'World', 'MariaDB');
7.5.2 数值函数
-- ABS:绝对值 SELECT ABS(-10); -- 10 -- ROUND:四舍五入 SELECT ROUND(3.14159, 2); -- 3.14 -- CEIL/FLOOR:向上/向下取整 SELECT CEIL(3.14), FLOOR(3.14); -- 4, 3 -- MOD:取模 SELECT MOD(10, 3); -- 1 -- RAND:随机数 SELECT RAND();
7.5.3 日期时间函数
-- NOW:当前日期时间 SELECT NOW(); -- CURDATE/CURTIME:当前日期/时间 SELECT CURDATE(), CURTIME(); -- DATE_FORMAT:格式化日期 SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s'); -- DATEDIFF:计算日期差(天数) SELECT DATEDIFF('2026-12-31', '2026-01-01'); -- DATE_ADD/DATE_SUB:日期加减 SELECT DATE_ADD(NOW(), INTERVAL 7 DAY); SELECT DATE_SUB(NOW(), INTERVAL 1 MONTH); -- YEAR/MONTH/DAY:提取日期部分 SELECT YEAR(NOW()), MONTH(NOW()), DAY(NOW());
7.5.4 条件函数
-- IF:条件判断 SELECT IF(age >= 18, 'Adult', 'Minor') AS age_group FROM users; -- CASE:多条件分支 SELECT username, CASE WHEN age < 18 THEN 'Underage' WHEN age BETWEEN 18 AND 60 THEN 'Adult' ELSE 'Senior' END AS age_category FROM users; -- COALESCE:返回第一个非NULL值 SELECT COALESCE(phone, 'No Phone') AS contact FROM users;
7.6 存储过程
存储过程是一组预编译的SQL语句,封装在数据库服务器中,可通过CALL语句调用。
7.6.1 创建存储过程
DELIMITER // CREATE PROCEDURE GetUserById(IN user_id INT, OUT user_name VARCHAR(50)) BEGIN SELECT username INTO user_name FROM users WHERE id = user_id; END // DELIMITER ;
DELIMITER命令用于临时更改语句分隔符,以便在存储过程中使用分号。IN参数表示输入参数,OUT参数表示输出参数。
7.6.2 调用存储过程
-- 调用存储过程 CALL GetUserById(1, @name); -- 查看输出结果 SELECT @name;
存储过程名称可以指定数据库名称作为前缀,如database_name.procedure_name。
7.6.3 存储过程的优势
- 减少网络传输:多条SQL在服务器端执行,只需传输参数和结果。
- 提高性能:存储过程预编译,执行效率更高。
- 增强安全性:通过存储过程封装数据操作,应用只需调用存储过程而无须直接操作表。
- 便于维护:业务逻辑集中在数据库层,修改时无需更新所有应用代码。
7.7 触发器
触发器是存储在数据库中的一组SQL语句,当指定事件(INSERT、UPDATE、DELETE)发生时自动执行。触发器可用于数据验证、审计日志、自动更新等场景。
7.7.1 创建触发器
DELIMITER // CREATE TRIGGER before_user_insert BEFORE INSERT ON users FOR EACH ROW BEGIN -- 自动设置创建时间 SET NEW.created_at = NOW(); SET NEW.updated_at = NOW(); -- 数据验证:邮箱必须包含@符号 IF NEW.email NOT LIKE '%@%' THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Invalid email address'; END IF; END // DELIMITER ;
7.7.2 触发器的使用限制
在MariaDB 10.2.3版本之前,每个表对于每种组合(时机+事件)只能有一个触发器。阿里云RDS MariaDB 10.3及10.6版本遵循官方限制规范。
7.8 视图
视图是基于查询结果的虚拟表,可以简化复杂查询、增强数据安全性。
-- 创建视图 CREATE VIEW v_active_users AS SELECT id, username, email, age, created_at FROM users WHERE status = 1; -- 查询视图(与查询表一样) SELECT * FROM v_active_users WHERE age >= 25; -- 删除视图 DROP VIEW IF EXISTS v_active_users;
八、MariaDB与MySQL的关键差异
虽然MariaDB宣称与MySQL高度兼容,但在某些细节上存在差异:
- JSON存储:MariaDB将JSON存储为纯文本,MySQL存储为二进制格式。
- JSON函数性能:MariaDB的JSON函数比MySQL更快。
- GTID格式:MariaDB和MySQL使用完全不同的GTID格式。
- 复制语法:MySQL 8.4中移除了MASTER关键字,改用SOURCE,而MariaDB保持兼容。
- 认证方式:MariaDB不允许通过角色(Roles)进行认证,而MySQL允许。
在将应用从MySQL迁移到MariaDB时,需要注意这些差异可能带来的兼容性问题。大多数情况下,应用程序无需修改即可正常运行,但涉及上述特性的部分需要额外关注。
九、备份与恢复
阿里云RDS MariaDB提供完善的备份与恢复机制。
9.1 自动备份
RDS支持自动备份和手动备份两种方式。自动备份可通过设置备份策略调整数据备份和日志备份的周期:
- 全量备份周期:每1至7天。
- 日志备份:每5分钟一次。
9.2 手动备份
在备份恢复页面可以随时发起手动备份。手动备份适用于重大变更前的数据保护。
9.3 数据恢复
RDS支持按备份集恢复和按时间点恢复(PITR),可将数据库恢复到指定时间点的状态。
十、监控与性能优化
10.1 实例监控
RDS MariaDB提供实例监控功能,当检测到实例异常(如磁盘容量不足导致实例被锁定)时能够通知用户。主要监控指标包括CPU使用率、内存使用率、磁盘使用率、IOPS、连接数等。
10.2 慢查询分析
通过查看慢SQL日志可以定位运行缓慢的查询,分析其性能特征,从而进行针对性优化。
10.3 参数优化
RDS MariaDB支持通过控制台和API修改参数值,以满足个性化调整实例参数的需求。RDS的所有参数都经过多年的生产实践和优化,建议在充分理解参数含义后再进行调整。
10.4 读写分离
可以创建只读实例专门负责查询,减轻主实例负载。对于读多写少的业务场景,读写分离是提升性能的有效手段。
十一、最佳实践与常见问题
11.1 安全最佳实践
- 使用RAM子账号替代主账号进行日常操作。
- 白名单遵循最小授权原则。
- 定期更换数据库密码。
- 启用云盘加密保护数据安全。
11.2 性能最佳实践
- 合理设计索引,避免全表扫描。
- 使用EXPLAIN分析查询执行计划。
- 避免在查询中使用SELECT *,只选择必要的列。
- 合理使用连接池减少连接开销。
- 定期清理无效数据和归档历史数据。
11.3 成本最佳实践
- 长期运行的生产环境选择包年包月计费。
- 测试环境使用按量付费,用完及时释放。
- 内网访问优先于外网访问,避免外网流量费用。
十二、总结
阿里云RDS-MariaDB将开源MariaDB的强大功能与阿里云的基础设施能力完美结合,为开发者提供了稳定、高效、易用的云数据库服务。从实例创建到日常SQL操作,RDS-MariaDB保持了与原生的完全兼容,使得从自建数据库迁移到云端变得平滑顺畅。掌握本文介绍的对接流程与SQL语法,将帮助你在实际项目中更好地使用阿里云RDS-MariaDB,构建高可用的数据持久化层。
常见问题解答
问1:RDS MariaDB支持哪些版本?
答:当前阿里云RDS MariaDB支持10.3和10.6两个版本。10.6版本于2024年8月8日上线,对应官方10.6.11版本。需要注意的是,当前不支持从10.3版本直接升级至10.6版本。
问2:RDS MariaDB与自建MariaDB在SQL语法上有差异吗?
答:RDS MariaDB与原生的数据库服务完全兼容,所有的SQL语法与标准MariaDB保持一致。但需要注意MariaDB与MySQL之间存在一些差异,如JSON存储格式、GTID格式等。
问3:如何查看RDS MariaDB实例的连接地址?
答:在RDS实例列表中找到目标实例,单击实例ID进入详情页,在基本信息区域即可查看到内网地址和外网地址。如果未开通外网地址,可以在数据库连接页面申请开通。
问4:RDS MariaDB的存储空间最大支持多少?
答:RDS MariaDB使用ESSD云盘,最大支持32 TB的存储空间。扩存储无闪断,支持分钟级升降配。
问5:ECS如何内网连接RDS MariaDB?
答:ECS内网连接RDS MariaDB需要满足三个条件:ECS与RDS实例在同一地域、同一VPC、且RDS白名单中已添加ECS的私网IP。满足条件后,使用RDS的内网地址和端口进行连接。
问6:RDS MariaDB支持存储过程和触发器吗?
答:支持。RDS MariaDB完全支持存储过程、触发器、函数等高级数据库特性。在将自建数据库迁移到RDS时,如果使用了存储过程、触发器和函数,需要将definer去掉以兼容RDS。