Tengo varias bases de datos mysql y deseo realizar algunas tareas de administración en una base de datos en particular. ¿Cómo me aseguro de que nadie más pueda conectarse a esa base de datos mientras las tareas están en progreso?¿Cómo bloqueo exclusivo de la base de datos mysql?
Respuesta
usted tiene un par de opciones, como yo lo veo:
apagado
mysqld
, el demonio que las conexiones que se establezcan las bases de datos. Esto tiene la desventaja de evitar el acceso a todas las bases de datos de MySQL en esa computadora.Mueva el archivo o cambie los permisos de acceso a él, para que solo su usuario pueda trabajar con él. (No tengo idea de si esto funcionará.) Los archivos de la base de datos se encuentran en algún lugar como
/var/lib/mysql
. ¡No olvide que cuando termine de cambiarlos, vuelva a utilizar algo con lo quemysqld
podrá trabajar!
¡Buena suerte!
Al parecer, se puede utilizar el comando FLUSH para este como tal:
>
FLUSH TABLES WITH READ LOCK;
y luego TABLAS
>
UNLOCK;
para desbloquear la base de datos de nuevo. No está seguro de si alguna configuración debe establecerse en las tablas para permitir un readlock. Puede probar esto tratando de hacer una inserción manual después de que la base de datos esté bloqueada y si recibe un mensaje de error acerca de la tabla que está siendo bloqueada, usted sabe que funcionó.
Si se lo puede permitir detener el servidor durante el tiempo de mantenimiento, detener el demonio y reconfigurarlo para no escuchar las conexiones de red. Solo permite conexiones a través de un socket UNIX local.
Luego, inicie sesión localmente en la misma máquina, ya sea físicamente o mediante SSH. Mientras nadie más tenga acceso a la máquina, esto garantizará que estés solo. Cuando termine, restaure el archivo de configuración original y reinicie el daemon.
Un enfoque diferente sería desactivar temporalmente todas las cuentas de usuario pero "raíz" (o lo que sea que use para hacer su mantenimiento) para la base de datos particular. Sin embargo, esto tiene el inconveniente de interferir realmente con los datos de la cuenta, lo cual es un poco más arriesgado que solo prevenir conexiones de red.
- 1. NHibernate: bloqueo exclusivo
- 2. Actualización de boost :: shared_lock al bloqueo exclusivo
- 3. MySQL InnoDB bloqueo muerto en SELECT con bloqueo exclusivo (FOR UPDATE)
- 4. ¿Cómo volcar la base de datos mysql?
- 5. Error al tirar de la base de datos mysql en la base de datos mysql local
- 6. MySQL - seleccione la base de datos
- 7. Cómo copiar una tabla de una base de datos mysql a otra base de datos mysql
- 8. Conseguir bloqueo exclusivo de todo el sistema en Java
- 9. ¿Cómo obtener acceso exclusivo a la base de datos SQL Server 2005 para restaurar?
- 10. ¿Cómo elimino una base de datos MySQL?
- 11. Clonar base de datos MySQL
- 12. ¿Cómo obtener el tamaño de la base de datos mysql?
- 13. base de datos SQLite Android local, bloqueo, y la versión
- 14. Rieles, cómo migrar datos de la base de datos de desarrollo sqlite3 a la base de datos de producción MySQL?
- 15. ¿Cuál es la diferencia entre un bloqueo exclusivo y un bloqueo compartido?
- 16. cómo agregar súper privilegios a la base de datos mysql?
- 17. cómo almacenar video en la base de datos usando mysql?
- 18. Cómo insertar DECIMAL en la base de datos MySQL
- 19. Cómo conectar la base de datos MySQL con Dart?
- 20. cómo conectar F # a la base de datos MySQL?
- 21. ¿Cómo restaurar la base de datos MySQL desde WAMP?
- 22. ¿Cómo almacenar Euro Symbol en la base de datos mysql?
- 23. ¿Cómo conectar páginas html a la base de datos mysql?
- 24. ¿Cómo insertar un archivo en la base de datos MySQL?
- 25. ¿cómo puedo exportar la base de datos mysql usando ssh?
- 26. importación de base de datos MySQL
- 27. Guardar datos en árabe en la base de datos MySQL
- 28. conexión de base de datos sqlite/pregunta de bloqueo
- 29. leyendo la imagen BLOB de la base de datos MySQL
- 30. Nombre de base de datos MySQL predeterminado
Esta es la respuesta correcta. Usamos esto para crear instantáneas de bases de datos completas para crear nuevos esclavos de replicación. – Evert
Tuve que arreglar el enlace (la línea MySQL 6.0 se eliminó a favor de un ciclo de publicación diferente, como se explica en http://lists.mysql.com/packagers/418). He hecho que el enlace apunte a los documentos para 5.7, que es actualmente la versión más reciente disponible. Aparte de eso, un gran +1: Esto es lo que (la mayoría) de las respuestas de SO deberían ser: concisas, precisas e incluyendo un puntero a recursos confiables para aquellos que quieran profundizar en el tema. –