expire - mysql log sql
intente cambiar el directorio de registro bin: mysql-bin.index no encontrado(Errcode: 13) (12)
/ usr / sbin / mysqld: No se encontró el archivo ''/usr/binlogs/mysql-bin.index'' (Código de error: 13)
Me funcionó con:
chown -R mysql: mysql / usr / binlogs /
MySQL 5.1.54 Ubuntu 11.04
Intento cambiar el directorio de registro bin en my.conf como:
[mysqld]
log_bin=/home/developer/logs/mysql/mysql-bin.log
Después de estos cambios, el servidor MySQL no puede comenzar con un error:
/usr/sbin/mysqld: File ''/home/developer/logs/mysql/mysql-bin.index''
not found (Errcode: 13)
111005 12:47:58 [ERROR] Aborting
El permiso para el directorio / home / developer / logs / mysql / is 0777
¿Que esta pasando?
mysqld: No se encontró el archivo ''/data/log/mysql/mysql-bin.index'' (Código de error: 2 - No existe tal archivo o directorio)
Estaba realmente atrapado en la mitad de mi configuración de Master - Slave de MySQL. Finalmente, lo anterior fue un problema de permisos, y agregar el siguiente comando resolvió mi problema.
chown -R mysql: mysql / data / log / mysql /
¿Tiene su usuario acceso a todos los directorios superiores? En especial, el directorio / home / developer /? Intente iniciar sesión con la cuenta del servidor mysql y toque el archivo de registro.
Al igual que un FYI para cualquiera que se encuentre con un problema similar, la solución es básicamente la misma, pero la causa del problema no es obvia.
Después de actualizar Debian wheezy, mysql no pudo iniciar.
De alguna manera, no tengo idea de cómo, los permisos en algunos de los archivos en /var/lib/mysql
no eran propiedad del usuario de mysql, lo que impide que el servidor se inicie.
Un chown -R mysql.mysql /var/lib/mysql
corrigió.
No hice nada para estropear mysql, era un estándar:
apt-get update
apt-get upgrade
Algo se estropeó durante la actualización de Debian y fue necesaria la intervención manual.
Como de costumbre, la solución fue simple pero no obvia: necesitaba editar la configuración de apparmor que acabo de agregar a /etc/apparmor.d/usr.sbin.mysqld una nueva cadena con la ruta al directorio de destino: / home / developer / logs / * rw
¡Funciona!
Debe otorgar permisos de usuario al directorio de la siguiente manera:
chown -R mysql:mysql /home/developer/logs/mysql/
Durante la configuración de la replicación en el archivo "my.cnf" es necesario mencionar
server-id = 1 log_bin = / var / log / mysql / mysql-bin.log
Usted puede hacer su propio directorio y dar permiso. cree el directorio "mysql" en / var / log /
chmod 777 mysql
esto es aplicable con MySQL versión 5.7
Opción 1:
service mysqld stop
Copie los archivos de registro, incluido el archivo .index, en la nueva ubicación.
cp mysql-bin.log* /path/to/binlogs cp mysql-bin.index /path/to/binlogs
Hacer cambios en el archivo
/etc/my.cnf
.[mysqld] log-bin=/path/to/newdirecory/mysql-bin log-bin-index=/path/to/newdirectory/mysql-bin.index
service mysqld start
Opcion 2:
Utilice esta utilidad para reubicar registros binarios:
mysqlbinlogmove --binlog-dir=/server/data /new/binlog_dir
Selinux podría imponer la regla de que los archivos de la base de datos MySQL deben residir en / var / lib / mysql y no en ningún otro lugar. Intente desactivar selinux (selinux = 0 en la línea de comandos de arranque del kernel) si movió mysql a otro directorio.
Su configuración es incorrecta:
log_bin=/home/developer/logs/mysql/mysql-bin.log
Usted usaría en su lugar
log-bin=/home/developer/logs/mysql/mysql-bin.log
También puede comentar la línea en el archivo my.cnf
que define la ubicación del registro, por lo que mysql considerará su ruta predeterminada y se iniciará correctamente.
log-bin = /var/log/mysql/mysql-bin.log
-> #log-bin = /var/log/mysql/mysql-bin.log
.
Esto será útil si no está preocupado por los registros.
Tuve un problema similar cuando intentaba cambiar la variable datadir durante una instalación nueva. La solución en mi caso fue ejecutar la primera vez que se inicia con log-bin deshabilitado. Después de eso pude habilitarlo nuevamente usando la nueva ruta ...