1 votos

La actualización a El Capitán ha roto MySQL y Apache

Debido a circunstancias imprevistas, me vi obligado a actualizar a OS X 10.11 (El Capitan).

Aquí, el proceso que seguí fue el siguiente:

  1. instalar Yosemite en un disco duro externo;
  2. migrar los datos del MacBook Pro al disco duro externo;
  3. y volver a formatear el MacBook Pro;
  4. instalar Yosemite en el MacBook Pro;
  5. actualizar el MacBook Pro a El Capitán;
  6. y migrar los datos del disco duro externo al MacBook Pro.

Durante la migración, he conseguido mantener las bases de datos para MySQL, y parece ser la misma versión que tenía con Mavericks (mysql-5.6.14-osx10.7-x86_64).

Sin embargo, cuando voy al panel de preferencias de MySQL en las Preferencias del Sistema, me dice que "la instancia del servidor MySQL no se está ejecutando" y el botón de inicio está desactivado.

He hecho varias búsquedas y, o bien las sugerencias no parecen coincidir con el problema concreto que tengo, o bien no tengo la suficiente confianza para probarlas por si empeoro las cosas.

He mirado en el archivo "my.cnf" y los ajustes están comentados y tienen valores en blanco (una serie de puntos de marcador de posición).

Además, el alias de la carpeta MySQL "mysql" ha desaparecido.

Además de esto, estoy teniendo problemas con el propio servidor web.

He seguido los consejos de un Respuesta de StackOverflow y si bien detuvo algunos de los errores, cuando ejecuto "apachectl configtest" desde la Terminal, obtengo:

AH00526: Syntax error on line 183 of /private/etc/apache2/httpd.conf:
Invalid command 'Order', perhaps misspelled or defined by a module not included in the server configuration

No hace falta decir que no soy tan hábil en la línea de comandos.

A estas alturas, no tengo ni idea de lo que está pasando.

Edición 1

Hice una copia de seguridad tanto de "httpd.conf" como de "extras/httpd-mpm.conf" mientras seguía los errores reportados por "apachectl configtest", en cada caso comentando las líneas ofensivas en lugar de borrarlas.

Pero después terminé con:

"AH00526: Syntax error on line 25 of /private/etc/apache2/extra/httpd-autoindex.conf:
Invalid command 'Order', perhaps misspelled or defined by a module not included in the server configuration"

... Me rendí.

1voto

klanomath Puntos 19587

MySQL-5.6.14 fue instalado con un StartUpItem que es necesario para iniciar automáticamente MySQL durante el arranque. StartUpItems están obsoletos mientras tanto (y probablemente no se ha migrado por ello) y en su lugar se utilizan demonios de lanzamiento.

Para recuperar tu MySQL haz lo siguiente:

  1. Crear un enlace suave:

    sudo ln -s /usr/local/mysql-5.6.14-osx10.7-x86_64 /usr/local/mysql
  2. Comprueba los permisos:

    ls -laO /usr/local

    El comando debería revelar:

    ...
    lrwxr-xr-x   1 root  wheel  -  27 13 Apr 00:04 mysql -> mysql-5.6.14-osx10.7-x86_64
    drwxr-xr-x  17 root  wheel  - 578 13 Apr 00:05 mysql-5.6.14-osx10.7-x86_64
    ...
  3. Cree el archivo /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist con el siguiente contenido:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
        <key>Label</key>             <string>com.oracle.oss.mysql.mysqld</string>
        <key>ProcessType</key>       <string>Interactive</string>
        <key>Disabled</key>          <false/>
        <key>RunAtLoad</key>         <true/>
        <key>KeepAlive</key>         <true/>
        <key>SessionCreate</key>     <true/>
        <key>LaunchOnlyOnce</key>    <false/>
        <key>UserName</key>          <string>_mysql</string>
        <key>GroupName</key>         <string>_mysql</string>
        <key>ExitTimeOut</key>       <integer>600</integer>
        <key>Program</key>           <string>/usr/local/mysql/bin/mysqld</string>
        <key>ProgramArguments</key>
            <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/mysqld.local.err</string>
                <string>--pid-file=/usr/local/mysql/data/mysqld.local.pid</string>
                <string>--port=3307</string>
            </array>
        <key>WorkingDirectory</key>  <string>/usr/local/mysql</string>
    </dict>
    </plist>

    El archivo necesita una línea vacía al final/una nueva línea.

    Puede sustituir --port=3307 por --port=3306 dependiendo de su configuración anterior.

  4. Cambia los permisos del archivo:

    sudo chown root:wheel /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist
    sudo chmod 644 /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist
  5. Cargar el demonio de lanzamiento con

    sudo launchctl load -w /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist

Recomiendo encarecidamente que se actualice a un versión más reciente de MySQL.


Errores de apache:

El error

AH00526: Syntax error on line 183 of /private/etc/apache2/httpd.conf:
Invalid command 'Order', perhaps misspelled or defined by a module not included in the server configuration

está relacionado con el antiguo archivo de configuración de Apache (10.9) que está utilizando:

    <Directory />
        Options FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
    </Directory>

En el nuevo archivo de configuración de Apache (10.11) la sección tiene el siguiente aspecto:

    <Directory />
        AllowOverride none
        Require all denied
    </Directory>

Recomiendo configurar Apache con un archivo de configuración 2.4 (incluido en 10.11).

0voto

Douglas Puntos 10417

El comando 'Order' ha quedado obsoleto. Era un remanente de Apache 2.2. Ahora estás usando Apache 2.4. Lo que sospecho que ha ocurrido es que has copiado tu .conf de Apache 2.2 a su nueva instalación 2.4.

En algún lugar de sus archivos httpd.conf bajo las secciones, tiene algo como esto:

Order deny,allow 
Deny from all

Lo que tienes que hacer es sustituirlo por

Require all denied

Además, asegúrese de que está cargando los módulos que se indican a continuación. Sólo tiene que buscar en su httpd.conf para las siguientes líneas:

  • LoadModule authz_core_module modules/mod_authz_core.so
  • LoadModule authz_host_module modules/mod_authz_host.so

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