Ich habe mehrere MySQL-Datenbanken und ich möchte einige Verwaltungsaufgaben für eine bestimmte Datenbank ausführen. Wie stelle ich sicher, dass sich niemand während der laufenden Aufgaben mit dieser Datenbank verbinden kann?Wie mysql Datenbank exklusiv sperren?
Antwort
Sie haben ein paar Optionen, wie ich es sehe:
Shutdown
mysqld
, den Dämon, der Verbindungen zu Datenbanken eingerichtet werden. Dies hat den Nachteil, dass der Zugriff auf die mysql-Datenbanken auf diesem Computer verhindert wird.Verschieben Sie die Datei oder ändern Sie die Zugriffsberechtigungen, damit nur Ihr Benutzer damit arbeiten kann. (Ich habe keine Ahnung, ob das funktioniert.) Die Datenbankdateien befinden sich irgendwo wie
/var/lib/mysql
. Vergessen Sie nicht, wenn Sie fertig sind, um sie wieder zu etwas zu ändern, das mitmysqld
arbeiten kann!
Viel Glück!
Offenbar können Sie den FLUSH-Befehl für diese als solche verwendet werden:
>
FLUSH TABLES WITH LOCK READ;
und dann
>
UNLOCK TABLES;
, um die Datenbank erneut zu entsperren. Es ist nicht sicher, ob in den Tabellen eine Einstellung vorgenommen werden muss, um einen Readlock zu ermöglichen. Sie können dies testen, indem Sie versuchen, eine manuelle Einfügung durchzuführen, nachdem die Datenbank gesperrt wurde, und wenn Sie eine Fehlermeldung über die gesperrte Tabelle erhalten, wissen Sie, dass es funktioniert hat.
Wenn Sie den Server für die Zeit der Wartung zu stoppen leisten können, stoppen Sie den Daemon und konfigurieren es nicht zu Netzwerkverbindungen zu hören. Nur Verbindungen über einen lokalen UNIX-Socket zulassen.
Dann anmelden lokal auf der gleichen Maschine, entweder physisch oder per SSH. Solange kein anderer Benutzer Zugriff auf das Gerät hat, ist sichergestellt, dass Sie alleine sind. Wenn Sie fertig sind, stellen Sie die ursprüngliche Konfigurationsdatei wieder her und starten Sie den Daemon neu.
Ein anderer Ansatz wäre, alle Benutzerkonten vorübergehend zu deaktivieren, aber "root" (oder was auch immer Sie für Ihre Wartung verwenden) für die jeweilige Datenbank. Dies hat jedoch den Nachteil, dass Sie mit Kontodaten arbeiten, die ein wenig gefährlicher sind, als nur Netzwerkverbindungen zu verhindern.
- 1. So sperren Sie eine Datenbank in mysql
- 2. ignorieren Sperren in MySQL-Datenbank in sqlalchemy Abfrage
- 3. Wie kann ich eine SQLite-Datenbank sperren?
- 4. Sperren einer SQL Server-Datenbank mit PHP
- 5. MySQL InnoDB Tabelle Sperren beim Export
- 6. mysql sperren Fehler oder Fehler?
- 7. Kann ich auswählen, ohne MySQL zu sperren?
- 8. Sperren und entsperren Datenbankzugriff - Datenbank ist gesperrt
- 9. Wie dump mysql-Datenbank?
- 10. Wie mysql Datenbank wiederherstellen
- 11. Exklusiv oder in regulärem Ausdruck
- 12. Unterschied zwischen inklusiv und exklusiv?
- 13. bitweise Exklusiv-Oder in Oracle
- 14. PostgreSQL exklusiv oder auf Spalteneinstellung
- 15. Kopieren Datenbank Datenbank MySQL Datenbank
- 16. C: XNOR/Exklusiv-Nor-Tor?
- 17. Sind HTTP-Exclude-Erweiterungen exklusiv?
- 18. Qt, Wie SQLite-Datenbank für mehrere Operationen sperren
- 19. Warum verlässt Django Sperren in mysql?
- 20. Wählen Sie Sperren in Rails mit MySQL
- 21. Wie InnoDB zu lösen: Kann ./ibdata1 mysql Fehler nicht sperren?
- 22. Wie man Datenbank exportiert? MySql
- 23. Wie null Datenbank MySQL Query
- 24. Wie man MySQL Datenbank-Verhältnis
- 25. SQL Server-Sperren erklärt
- 26. Wie sperren Benutzer mit Devise?
- 27. Explizite Sperren vs implizite Sperren
- 28. Sperren einer MySQL-Datenbank, so dass nur eine Person gleichzeitig eine Abfrage ausführen kann?
- 29. Sperren einer Datei während Laden/erforderlich
- 30. MySQL-Dump für die Metadaten der Tabelle warten sperren
Dies ist die richtige Antwort. Wir verwenden dies, um Snapshots von ganzen Datenbanken zu erstellen, um neue Replikations-Slaves zu erstellen. – Evert
Hatte den Link zu reparieren (die MySQL 6.0-Zeile wurde zugunsten eines anderen Release-Zyklus fallen gelassen, wie auf http://lists.mysql.com/packagers/418 erklärt). Ich habe den Link zu den Dokumenten für 5.7 gemacht, die aktuellste verfügbare Version. Abgesehen davon, eine große +1: Das ist, was (am meisten) SO Antworten sollten aussehen: prägnant, genau und mit einem Verweis auf seriöse Ressourcen für diejenigen, die tiefer in das Thema vertiefen wollen. –