3 votos

No se puede Cambiar de Registro de Errores de Ubicación Para MySQL 5.7 en Ubuntu 16.04

Siempre que puedo cambiar la ubicación del registro

forma: /var/log/mysql : /var/www

en el fin de mantener todos los archivos de registro en el mismo lugar (justo debajo de la carpeta pública) en mysqld.cnf mysql server no se puede reiniciar.

/etc/mysql/mysql.conf.d/mysqld.cnf

log_error = /var/log/mysql/mysql_errors.registro de

Me registré para algunas soluciones, y añadió:

conjunto de caracteres del servidor = utf8

intercalación del servidor = utf8_general_ci

Pero aún no funciona. /var/www ha 770 permisos y la pertenencia a www-data group.

He añadido mysql a www-data group:

sudo usermod -aG www-data mysql

Pero aún no funciona.

MySQL: 5.7.19

Ubuntu: 16.04.1

Aquí está el registro de error:

Trabajo para mysql.servicio de error debido a que el proceso de control salido con el código de error. Consulte "systemctl status de mysql.servicio" y "journalctl -xe" para más detalles.

mysql.servicio: proceso Principal se sale, código=salido, estado=1/FRACASO

Siempre que puedo deshacer el registro de cambio de ubicación, comienza a trabajar.


EDITAR 31.07.2017

Yo después de ejecutar este registro de cambio de ubicación:

sudo touch /var/www/mysql_errors.log
sudo chown mysql:mysql /var/www/mysql_errors.log
sudo chmod 770 /var/www/mysql_errors.log

sudo systemctl restart mysql

sudo journalctl -xe > ~/journal.txt

Aquí están el correspondiente registro de entidades:

-- Unit mysql.service has begun starting up.
Jul 31 00:33:55 mydomain.com audit[1738]: AVC apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/proc/1738/status" pid=1738 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=112 ouid=112

Jul 31 00:33:55 mydomain.com audit[1738]: AVC apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/var/www/mysql_errors.log" pid=1738 comm="mysqld" requested_mask="ac" denied_mask="ac" fsuid=112 ouid=112
Jul 31 00:33:55 mydomain.com audit[1738]: AVC apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" 

Jul 31 00:33:55 mydomain.com systemd[1]: mysql.service: Main process exited, code=exited, status=1/FAILURE

2voto

George Puntos 628

Ahora se basan en el enlace proporcionado y otro recurso sobre la relación entre AppArmor y Mysql I fue capaz de llegar al trabajo. La política que rige mysql es cargado desde esta ubicación de /usr/sbin/mysqld que se puede ver al ejecutar: sudo aa-status. Esto puede ser alterada de,:

/etc/apparmor.d/usr.sbin.mysqld

y

/etc/apparmor.d/local/usr.sbin.mysqld

Voy a ser la alteración de la última.

Pasos:

  1. He creado una carpeta /var/www/html/mysql y con colocar un archivo (error.log) en ese país. Creo mysql buscará un archivo. Ahora este es mi costumbre ubicación de registro.

  2. Abra el /etc/appparmor.d/local/usr.sbin.mysqld y añadir las siguientes líneas:

    /var/www/html/mysql/ r,
    /var/www/html/mysql/** rwk,
    
    • Interpretación:
      • /var/www/html/mysql/ r,:--> dar mysql acceso de lectura a la carpeta.
      • /var/www/html/mysql/** rwk,:--> dar mysql leer, escribir y bloquear el acceso a los contenidos allí.
  3. Abra /etc/mysql/mysql.conf.d/mysqld.cnf y cambiar la ubicación del registro:

    #log_error = /var/log/mysql/error.log
    log_error = /var/www/html/mysql/error.log
    
  4. Ahora reinicie apparmor: sudo systemctl restart apparmor

  5. Ahora reinicie mysql: sudo systemctl restart mysql

Nota:

  1. Me puse el usuario:grupo de /var/www/html a $USER:www-data y los permisos para:
    • usuario: rwx,
    • grupo: rwx, y
    • otros: r-x
  2. Agregó mysql usuario www-data grupo:

    sudo usermod -a -G www-data mysql
    

Teoría:

Apparmor es Ubuntu manera de asegurarse de que no hay un control más fino sobre quién tiene acceso al sistema de archivos y cómo se hace. Dispone de dos modos, hacer cumplir y se quejan de los modos. El modo de imposición es donde mysql cae bajo ( para ver estas ejecutar sudo aa-status).

Usted puede cambiar mysql a complain mode donde apparmor solo se quejan pero no prevenir mysql el acceso a otras áreas del sistema de archivos. En este caso elijo la enforce mode y simplemente alteración de la apparmor política para mysql A alterar estos apparmor modos tenemos que instalar apparmor-utils y, a continuación, sólo se podía hacer sudo aa-complain /usr/sbin/mysqld y apparmor ahora solo se quejan del sistema de ficheros violaciones mysql.

Dos lugares se utilizan para alterar la política, estos son (1) /etc/apparmor.d/usr.sbin.mysqld, y (2)/etc/appamrmor.d/local/usr/sbin/mysqld. Que elegido dependerá el tipo de cambio deseado (para toda la red o específico de máquina). Para alterar al conjunto de sus planes.

De recursos(por favor, mira a estos):

https://blogs.oracle.com/jsmyth/apparmor-and-mysql

https://blogs.oracle.com/jsmyth/selinux-and-mysql

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X