3 votos

¡ERROR! No se ha encontrado el archivo PID del servidor MySQL.

He reinstalado MacOS Sierra en mi máquina. Después de instalar Oracle MySQL Community Server 5.7.15 (mysql-5.7.15-osx10.11) he intentado parar el servidor MySQL desde la consola. Me ha salido el siguiente error "¡ERROR! No se ha encontrado el archivo PID del servidor MySQL".

He investigado por mi cuenta pero no he conseguido encontrar una solución a mi problema.

¿Alguna sugerencia?

6voto

klanomath Puntos 19587

Iniciando y parando el servidor MySQL a través del Panel de Preferencias/launchd y por otro lado a través de sudo /usr/local/mysql/support-files/mysql.server start/stop no son realmente compatibles.

Después de elegir "Launchd Support" en el instalador de MySQL el demonio de lanzamiento com.oracle.oss.mysql.mysqld será creado y el panel de preferencias de MySQL utiliza el mecanismo launchd para iniciar y detener mysql. Si habilita "Automatically Start MySQL Server on startup", mysqld se habilita automáticamente después de iniciar su Mac.

El nombre del archivo pid creado por el demonio de lanzamiento no es compatible con el creado y esperado por el mysql-server script.

El nombre del archivo pid del demonio de lanzamiento creado mientras se ejecuta es mysql.local.pid El scriptespera un nombre basado en el nombre de host de su Mac, .local o nombre del ordenador.

Así que o bien utiliza el panel pref/launchctl de MySQL o el script para iniciar y detener mysqld.


Hasta cierto punto se pueden hacer compatibles ambos métodos modificando el archivo com.oracle.oss.mysql.mysqld sin embargo:

Después de detener mysql reemplazar la matriz

<array>
    <string>/usr/local/mysql/bin/mysqld</string>
    <string>--user=_mysql</string>
    <string>--basedir=/usr/local/mysql</string>
    <string>--datadir=/usr/local/mysql/data</string>
    <string>--plugin-dir=/usr/local/mysql/lib/plugin</string>
    <string>--log-error=/usr/local/mysql/data/mysql.local.err</string>
    <string>--pid-file=/usr/local/mysql/data/mysql.local.pid</string>
</array>

por

<array>
    <string>/usr/local/mysql/bin/mysqld</string>
    <string>--user=_mysql</string>
    <string>--basedir=/usr/local/mysql</string>
    <string>--datadir=/usr/local/mysql/data</string>
    <string>--plugin-dir=/usr/local/mysql/lib/plugin</string>
    <string>--log-error=/usr/local/mysql/data/$name.err</string>
    <string>--pid-file=/usr/local/mysql/data/$name.pid</string>
</array>

con $nombre: ya sea HostName (por ejemplo, host.ejemplo.com), LocalHostName (por ejemplo, host.local) o ComputerName (por ejemplo, host). Probablemente lo mejor es utilizar un nombre de host. Puede obtener un nombre de host con hostname con scutil --get HostName o configurarlo con sudo scutil --set HostName your_hostname .

También puede obtener el nombre del pid del servidor mysql script realmente utilizado - después de detener el demonio de lanzamiento e iniciar mysqld con mysql-server start - comprobando el directorio de datos de mysql con sudo ls /usr/local/mysql/data . Utilice el nombre que se encuentra allí para ajustar el nombre pid del plist.

Es posible que tenga que convertir el archivo del demonio de lanzamiento a xml para editarlo. La aplicación TextWrangler lo abre como archivo xml inmediatamente.

Recarga el plist con launchctl después.


Ahora debería ser capaz de iniciar y detener con el panel de preferencias de MySQL y el mysql.server script.

Si ha activado la opción "Iniciar automáticamente el servidor MySQL al iniciar", deberá no puede parar el servidor - incluso después de modificar el plist - con el script porque launchd anula cualquier Detener después de unos segundos y lanza mysqld de nuevo.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X