Instalación Automatica de Mysql en Windows

Actualmente estoy trabajando en un sistema en Visual Basic .Net que usa Mysql como motor de base de datos. Me encargaron que le hiciera un instalador en el cual integrara la aplicación, la base de datos, así como la configuración de la misma. Lo ideal hubiera sido usar Sqlserver Express como base de datos de tipo embebida, pero por cuestiones de premura en el tiempo de entrega del proyecto (que raro…), se optó por hacer la instalación automática.

Empecé por bajar el paquete .zip Noinstall de la pagina oficial de Mysql. Una vez descomprimido este archivo en la carpeta de instalaciones (Archivos de programa\Mysql, por ejemplo) quedará listo para seguir con la instalación del servicio y configuraciones iniciales de la base. Esto lo hice con in archivo .bat el cual  contiene lo siguiente.

Instala el servicio Mysql (lo instala en modalidad de arranque automático al iniciarse el sistema)

C:\(Carpeta de instalación mysql)\bin>mysqld -- install

Lo siguiente es arrancar el servicio desde la linea de comando, pero antes de eso se necesita tener un archivo de configuración. Éste por default Mysql lo busca en la carpeta donde está instalado. Como referencia, debe de ir en la ubicación donde están unos archivos .ini que deja de ejemplo la instalación. Aquí lo que hice es que tomé el ini que generó una instalación con el asistente que tenia en otro equipo, si no se puede usar cualquiera de los de ejemplo, solo renombrandolo a my.ini. Posiblemente haya que reapuntar algunas rutas en el .ini hacia la carpeta donde están los archivos de Mysql.

Ahora si, arrancar el servicio con el comando NET

C:\(Carpeta de instalación mysql)\bin>NET START MYSQL

Si no arranca puede probarse con la instrucción mysqld — console . Esta ejecución genera mensajes de error si es que los hay.

A este punto ya tenemos listo nuestro servidor Mysql. Pero faltan las configuraciónes de acceso de usuarios, porque el server de inicio deja la base con el acceso anónimo activado y aparte nos deja el usuario root sin password. Esto se hace con las siguientes instrucciones:

delete from mysql.user where host = 'localhost' and user = '';
update mysql.user set password = password('nuevopwd') where user = 'root';
flush privileges;

Estas lineas las dejé al principio del script .sql que uso para crear la base de datos e insertar los datos iniciales, el cual mando ejecutar desde el .bat de la siguiente manera:

C:\(Carpeta de instalación mysql)\bin>mysql -u root < "(ruta\del\archivo)script.sql

Y con esto ya está completo el .bat que instala y configura la base de datos.

Para generar el archivo de instalación que copia el Noinstall, ejecuta el .bat e instala los archivos necesarios para que la aplicación corra,  primero intenté con InstallShield con no muy buenos resultados, entonces opté por Inno Setup una solucion OpenSorce que recomiendo ampliamente por su legereza y facil configuración. Una vez mas el software libre salvando mi traserín.

Basado en la documentación en linea de Mysql.

8 Comentarios del post “Instalación Automatica de Mysql en Windows”

  • Teresa says:

    Hola estoy haciendo justo lo mismo, pero no tengo mucha experiencia. de que archivo .bat hablas? lo hiciste paquete??? lo que hiciste fue instalar la carpeta en el cliente y con el my.ini y correr el mysqld.exe? a eso te refieres con arrancar el comando .net?

    Perdona tantas preguntas y te agradezco de antemano tu atencion.

  • Percles says:

    Muchisimas gracias compadre… estoy apenas leyendo tu post pero es exactamente el problema que me a estado aquejando hace un rato… espero que con esto quede… pero me haz dado un super nortazoo …. geacias!!!

  • panduro says:

    Eres una verga!! jaja gracias

  • GER says:

    Hola.

    Me queda muy claro que para todo esto se tiene que hacer un bat, pero donde tengo broncas y que no me corre el bat es en lo siguiente:

    En la instruccion:

    delete from mysql.user where host = ‘localhost’ and user = ”;
    update mysql.user set password = password(‘nuevopwd’) where user = ‘root’;
    flush privileges;

    Tengo que poner el password que yo quiera en los parentesis password(‘nuevopwd’)?

    y en la instruccion:

    C:\(Carpeta de instalación mysql)\bin>mysql -u root < "(ruta\del\archivo)script.sql

    que debo de poner en los parentesis (ruta\del\archivo)script.sql

    Mi base de datos esta instalada en: C:\Program Files\MySQL

    Saludos cordiales

  • Daniel says:

    Hola. Mira tengo un problema yo.. como hago para qe ejecute los comandos dentro del MYSQL, por que cuando llega a esa parte no me hace nada.. por que dentro del mysql no me toma el bat.. hasta antes todo perfecto pero despues se me queda quieto.
    muchas gracias espero tu respuesta.

  • Luison says:

    Muy buena tu colaboración, estoy necesitando excatamente algo similar.
    Tengo problemas con la creación del .bat

    Podrias compartir tu archivo? Nos seria de gran ayuda hermano.

    Gracias..

  • Sergio says:

    Hola, tengo el mismo problema que daniel, al ejecutar el .bat me abre el terminal con mysql pero se queda quieto no ejecuta el comando te muestro un ejemplo:

    @echo off

    echo Actualizar …

    pause

    cd “C:\xampp/mysql/bin/”

    start mysql.exe -u root basedatos < C:\fichero.sql

    pause

    exit

  • Por favor puedes poner un link donde descargar el archivo.bat, es justo el problema que tengo y ya me volvi loco buscando una solucion efectiva, pero aun no la consigo

Deja un comentario de este post