Introduction
RDS parameter groups control database configuration. Some parameters require a reboot to take effect (static), while others apply dynamically. When you modify a parameter group but don't apply it correctly, the database continues running with old settings despite your changes.
Symptoms
Parameter not changed:
```bash $ aws rds describe-db-instances --db-instance-identifier my-db \ --query 'DBInstances[*].[DBParameterGroups[*].DBParameterGroupName,DBParameterGroups[*].ParameterApplyStatus]'
"ParameterApplyStatus": "pending-reboot" # Not applied ```
Configuration mismatch:
```sql -- Show current parameter value SHOW max_connections; -- Returns 100 (old value)
-- Expected: 500 (new value in parameter group) ```
Pending parameters:
```bash $ aws rds describe-db-parameters --db-parameter-group-name my-params \ --query 'Parameters[*].[ParameterName,ParameterValue,ApplyMethod,ApplyType]'
"ApplyType": "static" "ApplyMethod": "pending-reboot" ```
Common Causes
- 1.Static parameter not rebooted - Parameter requires instance restart
- 2.Parameter group not associated - Instance using default group
- 3.Wrong ApplyMethod - Using pending-reboot when immediate needed
- 4.Invalid parameter value - Value outside allowed range
- 5.Parameter group not applied - Changed group but instance not rebooted
- 6.Engine version mismatch - Parameter not available for engine version
Step-by-Step Fix
- 1.Check logs for specific error messages
- 2.Verify configuration settings
- 3.Test network connectivity
- 4.Review recent changes
- 5.Apply corrective action
- 6.Verify the fix
Step 1: Check Current Parameter Group
```bash # Get instance's parameter group aws rds describe-db-instances --db-instance-identifier my-db \ --query 'DBInstances[*].DBParameterGroups[*].[DBParameterGroupName,ParameterApplyStatus]'
# Status values: # in-sync: Parameters applied # pending-reboot: Static parameters waiting for reboot # applying: Dynamic parameters being applied ```
Step 2: Identify Static vs Dynamic Parameters
bash
# List all parameters with their types
aws rds describe-db-parameters --db-parameter-group-name my-params \
--query 'Parameters[?ApplyType==static`].[ParameterName,ParameterValue]'
# Static parameters require reboot: # - max_connections # - shared_buffers # - port # - lower_case_table_names # - log_bin_trust_function_creators
# Dynamic parameters apply immediately: # - long_query_time # - slow_query_log # - innodb_buffer_pool_size (some engines) # - max_allowed_packet ```
Step 3: Apply Dynamic Parameters
```bash # Modify parameter with immediate apply aws rds modify-db-parameter-group \ --db-parameter-group-name my-params \ --parameters ParameterName=long_query_time,ParameterValue=2,ApplyMethod=immediate
# Verify change
aws rds describe-db-parameters --db-parameter-group-name my-params \
--query 'Parameters[?ParameterName==long_query_time].[ParameterValue,ApplyMethod]'
# Status should change to "applying" then "in-sync" aws rds describe-db-instances --db-instance-identifier my-db \ --query 'DBInstances[*].DBParameterGroups[*].ParameterApplyStatus' ```
Step 4: Reboot for Static Parameters
```bash # For static parameters, must reboot aws rds modify-db-parameter-group \ --db-parameter-group-name my-params \ --parameters ParameterName=max_connections,ParameterValue=500,ApplyMethod=pending-reboot
# Reboot instance to apply aws rds reboot-db-instance --db-instance-identifier my-db
# Wait for reboot to complete aws rds wait db-instance-available --db-instance-identifier my-db
# Check status aws rds describe-db-instances --db-instance-identifier my-db \ --query 'DBInstances[*].[DBInstanceStatus,DBParameterGroups[*].ParameterApplyStatus]'
# Should show: Status: available, ApplyStatus: in-sync ```
Step 5: Associate Parameter Group to Instance
```bash # If instance has wrong parameter group aws rds modify-db-instance \ --db-instance-identifier my-db \ --db-parameter-group-name my-custom-params \ --apply-immediately
# This associates the group, but static parameters still need reboot # Check association status aws rds describe-db-instances --db-instance-identifier my-db \ --query 'DBInstances[*].DBParameterGroups[*].[DBParameterGroupName,ParameterApplyStatus]' ```
Step 6: Verify Parameter Value Applied
```sql -- Connect to database -- MySQL/MariaDB SHOW VARIABLES LIKE 'max_connections';
-- PostgreSQL SHOW max_connections;
-- Should show the new value
-- For parameters that didn't apply, check pending status SELECT * FROM mysql.rds_configuration; ```
Step 7: Check for Invalid Parameter Values
```bash # If modification fails aws rds modify-db-parameter-group \ --db-parameter-group-name my-params \ --parameters ParameterName=max_connections,ParameterValue=100000
# Error: InvalidParameterValue # max_connections range: 1-100000 (depends on engine)
# Check allowed values
aws rds describe-engine-default-parameters \
--engine mysql \
--engine-version 8.0 \
--query 'EngineDefaults.Parameters[?ParameterName==max_connections].[AllowedValues,MinimumEngineVersion]'
```
Step 8: Create Custom Parameter Group from Default
```bash # If using default group, can't modify it # Create custom group aws rds create-db-parameter-group \ --db-parameter-group-name my-custom-params \ --db-parameter-group-family mysql8.0 \ --description "Custom MySQL parameters"
# Copy from default aws rds copy-db-parameter-group \ --source-db-parameter-group-identifier default.mysql8.0 \ --target-db-parameter-group-identifier my-custom-params-copy
# Modify custom group aws rds modify-db-parameter-group \ --db-parameter-group-name my-custom-params \ --parameters ... ```
Step 9: Check Engine Version Compatibility
```bash # Parameter groups are tied to engine family # mysql8.0 parameters won't work on mysql5.7 instance
# Check instance engine aws rds describe-db-instances --db-instance-identifier my-db \ --query 'DBInstances[*].[Engine,EngineVersion]'
# Check parameter group family aws rds describe-db-parameter-groups --db-parameter-group-name my-params \ --query 'DBParameterGroups[*].DBParameterGroupFamily'
# If mismatch, create matching group aws rds create-db-parameter-group \ --db-parameter-group-name mysql57-params \ --db-parameter-group-family mysql5.7 \ --description "MySQL 5.7 parameters" ```
Step 10: Multi-AZ Reboot Considerations
```bash # Multi-AZ instances reboot differently aws rds describe-db-instances --db-instance-identifier my-db \ --query 'DBInstances[*].MultiAZ'
# For Multi-AZ, reboot triggers failover # Schedule during maintenance window or low traffic
aws rds reboot-db-instance \ --db-instance-identifier my-db \ --force-failover # Optional: force failover ```
Static vs Dynamic Parameter Reference
| Parameter | Type | Engine |
|---|---|---|
| max_connections | Static | MySQL/PostgreSQL |
| shared_buffers | Static | PostgreSQL |
| port | Static | All |
| innodb_buffer_pool_size | Static | MySQL (some versions) |
| long_query_time | Dynamic | MySQL |
| slow_query_log | Dynamic | MySQL |
| log_min_duration_statement | Dynamic | PostgreSQL |
| work_mem | Dynamic | PostgreSQL |
Verification
```bash # Check parameter apply status aws rds describe-db-instances --db-instance-identifier my-db \ --query 'DBInstances[*].DBParameterGroups[*].ParameterApplyStatus'
# Should be "in-sync"
# Verify in database mysql> SHOW VARIABLES LIKE 'max_connections'; # Should show new value
# Test with new settings mysql> SELECT @@max_connections; ```
Related Issues
- [Fix AWS RDS Read Replica Lag High](/articles/fix-aws-rds-read-replica-lag-high)
- [Fix AWS RDS Instance Unavailable](/articles/fix-aws-rds-instance-unavailable)
- [Fix AWS RDS Connection Limit Exceeded](/articles/fix-aws-rds-connection-limit-exceeded)
Related Articles
- [AWS troubleshooting: Fix IAM Permission Denied - Complete Tro](fix-iam-permission-denied)
- [AWS cloud troubleshooting: AWS ACM Certificate Pending Validation Because the](aws-acm-certificate-pending-validation-wrong-route53-zone)
- [AWS cloud troubleshooting: AWS ALB Returns 502 Because the Target Closed the ](aws-alb-502-target-closed-connection-keepalive-timeout-mismatch)
- [AWS cloud troubleshooting: Fix AWS ALB CreateListener TargetGroupNotFound Err](aws-alb-createlistener-targetgroupnotfound)
- [AWS cloud troubleshooting: Fix Aws Alb Lambda 502 Bad Gateway Issue in AWS](aws-alb-lambda-502-bad-gateway)
<script type="application/ld+json"> { "@context": "https://schema.org", "@type": "TechArticle", "headline": "Fix AWS RDS Parameter Group Not Applying", "description": "Troubleshoot RDS parameter group issues. Apply static/dynamic parameters, reboot instances, and verify configuration changes.", "url": "https://www.fixwikihub.com/fix-aws-rds-parameter-group-not-applying", "publisher": { "@type": "Organization", "name": "FixWikiHub", "url": "https://www.fixwikihub.com" }, "author": { "@type": "Person", "name": "FixWikiHub Editorial Team" }, "datePublished": "2026-04-01T15:26:16.259Z", "dateModified": "2026-04-01T15:26:16.259Z" } </script>