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. 1.Static parameter not rebooted - Parameter requires instance restart
  2. 2.Parameter group not associated - Instance using default group
  3. 3.Wrong ApplyMethod - Using pending-reboot when immediate needed
  4. 4.Invalid parameter value - Value outside allowed range
  5. 5.Parameter group not applied - Changed group but instance not rebooted
  6. 6.Engine version mismatch - Parameter not available for engine version

Step-by-Step Fix

  1. 1.Check logs for specific error messages
  2. 2.Verify configuration settings
  3. 3.Test network connectivity
  4. 4.Review recent changes
  5. 5.Apply corrective action
  6. 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

ParameterTypeEngine
max_connectionsStaticMySQL/PostgreSQL
shared_buffersStaticPostgreSQL
portStaticAll
innodb_buffer_pool_sizeStaticMySQL (some versions)
long_query_timeDynamicMySQL
slow_query_logDynamicMySQL
log_min_duration_statementDynamicPostgreSQL
work_memDynamicPostgreSQL

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; ```

  • [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)
  • [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>