# HeidiSQL

HeidiSQL, inicialmente conocido como MySQL-Front, es un software libre y de código abierto que permite conectarse a MySQL (y sus derivaciones como MariaDB y Percona Server), así como Microsoft SQL Server y PostgreSQL.
MySQL-Front comenzó a ser desarrollado en Delphi por el programador alemán Ansgar Becker, quién por motivos personales dejó el proyecto sin terminar. Más tarde el desarrollador alemán Nile Hoyer contactó a Ansgar y adquirió los derechos para utilizar el nombre "MySQL-Front" en su propio proyecto, sin embargo tuvo que cancelarlo porque surgió una infracción de derechos de autor con MySQL Labs sobre el uso del nombre "MySQL". Finalmente, Ansgar y otros colaboradores retomaron el proyecto MySQL-Front renombrándolo HeidiSQL.
Para administrar las bases de datos con HeidiSQL, los usuarios deben iniciar una sesión en un servidor MySQL local o remoto. Sus característica permiten realizar las operaciones de base de datos más comunes y avanzadas, sin embargo aún sigue en desarrollo a fin de integrar la máxima funcionalidad que se espera en una interfaz de base de datos de SQL.

## Historia

Ansgar Becker comenzó el desarrollo de MySQL-Front en 1999 nombrando al proyecto "MySQL-Front" y utilizó una API escrita por Matthias Fichtner para comunicarse con los servidores de MySQL y sus bases de datos.
El desarrollo privado continuó hasta la versión 2.5, sin embargo en abril de 2006, Ansgar abrió el código de la aplicación en SourceForge, renombrando el proyecto "HeidiSQL". Se rediseñó HeidiSQL para utilizar una interfaz de base de datos más reciente y más popular, ZeosLib, el cual debutó en la versión 3.0 en abril de 2006.
Debido al incumplimiento de ciertos estándares al hospedar el proyecto en SourceForge y a otras ventajas (como rendimiento, características), Ansgar cambió el repositorio del código HeidiSQL y la característica de seguimiento de bugs a Google Code en mayo de 2008. Entonces HeidiSQL fue reescrito para que utilizara su propia interfaz de base de datos en lugar de usar bibliotecas existentes.
El soporte para Microsoft SQL Server fue añadido en marzo de 2011 en la versión 7.0.
A partir de la versión 8.0, HeidiSQL presenta su GUI en aproximadamente 22 idiomas aparte del inglés. Usuarios de distintos países contribuyen con estas traducciones vía Transifex.
El soporte para PostgreSQL fue introducido en marzo de 2014 en la versión 9.0.

## Características

HeidiSQL tiene las siguientes características y capacidades.
* Conexión con el servidor
** Guardar múltiples sesiones con conexiones y credenciales
** Protocolo comprimido cliente/servidor para servidores compatibles
** Comunicación con los servidores vía TCP/IP, tubería nombrada (sockets) o un protocolo de túnel (SSH)
** Múltiples sesiones corriendo en paralelo en una ventana
** Administrar usuarios en el servidor: añadir, remover y modificar usuarios, y sus credenciales
** Administrar privilegios de usuario globalmente y por base de datos
** Exportar bases de datos a archivos de SQL o a otros servidores
** Múltiples pestañas de consultas, teniendo a su vez múltiples sub pestañas para los resultados del procesamiento por lotes
* Servidor anfitrión
** Ver y filtrar todas las variables del servidor, por ejemplo: system_time_zone
** Editar todas las variables del servidor, tanto de la sesión actual o las de alcance global
** Servidor de vista variables estadísticas, y valores medianos por segundo & de hora
** Ver los procesos que se están ejecutando para analizar el SQL ejecutado y finalizar procesos problemáticos
** Ver las estadísticas de comandos con indicador de barras de porcentaje por comando de SQL
* Bases de datos
** Ver todas las bases de datos en el servidor, conectarse a una base de datos para trabajar con sus tablas y datos
** Ver el tamaño total de las bases de datos y sus tablas en KB/MB/GB dentro de la estructura de árbol base de datos/tabla
** Crear, remover (elimina), modificar: nombre, conjunto de caracteres, collation
* Tablas, vistas, procedimientos, disparadores y eventos
** Ver todos los objetos dentro de la base de datos seleccionada, vaciar, renombrar y remover (eliminar) objetos
** Editar columnas de tablas, índices y llaves foráneas. Compatible con las columnas virtuales en servidores de MariaDB.
** Editar la consulta de una vista y configurarla
** Editar un procedimiento de SQL y sus parámetros
** Editar un disparador de SQL y configurarlo
** Editar un evento programado de SQL

## jHeidi

También existe una versión escrita en Java, diseñada para trabajar en Mac y Linux. El proyecto jHeidi fue descontinuado en marzo de 2010.