Pero seguimos cayendo en lo mismo, supongamos el siguiente pseudocódigo para el hipotético instalador:
Código:
Si Existe la dll
Si puedo conectarme a MySQL en el puerto 3306 en localhost
Creo las bases de datos y las tablas y procedo a la instalación.
de lo contrario
Error: No es posible conectarme al servidor en localhost
de lo contrario
No está instalado (!!) MySQL
Por definición un instalador de cualquiera que sea el programa no tiene por que leches presuponer que ya se encuentra instalado el servidor fulano, mengano o perengano. El servidor de bases de datos es un programa INDEPENDIENTE de la aplicación en cuestión por lo que lo más que puede hacer el instalador es preguntar en donde se supone que está instalado y actuar en consecuencia:
Código:
Desempaqueta la DLL que usa el componente mediante el cual te conectas a MySQL
(Zeos, MyDac, "MyAbuela") en la carpeta del instalador.
Escribe "Te advierto que para instalar este programa es necesario que previamente esté
instalado MySQL y que hayas dado de alta un usuario válido con privilegios en la base de datos "xxxx".
Pregunta "Dame la dirección del servidor MySQL?"
Pregunta "Con qué usuario voy a entrar a MySQL?"
Pregunta "Con qué password?"
Si puedo conectarme al servidor con los datos indicados
voilá...procede a crear la base de datos y crear las tablas.
continúa la instalación.
de lo contrario
Error: No fue posible conectarse al servidor indicado con los datos proporcionados.
Por mera seguridad hay que dar de alta el usuario de MySQL y crear la base de datos a la cual tendrá acceso. No quiero ni pensar en que se les ocurra darle el root como usuario para que haga lo que se le pegue la gana con las bases de datos.
Mis chavos, no se confundan, MySQL, FireBird, Posgress y SQL Server son todas aplicaciones INDEPENDIENTES de su software y por mucho que quieran automatizar las tareas NUNCA deben instalarse al mismo tiempo. No por nada en muchos proyectos de desarrollo se asigna un DBA para que se haga cargo de pelearse con el motor de su elección a condición de que podamos hacer lo que necesitamos con las tablas.
Como ya mencioné y al parecer nadie leyó, si mi aplicación necesita MySQL debo indicarlo en la documentación y al principio de la instalación. El usuario "es responsable" de tener instalado MySQL y con el ususario que se le pide para poder continuar.
Pero en fin, si queremos seguir haciendo chapuzas pues hagámoslas que caray.