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

1

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

Aquí, el proceso que seguí fue:

  1. instale Yosemite en un disco duro externo;
  2. migre datos de MacBook Pro a un disco duro externo;
  3. luego vuelva a formatear la MacBook Pro;
  4. instala Yosemite en MacBook Pro;
  5. actualiza el MacBook Pro a El Capitán;
  6. y migre los datos del disco duro externo a MacBook Pro.

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

Sin embargo, cuando voy al Panel de preferencias para MySQL en Preferencias del sistema, me dicen "La instancia del servidor MySQL no se está ejecutando" y el botón de inicio está deshabilitado.

He realizado varias búsquedas y las sugerencias parecen no coincidir con el problema específico que tengo, o no tengo la confianza suficiente para intentarlas en caso de que empeore.

He consultado el archivo "my.cnf" y las configuraciones están comentadas y tienen valores en blanco (una serie de puntos de marcador de posición).

También, el alias a la carpeta MySQL "mysql" se ha ido.

Además de esto, tengo problemas con el servidor web.

Seguí el consejo en una respuesta de StackOverflow , y mientras detuve algunos de los errores, cuando ejecuto "apachectl configtest "de la Terminal, me sale:

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 competente en la línea de comandos.

En esta etapa, no tengo idea de lo que está pasando.

Editar 1

Hice una copia de seguridad de "httpd.conf" y "extras / httpd-mpm.conf" mientras seguí los errores informados por "apachectl configtest", en cada instancia comentando las líneas ofensivas en lugar de eliminarlas.

Pero después de que 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í.

    
pregunta Wayne Smallman 12.04.2016 - 13:06

2 respuestas

1

MySQL-5.6.14 se instaló con un StartUpItem que es necesario para iniciar MySQL automáticamente al iniciar. Mientras tanto, StartUpItems están en desuso (y, por lo tanto, probablemente no se migró) y en su lugar se usan demonios de lanzamiento.

Para recuperar tu MySQL, haz lo siguiente:

  1. Crea un enlace flexible:

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

    ls -laO /usr/local
    

    El comando debe 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 / nueva línea vacía al final.

    Puede reemplazar --port = 3307 por --port = 3306 según 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 inicio con

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

Recomiendo encarecidamente actualizar a una 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 se ve así:

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

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

    
respondido por el klanomath 13.04.2016 - 01:45
0

El comando 'Orden' ha quedado en desuso. Fue un remanente de Apache 2.2. Usted está utilizando Apache 2.4 ahora. Lo que sospecho que sucedió es que copió sus archivos .conf de Apache 2.2 a su nueva instalación 2.4.

En algún lugar de tus archivos httpd.conf debajo de las secciones, tienes algo como esto:

Order deny,allow 
Deny from all

Lo que debes hacer, es reemplazarlo con

Require all denied

Además, asegúrese de que está cargando los módulos enumerados a continuación. Simplemente busque en su archivo httpd.conf las siguientes líneas:

  • LoadModule authz_core_module modules/mod_authz_core.so
  • LoadModule authz_host_module modules/mod_authz_host.so
respondido por el Allan 13.04.2016 - 16:09

Lea otras preguntas en las etiquetas