
Estoy ejecutando MySQL 5.5 en Ubuntu.
Hay un archivo my.cnf en /etc/mysql/ donde esperaría que estuviera. - ¡Excelente!
Para instalaciones Debian de mysql, se recomienda no editar el archivo my.cnf. Hay una directiva IncludeDir en el archivo /etc/mysql/my.cnf para buscar en la carpeta /etc/mysql/conf.d/ más archivos de opciones.
Cuando coloco este archivo aquí:
/etc/mysql/conf.d/my-local.cnf
MySQL lee el archivo y anula cualquier cosa en /etc/mysql/my.cnf.
¡Excelente! :-)
Aquí está el problema:
Mantengo mi copia local del archivo /etc/mysql/conf.d/my-local.cnf en el control de código fuente y quiero actualizarlo periódicamente para todo el equipo. Entonces, mi solución es vincularlo simbólicamente:
cd /etc/mysql/conf.d/
ln -s /path/to/my/my-local.cnf my-local.cnf
MySQL no lee este enlace simbólico.
He verificado lo siguiente:
- Tanto el archivo físico como el enlace simbólico tienen la extensión de archivo .cnf según el manual de MySQL.
- El usuario de MySQL tiene acceso a este archivo.
- Cada usuario tiene acceso a este archivo.
- El usuario de MySQL tiene acceso al enlace simbólico.
- Cada usuario tiene acceso al enlace simbólico.
Para resumir, MySQL leerá y analizará cuando haya un archivo físico en la carpeta /etc/mysql/conf.d/. MySQL no leerá un enlace simbólico en esta carpeta.
¿Alguien tiene alguna idea? ¿Podría ser esto un problema de Debian/ubuntu?
Se describió un problema similar, pero no resuelto y ligeramente diferente.aquí.
Respuesta1
Apparmor no sabe nada sobre la nueva ubicación delmy.cnf
El servidor MySQL sigue el enlace simbólico e intenta abrir el destino. Pero Apparmor lo niega.
Para solucionar el problema, debe agregar la ruta al my.cnf
directorio/etc/apparmor.d/usr.sbin.mysqld
Respuesta2
Puede deberse a una aplicación que está habilitada para mysqld de forma predeterminada desde ubuntu 9.0.4. Por favor mirahttp://en.wikipedia.org/wiki/AppArmor.
Puede modificar las adiciones específicas del sitio en /etc/apparmor.d/local/. Sufrí el mismo problema y edité /etc/apparmor.d/local/usr.sbin.mysqld para que funcione. Tenga en cuenta la última coma en el archivo de política.
# Site-specific additions and overrides for usr.sbin.mysqld. # For more details, please see /etc/apparmor.d/local/README. # vim:syntax=apparmor /etc/mysql/conf.d/* rl, @{HOMEDIRS}/** rwk,
- Después de editar /etc/apparmor.d/local/usr.sbin.mysqld, reinicie el servicio apparmor mediante
service apparmor restart
. No debería haber ningún error ni advertencia sobre /etc/apparmor.d/local/usr.sbin.mysqld. - En mi caso, quería usar datadir y my.cnf específico del sitio ubicado en el directorio de inicio de los usuarios.
Respuesta3
Se me ocurren algunas posibilidades:
Cree el enlace simbólico en la otra dirección, es decir
/home/developer/my-local.cnf -> /etc/mysql/conf.d/my-local.cnf
Utilice un enlace físico en su lugar.
Poner
/etc
bajo control de versiones utilizando una herramienta como etckeeper.