Mostrando entradas con la etiqueta instalación. Mostrar todas las entradas
Mostrando entradas con la etiqueta instalación. Mostrar todas las entradas

jueves, 19 de noviembre de 2015

Mysqld arranca y se para... sin más, y de instalarlo como servicio de windows

Esto es más viejo que la tos pero el hombre es el único animal que tropieza con rayas pintadas en el suelo... Pasa que estoy jugando con MySQL e intento iniciar el servidor desde línea de comandos pero especificando un archivo de defaults concreto.

Por lo que sea, estaba intentando mysqld -u root --defaults-file="myB.ini" y ni flores. El problema es el orden de los argumentos.

mysqld --defaults-file="myB.ini" -u root

Y pensando un poco más, ¿para qué el "-u root"? Mysqld pone en marcha el servidor y no necesita usuario —hay una opción -u para arrancarlo con otro usuario diferente de root, eso sí— pero la cuestión es que son los clientes los que han de conectarse identificados para poder hacer algo con él. Otra cosa es que tú, desde el sistema operativo, tengas permisos o no para ejecutar mysqld.

Total, que si hubiera empezado con solo mysqld --defaults-file="myB.ini" me hubiera ahorrado todo el follón.

La de tiempo que he gastado... cuando lo dice hasta en la ayuda del mysqld.

La otra ha sido intentar instalarlo como servicio. Otro montonazo de tiempo hasta que me he dado cuenta de que si no has hecho una instalación de las de "sí, sí y sí" todo cambia. En mi caso que la ruta exacta de la carpeta del programa es "C:\Program Files\mysql". Para que el servicio se instale correctamente hay que darle todas las rutas:

"C:\Program Files\mysql\bin\mysqld" --install MySQLB --defaults-file="C:\Program Files\mysql\myB.ini"

Si no lo hacemos así, el servicio se registra con una ruta como "C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqld.exe", vamos, la que los de MySQL hubieran querido. Pero yo no.

Como digo, anciano, pero este blog es para no volver a tropezar, al menos no en la misma raya pintada.

sábado, 13 de octubre de 2012

Xampp, MySQL y las segundas instancias

Se me ocurre, a raiz de lo publicado en FBDblog, realizar una demo en vídeo sobre un sistema limpio. Me creo una máquina virtual con Win7x64 y me pongo a instalar Xampp. Lo hago todo y a la hora de poner en marcha la segunda instancia... no va.

Le he tirado horas, oiga. También es cierto que en mi máquina "real" MySQL está instalado de forma independiente de Xampp pero, vamos, "debería ir".

A ver, la secuencia ha sido, aparte de copias de carpetas y ficheros de configuración,

mysqld --install mysql2 --defaults-file="c:\xampp\mysql\bin\my2.ini"
net start mysql2

Y ahí nos quedábamos.

He encontrado la solución, finalmente, y ha sido desintalar el servicio original que Xampp puso en marcha durante la instalación:

net stop mysql
mysql --remove mysql
mysqld --install mysql --defaults-file="c:\xampp\mysql\bin\my.ini"
net start mysql
net start mysql2

Lo que he deducido es que el mysql que instala xampp no lee fichero de configuración alguno sino que carga con las opciones por defecto, que vete a saber cuáles son, y en algún punto las dos instancias intentaban compartir algún recurso que no debían. 

Conste que no a todos les pasará. Esto me ha pasado a mí con xampp-1.8.1-VC9 y no tengo idea de en qué punto metí la pata en la instalación, si así fue.

Cosas de la vida.

lunes, 24 de septiembre de 2012

MySQL, el error 87 y cambiar ubicación de las bases de datos

Esta ha sido de las gordas. El objetivo era cambiar la ubicación de los archivos de datos de mi servidor de pruebas MySQL, el que tengo instalado en mi ordenador de casa. Obviamente, acceso total a cualquier parámetro de configuración. Si instalas con típico "sí, sí y sí" es normal que se cree una carpeta en C:/ProgramData/MySQL/MySQL Server 5.5/Data/ que es donde va a para el conjunto de nuestras bases de datos y los ficheros necesarios para INNODB. Bien, ya no lo quiero ahí, lo quiero en X:/Carpeta/MySQL/Data/ (lo de las barras invertidas es porque el my.ini lo pone, y creo que necesita, así). 

En realidad, es fácil, hay varios sitios que te dicen como hacerlo. Solo hay que cambiar una variable en el my.ini (recuerda, "estoy" en Windows):
#Path to the database root
datadir="X:/Carpeta/MySQL/Data/"
Por supuesto, con el servidor apagado, este cambio se tiene en cuenta al iniciarlo.

Pues me ha ocurrido una cosa graciosa. Todo viene de que tengo 2 discos y lo estaba cambiando del disco C al D, pongamos. Pues no iba. Me he puesto duro, he entrado en un terminal con cmd.exe y arrancaba con mysqld.exe. He retocado mil veces el my.ini, cambiando de sitio, poniendo barras en un sentido y en otro ('/' por '\'). Que no. Todo el rato, la salida de mysqld era llegar a la zona de innodb y 

120924 14:18:17  InnoDB: Operating system error number 87 in a file operation.
InnoDB: Some operating system error numbers are described at
InnoDB: http://dev.mysql.com/doc/refman/5.5/en/operating-system-error-codes.html
InnoDB: File name .\ib_logfile0
InnoDB: File operation call: 'aio read'.
InnoDB: Cannot continue operation.

Claro, ponte a leer lo que te dicen y como que no te enteras. Lo curioso es que la misma operación pero dentro del disco C, es decir, otra carpeta pero en el mismo disco, SÍ funciona.

Al final he conseguido la solución, me la ha dado Websofia, una línea más my.ini:

innodb_flush_method=normal
 
Muy acertadamente, ofrece enlaces a su particular investigación y en este enlace avisan de que hay un error gordo, un bug de esos, que hace que si tienes un disco GPT la cosa no chute. Los detalles más técnicos se van desgranando en esa página pero al principio ya describen lo que me ocurría a mí, un disco con más de 2GB en Windows, el disco D. En el disco C funcionaba porque se trataba de un particionamiento MBR normalito y corrientito, de los de toda la vida.

Como lo oyen, perdón, lo leen. Para encontrarlo fácil, fácil. Menos mal que soy de los que reinstalan solo si la desesperación me lleva a ver burros volando.