PHPMyAdmin (PMA) ist ein hervorragender, kostenloser, webbasierter Open Source-Datenbankclient, mit dem Sie einfacher mit MySQL- und Anwendungsdatenbanken interagieren können. Ich beschreibe, wie Sie es installieren, sichern und einige gängige Szenarien, mit denen Sie die Datenbankverwaltung unterstützen können. Hier ist eine Online-Demo von PMA, die Sie erkunden können.
Neben einer visuellen Benutzeroberfläche für Datenbankoperationen schätze ich es auch, dass ich Befehlszeilen-SQL-Operationen über meinen Browser ausführen kann, ohne mich über SSH am Server anmelden zu müssen. Beispielsweise beenden einige WLAN-Verbindungen und mobile Hotspots regelmäßig persistente SSH-Sitzungen, wodurch Datenbankaufgaben problematisch werden.
Der Einstieg in PMA ist unter Linux ziemlich einfach. Ich beschreibe, wie man das mit Ubuntu 14.x bei Digital Ocean macht. Melden Sie sich über SSH bei Ihrem Server an.
apt-get install phpmyadmin
Sie können die Standardeinstellungen während der Installation verwenden oder nach Ihren Wünschen anpassen.
Wenn Sie den MySQL-Zugriff auf localhost beschränken (was Sie sollten), gibt es keine Remote-Ports zu MySQL, auf die ein Hacker zugreifen kann. Sie versuchen möglicherweise, über SSH einzudringen oder SQL-Injection-Angriffe gegen Ihre Anwendungen durchzuführen, sie können jedoch die Datenbank nicht direkt angreifen. Sobald Sie PMA installiert haben, kann jeder webbasierte Angriffe ausführen, um die Kontrolle über Ihre Datenbank zu erlangen. Daher ist Sorgfalt geboten.
Ich empfehle einige Vorsichtsmaßnahmen bei der Konfiguration von PMA.
1. Verwenden Sie sehr sichere Kennwörter für alle MySQL-Konten, insbesondere für das Root-Konto. z.B. 25 Zeichen für das Root-Passwort.
2. Verwenden Sie unterschiedliche MySQL-Konten und -Berechtigungen für jede Anwendung / Site, die auf einem einzelnen Server ausgeführt wird. Auf diese Weise wird bei der Kompromittierung eines Kennworts nur die Datenbank eines Standorts gefährdet.
3. Ändern Sie die von PMA verwendete Standard-URL. Auf diese Weise können Benutzer http://yourblog.com/phpmyadmin nicht besuchen. Obwohl diese Sicherheit durch Unklarheit keine sehr effektive Technik ist, fügt sie einen gewissen Schutz hinzu.
Fügen Sie einen Alias hinzu apache.conf
Datei:
nano /etc/phpmyadmin/apache.conf
Alias / myobscuredpma / usr / share / phpmyadmin
Apache neu laden:
Dienst apache2 reload
Dann besuchen Sie http://yourblog.com/myobscuredpma, um auf PMA zuzugreifen
Wenn Sie Ihr PHPMyAdmin-Passwort ändern müssen, können Sie das bearbeiten config-db.php
Hier:
nano /etc/phpmyadmin/config-db.php
4. Konfigurieren Sie die Webauthentifizierung für die PMA-Site. Dies erfordert, dass Sie zusätzlich zu Ihrem Datenbankkennwort ein zusätzliches Kennwort eingeben, um Zugriff auf PMA zu erhalten.
Gehen Sie folgendermaßen vor, um Apache-Benutzereinschränkungen zu konfigurieren:
Installieren htpasswd
als Teil von apache2-utils:
apt-get install apache2-utils
Erstellen Sie ein Verzeichnis zum Speichern Ihrer Passwörter:
mkdir / etc / htpasswd
Hinzufügen htaccess
Unterstützung für PMA:
nano /etc/phpmyadmin/apache.conf
Hinzufügen AllowOverride All
unten
Optionen FollowSymLinks DirectoryIndex index.php AllowOverride All
Konfigurieren Sie Ihre Benutzerauthentifizierung für PMA:
nano /usr/share/phpmyadmin/.htaccess
AuthType Basic AuthName "Anmeldung für Zugriff erforderlich" AuthUserFile /etc/htpasswd/.htpasswd Gültiger Benutzer erforderlich
Lege ein Passwort fest:
htpasswd -c /etc/htpasswd/.htpasswd Benutzername
Und starten Sie Apache neu:
Dienst apache2 neu starten
Navigieren Sie zu Ihrer PMA-Site, und Sie werden wie oben gezeigt zur Eingabe Ihres Benutzernamens und Kennworts aufgefordert.
Ich finde, dass PMA in Entwicklungs- und Testphasen besonders nützlich ist, in denen ich die Datenbank oder die Sicherungsvorgänge möglicherweise wiederholt zurücksetzen möchte.
Ohne PMA würde ich mich über SSH bei meinem Server anmelden. Melden Sie sich bei MySQL an und führen Sie dann Folgendes aus:
Datenbank myapp erstellen; Erteilen Sie alle Berechtigungen für myapp_database. * TO "your-mysql-username" @ "localhost" wird durch "your-mysql-password" identifiziert. Flush-Privilegien;
Mit PMA können Sie jede Befehlszeilenabfrage mit der visuellen Schnittstelle ausführen. Klicken Sie auf die Registerkarte SQL und fügen Sie oben die Anweisungen für die MySQL-Datenbank ein. Klicken Sie dann auf Gehe zu, um die Datenbank zu erstellen.
Oder Sie können die visuelle Schnittstelle direkt verwenden:
Sie können auf diese Weise auch Benutzer hinzufügen und Berechtigungen definieren. Klicken Sie auf die Registerkarte "Privilegien":
Klicken Sie auf Benutzer hinzufügen und definieren Sie die gewünschten Berechtigungen für die Datenbank:
Für Ihr typisches Anwendungsdatenbankkonto aktivieren Sie die Kontrollkästchen in den Daten- und Strukturquadraten.
Um eine Datenbank zu löschen, rufen Sie das Menü Datenbanken auf. Klicken Sie auf die Datenbank, die Sie löschen möchten, und klicken Sie auf Löschen:
Es ist eine sehr gute Idee, die Anwendungsdatenbank zu sichern, bevor Sie erweiterte Operationen an der Datenbank oder Code-Upgrades durchführen. Wenn etwas schief geht, können Sie Ihre Site von der Sicherung wiederherstellen.
Klicken Sie in der PMA-Weboberfläche auf Ihre Datenbank, klicken Sie auf die Registerkarte Export und wählen Sie Benutzerdefiniert.
Aktivieren Sie die Anweisung "Add Drop Table / View / Procedure / Function / Event":
Wenn Sie auf "Los" klicken, lädt PMA eine Sicherungskopie Ihrer gesamten Datenbank herunter. Wenn Sie die Apache PHP-Zeitlimiteinstellungen nicht richtig konfiguriert haben, kann das Herunterladen einiger langer Dateien möglicherweise fehlschlagen. Sie können dies in einstellen PHP.ini
wie ich auf meiner Website beschreibe.
PMA eignet sich hervorragend zum Testen Ihrer SQL-Abfragen während der Entwicklung. Bei der Erstellung von Geogram (siehe auch mein nächstes Tutorial MapApp auf Tuts +) musste ich eine Reihe komplexer Geolocation-Abfragen für Nachbarschafts-Shapefiles lernen und testen, z. finde die nächstgelegenen Nachbarschaften zu meiner Adresse. PMA hat dies viel einfacher gemacht.
Wählen Sie Ihre Datenbank aus und klicken Sie auf Abfrage. Fügen Sie Ihre komplexen Abfragen ein oder bearbeiten Sie sie und testen Sie sie direkt in PMA:
Sobald meine Abfragen ausgeführt wurden, konnte ich programmgesteuerten ActiveRecord-Code einfacher schreiben. Nur als Beispiel:
$ kriterien = neue CDb-Kriterien; $ kriterien-> zusammen = wahr; $ kriterien-> mit = "Entfernung < 100"; $criteria->Reihenfolge = "Entfernung ASC"; $ kriterien-> mit = array ('place_geometry' => array ('select' => 'place_id, center'.) new CDbExpression ('(3959 * acos (cos (Radiant ('. $ lat. ')) * cos (Radiant (X (Mitte))) * cos (Radiant (Y (Mitte)) - Radiant ('. $ lon.')) + Sünde (Radiant ('. $ lat.')) * Sin (Radiant (X ( center))))) als Abstand '))); $ dataProvider = new CActiveDataProvider (Place :: model () -> active () -> includesMember ($ id), array ('kriterien' => $ kriterien, 'pagination' => array ('pageSize' => 10,) ,));
Wenn Sie ein Entwickler sind, hatten Sie wahrscheinlich einen Fehler in einer App, die Ihre Datenbank beschädigt hat. Ich weiß es schon gut?
Einige meiner E-Mail-Verwaltungsanwendungen können beispielsweise bei ungewöhnlichen Nachrichten hängen bleiben. Diese Fehler sind in regelmäßigen Tests nur schwer zu finden. In diesem Fall habe ich es für nützlich befunden, die Datenbank direkt mit PMA zu ändern, um meine Aufgaben zu lösen und die Site wieder betriebsbereit zu machen. In einigen Fällen hilft das einfache Durchsuchen von Tabellen bei der Diagnose von Fehlern.
Öffnen Sie in PMA die Datenbank und wählen Sie Ihre Tabelle aus. Doppelklicken Sie auf eine Spalte, um sie direkt zu bearbeiten. Nehmen Sie die gewünschte Änderung vor und drücken Sie die Eingabetaste:
Wenn Sie ein Framework (wie Yii) verwenden, verwenden Sie möglicherweise programmatische Datenbankmigrationen. Datenbankmigrationen erleichtern das Durchlaufen der Feature-Entwicklung und das Upgrade Ihrer Anwendungen. Wenn Sie sie testen, kann dies jedoch zu Fehlern in Ihrer lokalen Datenbank führen.
Am häufigsten stelle ich Migrationsfehler fest und kann aufgrund von nicht gelöschten Indizes, Fremdschlüsseln oder Tabellen nicht nach oben oder unten migrieren. In diesem Fall kann ich PMA verwenden, um eine Tabelle zu löschen und unerwünschte Indexdateien zu löschen.
Wählen Sie in PMA Ihre Datenbank aus, klicken Sie auf die Registerkarte SQL, und geben Sie die SQL-Adresse ein, um den Fremdschlüssel oder den Index zu löschen. Hier einige Beispiele:
Ich hoffe, Sie fanden das nützlich. Bitte posten Sie Kommentare, Korrekturen oder zusätzliche Ideen weiter unten. Sie können meine anderen Tuts + -Tutorials auf meiner Autorenseite durchsuchen oder mir auf Twitter @reifman folgen.