## Configurar conexiones a bases de datos
En las distribuciones de Devkron autocontenidas (para Linux o Windows) no hay soporte de interfaz de usuario basado en ventanas, por lo que el Administrador de conexiones no está disponible.

Para configurar conexiones deberá hacerlo a través de sus propios programas en Devkron o editando el archivo: 'connections.xml' que debe existir en el directorio de binarios de Devkron.

De manera predeterminada se incluye el archivo 'connections.xml.example' que puede copiar con el nombre 'connections.xml' a manera de plantilla.

```XML
<?xml version="1.0" encoding="utf-8"?>
<!--
Use este archivo como ejemplo para crear un repositorio de conexiones locales.

Cambie el nombre de este archivo a: connections.xml y déjelo en el directorio de programas de Devkron.
-->
<Repository xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <Applications>
    <AppItem>
      <Name>MyApp</Name>
      <SQLDictionaries />
      <Connections>
        <CnnItem>
          <Name>connection1</Name>
          <EngineType>MY_SQL</EngineType>
          <XmlSettings>
		  <!--
		  La información de conexión puede estar encriptada y codificada en base 64 
		  o como XML dentro de un bloque CDATA.
		  
		  Si no está cifrada (como en este caso) establezca los valores 
		  correspondientes a los elementos:
		  Host, UserName, Password, DefaultSchema, Port.
		  
		  Podrá conectarse a esta base de datos con la siguiente sintaxis:
		  
		  ref db=dbr.open("connection1@MyApp")
		  
		  -->
		  <![CDATA[
			<Engine>
			  <Name>MY_SQL</Name>
			  <Host>ip_or_hostname</Host>
			  <UserName>username</UserName>
			  <Password>password</Password>
			  <DefaultSchema>database_name</DefaultSchema>
			  <Port>3306</Port>
			</Engine>
		  ]]>
		  </XmlSettings>
          <SQLDic>connections.sqldic</SQLDic>
          <Default>false</Default>
        </CnnItem>
      </Connections>
    </AppItem>
  </Applications>
</Repository>
```

### Conexiones cifradas (SSL) a MySQL

Para MySQL, el modo SSL de la conexión se indica con el elemento `<SSLMode>` dentro de `<Engine>`, en `XmlSettings`. El valor se escribe **como número**; si se escribe el nombre del modo (por ejemplo `Required`), se ignora y la conexión se hace sin SSL.

| Valor | Modo | Descripción |
|---|---|---|
| `0` | None | Sin SSL. |
| `1` | Preferred | Usa SSL si el servidor lo admite. |
| `2` | Required | Exige SSL; no valida el certificado del servidor. |
| `3` | VerifyCA | Exige SSL y valida que el certificado lo emita una autoridad de confianza. |
| `4` | VerifyFull | Como VerifyCA, y además valida que el certificado corresponda al nombre del host. |

Ejemplo (datos ficticios):

```XML
<Engine>
  <Name>MY_SQL</Name>
  <Host>db.ejemplo.local</Host>
  <UserName>usuario_app</UserName>
  <Password>contraseña_de_ejemplo</Password>
  <DefaultSchema>mi_base</DefaultSchema>
  <Port>3306</Port>
  <SSLMode>2</SSLMode>
</Engine>
```

Se recomienda `2` (Required), o `3`/`4` si el servidor tiene un certificado que el cliente pueda validar.

**MySQL 8.4 y `caching_sha2_password`.** Con el método de autenticación predeterminado de MySQL 8.4 (`caching_sha2_password`), una conexión sin SSL puede funcionar al principio y fallar después de que el servidor MySQL se reinicia (cuando vacía su caché de autenticación). Para evitarlo, configure la conexión con `SSLMode` `2` o superior.
