

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Risoluzione dei problemi per RDS Proxy
<a name="rds-proxy.troubleshooting"></a>

 Di seguito, sono disponibili idee per la risoluzione di alcuni problemi comuni relativi al proxy RDS e informazioni sui CloudWatch registri di RDS Proxy. 

 Nei log RDS Proxy, ogni voce è preceduta dal nome dell'endpoint proxy associato. Questo nome può essere quello specificato per un endpoint definito dall'utente. In alternativa, può essere il nome `default` speciale dell'endpoint predefinito di un proxy che esegue le richieste. read/write Per ulteriori informazioni sugli endpoint proxy, consulta [Utilizzo degli endpoint Amazon RDS Proxy](rds-proxy-endpoints.md). 

**Topics**
+ [Verifica della connettività a un proxy](#rds-proxy-verifying)
+ [Problemi e soluzioni comuni](#rds-proxy-diagnosis)
+ [Risoluzione dei problemi di Server proxy per RDS con RDS per MySQL](#rds-proxy-MySQL-troubleshooting)
+ [Risoluzione dei problemi di Server proxy per RDS con RDS per PostgreSQL](#rds-proxy-PostgreSQL-troubleshooting)

## Verifica della connettività a un proxy
<a name="rds-proxy-verifying"></a>

 Per verificare che tutti i componenti, come il proxy, il database e le istanze di calcolo nella connessione, possano comunicare tra loro, è possibile utilizzare i seguenti comandi. 

 Esamina il proxy stesso usando il [describe-db-proxies](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-proxies.html)comando. Esamina anche il gruppo target associato utilizzando il comando [describe-db-proxy-target-groups](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-proxy-target-groups.html). Verifica che i dettagli delle destinazioni corrispondano all'istanza database RDS che intendi associare al proxy. Utilizzare comandi come i seguenti. 

```
aws rds describe-db-proxies --db-proxy-name $DB_PROXY_NAME
aws rds describe-db-proxy-target-groups --db-proxy-name $DB_PROXY_NAME
```

 Per confermare che il proxy è in grado di connettersi al database sottostante, esamina le destinazioni specificate nei gruppi di destinazione utilizzando il [describe-db-proxy-targets](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-proxy-targets.html)comando. Utilizzare un comando come il seguente. 

```
aws rds describe-db-proxy-targets --db-proxy-name $DB_PROXY_NAME
```

 L'output del [describe-db-proxy-targets](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-proxy-targets.html)comando include un `TargetHealth` campo. È possibile esaminare i campi `State`, `Reason` e `Description` all'interno di `TargetHealth` per verificare se il proxy può comunicare con l'istanza database sottostante. 
+  Un valore `State` di `AVAILABLE` indica che il proxy può connettersi all'istanza database. 
+  Un valore `State` di `UNAVAILABLE` indica un problema di connessione temporaneo o permanente. In questo caso, esaminare i campi `Reason` e `Description`. Ad esempio, se `Reason` ha un valore pari a `PENDING_PROXY_CAPACITY`, provare a connettersi nuovamente dopo che il proxy ha terminato l'operazione di ridimensionamento. Se `Reason` ha un valore di `UNREACHABLE`, `CONNECTION_FAILED` o `AUTH_FAILURE`, utilizzare la spiegazione del campo `Description` per facilitare la diagnosi del problema. 
+  Il valore del campo `State` potrebbe essere `REGISTERING` per un breve periodo prima di passare a `AVAILABLE` o `UNAVAILABLE`. 

 Se il seguente comando Netcat (`nc`) ha esito positivo, puoi accedere all'endpoint proxy dall' EC2 istanza o da un altro sistema a cui hai effettuato l'accesso. Questo comando segnala un errore se non ti trovi nello stesso VPC del proxy e del database associato. Potresti essere in grado di accedere direttamente al database senza essere nello stesso VPC. Tuttavia, non puoi accedere al proxy a meno che non ti trovi nello stesso VPC. 

```
nc -zx MySQL_proxy_endpoint 3306

nc -zx PostgreSQL_proxy_endpoint 5432
```

 Puoi usare i seguenti comandi per assicurarti che l' EC2 istanza abbia le proprietà richieste. In particolare, il VPC dell' EC2 istanza deve essere lo stesso del VPC per il cluster dell' a cui si connette il proxy. 

```
aws ec2 describe-instances --instance-ids your_ec2_instance_id
```

 Esamina i segreti Secrets Manager utilizzati per il proxy. 

```
aws secretsmanager list-secrets
aws secretsmanager get-secret-value --secret-id your_secret_id
```

 Assicurati che il campo `SecretString` visualizzato da `get-secret-value` sia codificato come stringa JSON che include i campi `username` e `password`. Nell'esempio seguente viene illustrato il formato del campo `SecretString`. 

```
{
  "ARN": "some_arn",
  "Name": "some_name",
  "VersionId": "some_version_id",
  "SecretString": '{"username":"some_username","password":"some_password"}',
  "VersionStages": [ "some_stage" ],
  "CreatedDate": some_timestamp
}
```

Durante la risoluzione dei problemi di autenticazione IAM, verifica quanto segue:
+ Nel database è abilitata l'autenticazione IAM.
+ Il proxy è configurato con lo schema di autenticazione corretto.
+ Le politiche IAM nel ruolo IAM fornite al proxy concedono le `rds-db:connect` autorizzazioni necessarie al database appropriato e al relativo nome utente.
+ Per l'autenticazione end-to-end IAM, esistono utenti del database che corrispondono ai nomi degli utenti o dei ruoli IAM.
+ SSL/TLS è abilitato per la connessione.

## Problemi e soluzioni comuni
<a name="rds-proxy-diagnosis"></a>

Questa sezione descrive alcuni problemi comuni e potenziali soluzioni quando si utilizza Server proxy per RDS.

Dopo l’esecuzione del comando `aws rds describe-db-proxy-targets` della CLI, se la descrizione `TargetHealth` riporta `Proxy does not have any registered credentials`, verifica quanto segue:
+ L’utente dispone di credenziali registrate per l’accesso al proxy.
+ Il ruolo IAM per l’accesso al segreto Secrets Manager utilizzato dal proxy è valido.

È possibile che si verifichino i seguenti eventi RDS durante la creazione di o la connessione a un proxy DB.


| Categoria | ID evento RDS | Description | 
| --- | --- | --- | 
|  errore  | RDS-EVENT-0243 | RDS non è stato in grado di allocare la capacità per il proxy perché non ci sono sufficienti indirizzi IP disponibili nelle sottoreti. Per risolvere il problema, assicurati che le sottoreti abbiano il numero minimo di indirizzi IP non utilizzati. Per determinare il numero consigliato per la classe di istanza, consulta [Pianificazione della capacità degli indirizzi IP](rds-proxy-network-prereqs.md#rds-proxy-network-prereqs.plan-ip-address). | 
|  errore  | RDS-EVENT-0275 |  RDS ha limitato alcune connessioni al proxy DB. *name* Il numero di richieste di connessione simultanee dal client al proxy ha superato il limite.  | 

 È possibile che si verifichino i seguenti problemi durante la creazione di un nuovo proxy o la connessione a un proxy. 


|  Errore  |  Cause o soluzioni alternative  | 
| --- | --- | 
|   `403: The security token included in the request is invalid`   |  Seleziona un ruolo IAM esistente invece di crearne uno nuovo.  | 

## Risoluzione dei problemi di Server proxy per RDS con RDS per MySQL
<a name="rds-proxy-MySQL-troubleshooting"></a>

 È possibile che si verifichino i seguenti problemi durante la connessione a un proxy MySQL. 


|  Errore  |  Cause o soluzioni alternative  | 
| --- | --- | 
|  ERROR 1040 (HY000): Connections rate limit exceeded (limit\$1value)  |  La velocità di richieste di connessione dal client al proxy ha superato il limite.  | 
|  ERROR 1040 (HY000): IAM authentication rate limit exceeded  |  Il numero di richieste simultanee con autenticazione IAM dal client al proxy ha superato il limite.  | 
|  ERROR 1040 (HY000): Number simultaneous connections exceeded (limit\$1value)  |  Il numero di richieste di connessione simultanee dal client al proxy ha superato il limite.  | 
|   `ERROR 1045 (28000): Access denied for user 'DB_USER'@'%' (using password: YES)`   |  Il segreto Secrets Manager utilizzato dal proxy non corrisponde al nome utente e alla password di un utente di database esistente. Aggiorna le credenziali nel segreto Secrets Manager o assicurati che l'utente del database esista e disponga della stessa password del segreto.  | 
|  ERROR 1105 (HY000): Unknown error  |  Si è verificato un errore sconosciuto.  | 
|  ERROR 1231 (42000): Variable ''character\$1set\$1client'' can't be set to the value of value  |   Il valore impostato per il parametro `character_set_client` non è valido. Ad esempio, il valore `ucs2` non è valido perché può provocare un arresto anomalo del server MySQL.   | 
|  ERROR 3159 (HY000): This RDS Proxy requires TLS connections.  |   Hai abilitato l'impostazione **Richiedi Transport Layer Security** nel proxy ma la tua connessione includeva il parametro `ssl-mode=DISABLED` nel client MySQL. Eseguire una delle operazioni seguenti:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/rds-proxy.troubleshooting.html)  | 
|  ERROR 2026 (HY000): SSL connection error: Internal Server Error  |   L'handshake TLS con il proxy non è riuscito. Alcuni possibili motivi includono quanto segue:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/rds-proxy.troubleshooting.html)  | 
|  ERROR 9501 (HY000): Timed-out waiting to acquire database connection  |   Il proxy è in attesa di acquisire una connessione al database. Alcuni possibili motivi includono quanto segue:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/rds-proxy.troubleshooting.html)  | 

## Risoluzione dei problemi di Server proxy per RDS con RDS per PostgreSQL
<a name="rds-proxy-PostgreSQL-troubleshooting"></a>

 È possibile che si verifichino i seguenti problemi durante la connessione a un proxy PostgreSQL. 


|  Errore  |  Causa  |  Soluzione  | 
| --- | --- | --- | 
|   `ERROR 28000: IAM authentication is allowed only with SSL connections.`   |   L'utente ha tentato di connettersi al database utilizzando l'autenticazione IAM con l'impostazione `sslmode=disable` nel client PostgreSQL.   |   L'utente deve connettersi al database utilizzando l'impostazione minima di `sslmode=require` nel client PostgreSQL. Per ulteriori informazioni, consulta la documentazione [Supporto SSL PostgreSQL](https://www.postgresql.org/docs/current/libpq-ssl.html).   | 
|  `ERROR 28000: This RDS proxy has no credentials for the role role_name. Check the credentials for this role and try again.`   |   Non c'è un Secrets Manager segreto per questo ruolo.   |   Aggiungere un Secrets Manager segreto per questo ruolo. Per ulteriori informazioni, consulta [Configurazione dell’autenticazione IAM per Server proxy per RDS](rds-proxy-iam-setup.md).  | 
|  `ERROR 28000: RDS supports only IAM, MD5, or SCRAM authentication.`   |   Il client di database utilizzato per connettersi al proxy utilizza un meccanismo di autenticazione non attualmente supportato dal proxy.   |   Se non utilizzi l'autenticazione IAM, utilizza l'autenticazione tramite password MD5 o SCRAM.   | 
|  `ERROR 28000: A user name is missing from the connection startup packet. Provide a user name for this connection.`   |   Il client di database utilizzato per connettersi al proxy non invia un nome utente quando si tenta di stabilire una connessione.   |   Assicurarsi di definire un nome utente quando si imposta una connessione al proxy utilizzando il client PostgreSQL di propria scelta.   | 
|  `ERROR 28000: IAM is allowed only with SSL connections.`   |   Un client ha tentato di connettersi utilizzando l'autenticazione IAM, ma SSL non è stato abilitato.   |   Abilitare SSL nel client PostgreSQL.   | 
|  `ERROR 28000: This RDS Proxy requires TLS connections.`   |   L'utente ha abilitato l'impostazione **Richiedi Transport Layer Security** ma ha tentato di connettersi con `sslmode=disable` nel client PostgreSQL.   |   Per risolvere questo errore, effettuare una delle seguenti operazioni:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/rds-proxy.troubleshooting.html)  | 
|  `ERROR 28P01: IAM authentication failed for user user_name. Check the IAM token for this user and try again.`   |   Questo errore potrebbe essere dovuto ai seguenti fattori:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/rds-proxy.troubleshooting.html)  |   Per correggere questo errore, effettuare le seguenti operazioni:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/rds-proxy.troubleshooting.html)  | 
|  `ERROR 28P01: The password that was provided for the role role_name is wrong.`   |   La password per questo ruolo non corrisponde al segreto Secrets Manager.   |   Controlla il segreto per questo ruolo in Secrets Manager per vedere se la password è uguale a quella utilizzata nel client PostgreSQL.   | 
|  `ERROR 28P01: The IAM authentication failed for the role role_name. Check the IAM token for this role and try again.`   |   Si è verificato un problema con il token IAM utilizzato per l'autenticazione IAM.   |   Generare un nuovo token di autenticazione e utilizzarlo in una nuova connessione.   | 
|  `ERROR 0A000: Feature not supported: RDS Proxy supports only version 3.0 of the PostgreSQL messaging protocol.`   |   Il client PostgreSQL utilizzato per connettersi al proxy utilizza un protocollo precedente a 3.0.   |   Utilizzare un client PostgreSQL più recente che supporti il protocollo di messaggistica 3.0. Se si utilizza la CLI `psql` di PostgreSQL, utilizzare una versione maggiore o uguale a 7.4.   | 
|  `ERROR 0A000: Feature not supported: RDS Proxy currently doesn't support streaming replication mode.`   |   Il client PostgreSQL utilizzato per connettersi al proxy sta tentando di utilizzare la modalità di replica in streaming, che non è attualmente supportata dal proxy RDS.   |   Disattivare la modalità di replica in streaming nel client PostgreSQL utilizzato per la connessione.   | 
|  `ERROR 0A000: Feature not supported: RDS Proxy currently doesn't support the option option_name.`   |   Tramite il messaggio di avvio, il client PostgreSQL utilizzato per connettersi al proxy richiede un'opzione che non è attualmente supportata dal proxy RDS.   |   Disattivare l'opzione visualizzata come non supportata dal messaggio precedente nel client PostgreSQL utilizzato per connettersi.   | 
|  `ERROR 53300: The IAM authentication failed because of too many competing requests.`   |   Il numero di richieste simultanee con autenticazione IAM dal client al proxy ha superato il limite.   |   Ridurre la velocità con cui vengono stabilite le connessioni che utilizzano l'autenticazione IAM da un client PostgreSQL.   | 
|  `ERROR 53300: The maximum number of client connections to the proxy exceeded number_value.`   |   Il numero di richieste di connessione simultanee dal client al proxy ha superato il limite.   |   Ridurre il numero di connessioni attive dai client PostgreSQL a questo proxy RDS.   | 
|  `ERROR 53300: Rate of connection to proxy exceeded number_value.`   |   La velocità di richieste di connessione dal client al proxy ha superato il limite.   |   Ridurre la velocità con cui vengono stabilite le connessioni da un client PostgreSQL.   | 
|  `ERROR XX000: Unknown error.`   |   Si è verificato un errore sconosciuto.   |   Contatta l' AWS assistenza per esaminare il problema.   | 
|  `ERROR 08000: Timed-out waiting to acquire database connection.`   |   Il proxy è entrato in timeout durante l’attesa di acquisire una connessione al database entro la durata specificata dall’impostazione `ConnectionBorrowTimeout`. Alcuni possibili motivi includono quanto segue:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/rds-proxy.troubleshooting.html)  |   Le possibili soluzioni sono le seguenti:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/rds-proxy.troubleshooting.html)  | 
|  `ERROR XX000: Request returned an error: database_error.`   |   La connessione al database stabilita dal proxy ha restituito un errore.   |   La soluzione dipende dall'errore specifico del database. Un esempio : `Request returned an error: database "your-database-name" does not exist`. Ciò significa che il nome del database specificato non esiste nel server di database oppure che il nome utente utilizzato come nome del database (se non è specificato un nome del database) non esiste nel server.   | 
|  `ERROR 53300: The IAM authentication failed because of too many competing requests.`  |  Il numero di richieste simultanee con autenticazione IAM dal client al proxy ha superato il limite.  |  Ridurre la velocità con cui vengono stabilite le connessioni che utilizzano l'autenticazione IAM da un client PostgreSQL.  | 
|  `ERROR 28000: Enable IAM authentication for the client connection to the proxy and try again.`  |  Il proxy RDS non può connettersi al database perché l'autenticazione IAM non è abilitata per la connessione del client al proxy. Ciò si verifica quando il `DefaultAuthScheme` parametro del proxy è impostato `IAM_AUTH` su un utente registrato, ma il client utilizza l'autenticazione tramite password anziché l'autenticazione IAM.  |  Abilita l'autenticazione IAM per la connessione del client al proxy e riprova.  | 
|  `ERROR 28000: Configure IAM authentication as the DefaultAuthScheme in your proxy and try again.`  |  Il proxy RDS non può connettersi al database perché `DefaultAuthScheme` non è impostato `IAM_AUTH` su. Il `DefaultAuthScheme` parametro del proxy è impostato su`NONE`, ma il client sta tentando di utilizzare l'autenticazione IAM.  |  Imposta `DefaultAuthScheme` su `IAM_AUTH` per il tuo proxy e riprova.  | 

### Risoluzione dei problemi relativi al database `postgres` eliminato
<a name="rds-proxy-PostgreSQL-troubleshooting.postgresDBDelete"></a>

Se elimini erroneamente il database `postgres` dall’istanza, devi ripristinare il database per ristabilire la connettività all’istanza. Esegui i comandi seguenti all’interno dell’istanza database:

```
CREATE DATABASE postgres;
GRANT CONNECT ON DATABASE postgres TO rdsproxyadmin;
```