Um innerhalb eines mySQL Befehles den aktuell angemeldeten Benutzer zu erhalten, nutzen Sie einfach die Funktion „current_user()“. Das folgende, einfache Beispiel zeigt die Anwendung: SELECT CURRENT_USER(); Gleichzeitig wird der Hostname ausgegeben. Ergebnis (Beispiel): test@localhost Eine weitere Funktion ist „user()“. Die Funktion liefert Ihnen den Benutzernamen, welchen Sie beim Herstellen der Verbindung zu Ihrem mySQL Server eingegeben haben. Zusätzlich wird der Clienthost ausgegeben, über den die Verbindung hergestellt wurde. Der Wert kann sich von dem von der o.a. Funktion „current_user()“ unterscheiden. SELECT USER(); Um aus der Funktion „user()“ nur den aktuellen Benutzernamen zu erhalten, nutzen Sie folgenden SQL Befehl: SELECT SUBSTRING_INDEX(USER(),’@‘,1);
MehrKategorie: mySQL
mySQL: Vergessenes (root) Passwort zurücksetzen
Wenn Sie Ihr mySQL Masterpasswort (das „root-Passwort“) vergessen haben, können Sie es neu setzen (resetten). Dafür stellen wir Ihnen drei Alternativen zur Verfügung. Diese Technik können Sie auch nutzen, um Ihr root-Passwort zu ändern. Wir möchten Ihnen für die Änderung des mySQL root Passwortes jedoch einer unserer anderen Anleitungen anbieten. Dafür müssen Sie jedoch das aktuelle root-Passwort noch kennen: mySQL: Root Passwort ändern. Möglichkeit 1 (unsicherer als Methode 2 & 3) Sie können das root Passwort auf jeder Plattform (Windows, Linux, …) auch mit der offiziellen Client-Software „mysql“ einstellen: Stoppen Sie „mysqld“ (mySQL Service / Dienst) und starten Sie ihn erneut. Dabei geben Sie als Option „–skip-grant-tables –user=root“ mit. Als Windowsbenutzer lassen Sie bitte „–user=root“ weg mysqld –skip-grant-tables –user=root Nun verbinden Sie sich mit dem mySQL-Server (dem mysqld Service): mysql -u root Geben Sie im mySQL-Client die folgende SQL Anweisungen ein: UPDATE mysql.user SET Password=PASSWORD(‚NeuesPasswort‘) WHERE User=’root‘; FLUSH PRIVILEGES; Ersetzen Sie im vorherigen Befehl bitte den Text „NeuesPasswort“ durch Ihr neues root-Passwort. Achten Sie dabei vorerst darauf, dass Sie keine Sonderzeichen, Umlaute und andere besondere Zeichen eingeben. Diese führen später häufig zu Problemen. Testen Sie zuerst das Zurücksetzen des root-Passwortes mit einem einfachen Passwort. Ihr neues root-Passwort sollte nun funktionieren
MehrmySQL: Update if exists else insert record (SQL statement)
Wenn Sie einen Datensatz in eine Datenbanktabelle einfügen möchten (wenn er noch nicht existiert) oder diesen updaten möchten (wenn er existiert), hilft dieser SQL Befehl: INSERT INTO table (fields) VALUES (values) ON DUPLICATE KEY UPDATE field = value Dieses Statement prüft, ob der Primary Key (PK) für den einzufügenden Datensatz bereits besteht, nutzt dann ein Update Befehl und ansonsten Ihren angegeben Insert Befehl. Beispiel Wir haben eine Tabelle „Test“ mit den Feldern „A“, „B“ (je vom Typ varchar) und „C“ (integer). Die Felder „A“ und „B“ sind unser PK. Ein normales SQL Insert Statement in die leere Tabelle: insert into Test (A,B,C) values (‚Testtext A1′,’Texttext B1‘, 110); insert into Test (A,B,C) values (‚Testtext A2′,’Texttext B2‘, 250); Danach stehen folgende Daten in der Tabelle „Test“: A B C Testtext A1 Texttext B1 110 Testtext A2 Texttext B2 250 Nun möchten wir einen weiteren Datensatz einfügen. Werden unter dem PK Daten gefunden, sollen diese überschrieben (aktualisiert) werden – ansonsten wird der Datensatz normal eingefügt: insert into Test (A,B,C) values (‚Testtext A2′,’Texttext B2‘, 285) ON DUPLICATE KEY UPDATE C = 285; INSERT into Test (A,B,C) values (‚Testtext A3′,’Texttext B3‘, 310) ON DUPLICATE KEY UPDATE C = 310; Jetzt sieht der Inhalt der Tabelle
MehrmySQL: In PHP vor SQL Injection schützen
Wie wir in unserem Artikel „mySQL: Schutz vor Angriffen in Datenbankabfragen (SQL Injection)“ bereits erklärt haben, ist es vergleichsweise einfach möglich, durch ungesicherte bzw. ungeprüfte Parameter schadhaften oder zerstörenden Code in Ihre SQL Statements einzufügen. Wie Sie sich z.Bsp. in PHP einfach und schnell gegen solche Angriffe schützen können, zeigt folgender Codeausschnitt: foreach ($_REQUEST as $key => $val) $_REQUEST[„$key“] = mysql_real_escape_string($val); Es werden alle übergebenen Parameter (GET und POST) durch die mySQL Funktion „mysql_real_escape_string“ überarbeitet. Dadurch werden die für eine Injektion benötigten Zeichen unschädlich gemacht und der Datenbankserver wird im Normalfall mit der „kaputten“ SQL Anweisung nichts anfangen können. Für weitere Informationen zum Thema SQL Injektion besuchen Sie bitte unseren o.a. Artikel.
MehrC#: SQLite Datenbank einbinden und nutzen (auch für SharpDevelop)
SQLite ist eine dateibasierte Datenbank, welche Sie mit SQL Befehlen (wie mySQL, MS SQL, usw.) verwalten können. Installation Laden Sie sich die benötigte Komponente herunter: ADO.NET 2.0 Provider for SQLite Starten Sie das heruntergeladene Setup und folgen Sie den Installationsanweisungen Vorbereitungen für Ihr C# Projekt Sie können die nun installierten ADO.NET SQLite Komponenten nutzen. zur Vereinfachung sollten Sie die benötigten Libraries (DLLs) in Ihren Projektordner kopieren: Öffnen Sie den Ordner „C:\Programme\SQLite.NET\bin“ Markieren Sie die benötigte .DLL Datei zum Kopieren. Welche Datei Sie in Ihrem Fall brauchen, hängt von Ihrem eingesetzten System ab (I386, AMD64, …). Für eine Standardumgebung (Windows 32-Bit System) nutze ich die „System.Data.SQLite.dll“. Öffnen Sie den Ordner „bin\Debug“ Ordner in Ihrem Projektverzeichnis. In diesem Beispiel nutze ich den Projektnamen „HalloWelt“. Im Beispiel ist der Projektordner „C:\tmp\HalloWelt\bin\Debug“ Fügen Sie die ausgewählten Dateien ein In SharpDevelop die DLL als Referenz hinzufügen Zur Projektansicht wechseln (Strg + Alt + L) In Ihrem Projekt den Untereintrag „Referenzen“ mit der rechten Maustaste anklicken „Referenz hinzufügen“ auswählen und anklicken Den Reiter „.NET Assemblybrowser“ auswählen Auf den Button „Suchen“ klicken Ihren Projektordner öffnen und die gerade hineinkopierte DLL auswählen „OK“ anklicken Das Fenster schließt sich und die DLL ist im Bereich „Gewählte Referenzen“ zu finden
MehrPHP: Unable to load dynamic library '/usr/lib/php5/extensions/mysql.so'
Wenn im ErrorLog des Apache2 WebServers („tail /var/log/apache2/error.log“) u.a. folgende Zeile zu finden ist, kann PHP die Extension (Erweiterung) nicht finden und laden: PHP Warning: PHP Startup: Unable to load dynamic library ‚/usr/lib/php5/extensions/mysql.so‘ – /usr/lib/php5/extensions/mysql.so: cannot open shared object file: No such file or directory in Unknown on line 0 Häufig wird dann angefangen, wild an der Konfiguration zu ändern und basteln. Dabei wird meist das naheliegendste übersehen: Gibt es das angegebene Verzeichnis überhaupt ? Erst recht, wenn mehrere (oder gar viele) Extensions nicht geladen werden können. Wenn dann der Befehl dir -l /usr/lib/php5/extensions/ die folgende Fehlermeldung anzeigt, sollte alles klar sein: dir: Zugriff auf /usr/lib/php5/extensions/ nicht möglich: Datei oder Verzeichnis nicht gefunden Lösung Den Pfad für die Extensions in der „php.ini“ anpassen. Diese kann, falls der Pfad nicht bekannt ist, mithilfe des folgenden Befehls gefunden werden. find / -name php.ini Dieser Befehl zeigt Ihnen ggf. auch andere „php.ini“ Dateien auf ihrem System an. Manchmal konfiguriert man ein einer „php.ini“ und wundert sich, dass keine Änderung eintritt. Wenn man zufällig die falsche Datei in den Händen hat, dann kann man auch lange auf ein Ergebnis warten 😉 Häufig fällt dieses Problem nach einer (Neu)Installation erst auf, wenn die mySQL /
MehrmySQL: Doppelte IDs auflisten / Doppelte Einträge finden
Um in mySQL doppelte Einträge (Feldinhalte) aufzulisten, hilft Ihnen das folgende SQL Statement: SELECT id FROM muster m WHERE ( SELECT count(*) FROM muster WHERE id = m.id ) >1 In diesem Beispiel werden alle IDs aus der Tabelle „muster“ aufgelistet, die doppelt vorhanden sind. Wenn Sie Ihre eigene Tabelle eintragen, achten Sie bitte darauf, beide Namen anzupassen.
MehrmySQL: Zeilen aus verbundenen Tabellen löschen
Um Daten (Zeilen) aus Tabellen effektiv zu löschen, dürfen Sie die 1 MB Grenze (Standardwert der Systemvariablen max_allowed_packet) nicht überschreiten. Bei komplexen DELETE Anweisungen ist das aber schnell der Fall. Die Lösung ist dann nur die Zerlegeung der DELETE Statements in kleinere Protionen (notfalls Einzelanweidungen). Am schnellsten läuft ein DELETE Befehl, wenn nur 100 bis 1000 related_column-Werte pro (indizierter) Anweisung anstehen. Hat die „related_column“ (Feld für die Verbindung der Tabellen) keinen Index, ist die Geschwindigkeit von der Anzahl der Argumente der IN-Klausel unabhängig.
MehrmySQL: Alte MD5 Passwörter - OLD_PASSWORD()
In alten mySQL Versionen (vor V4.1) wurde für die Passwortverschlüsselung ein 16 Zeichen langer MD5 Hash genutzt (sh. auch unseren Arikel „Sicherheit: MD5 Hash decodieren / entschlüsseln (16 stelligen Hash)“). Diese Technik war (und ist) unsicher und daher wurde ab Version 4.1 auf den 32 Zeichen langen MD5 Hash umgestiegen. Dieser gilt heute als Standard MD5 Hash und wird in allen gängigen Umgebungen und Systemen gleich berechnet. Um nun bei Bedarf trotzdem noch den alten Hash erzeugen zu können (z.Bsp. müssen Sie verschlüsselte Passwörter vergleichen), stellen wir Ihnen einige Tools zur Verfügung: Online Hash BerechnungDiese liefert Ihnen gleichzeitg ein paar weitere Hash Werte Ihrer Eingabe: md5, crypt, crc32, metaphone, sha1, soundex, str_rot13 Das C Programm für Linux Distributionen Ein C# Programm für MS-Windows Sollten Sie Fragen oder konstruktive Kritik haben, schreiben Sie uns gerne eine E-Mail. Online Hash Berechnung Bitte geben Sie das Passwort in das folgende Feld ein und klicken Sie auf „Hash erzeugen“: Ihnen wird der Hash unterhalb dieser Zeile angezeigt:
MehrSicherheit: MD5 Hash decodieren / entschlüsseln (16 stelligen Hash)
Der folgende C Source kann ggf. Ihnen helfen, vergessene MD5 Passwörter (nur 16-stelligen Hash) wieder zu erhalten. Dabei werden nur Passwörter mit bis zu 8 Zeichen berechnet. Außerdem können nicht alle Sonderzeichen berücksichtigt werden. Von Decodieren bzw. Entschlüsseln kann aufgrund der angewendeten Methoden nicht geredet werden. Das genannte MD5 Verfahren hat mathematische Lücken und wurde daher bereits ab mySQL Version 4.1 durch den stärken und (bislang sicheren) MD5/32 Hash abgelöst. Hinweis: Den Sourcecode nutzen Sie vollständig auf eigene Gefahr und Verantwortung. Bitte prüfen Sie vorher, ob Sie berechtigt sind, den MD5 Hash zu berechnen. Sollten Sie Zweifel haben, nutzen Sie die Methoden nicht ! Um Ihnen nicht den vollständigen Source zu liefern (und jedem Hobby-Passwort-Analysten die Berechnung zu erlauben) haben wir die wichtigen Bitverschiebungen im Source durch Smileys ersetzt. Für erfahrene Entwickler wird das Herausfinden und Ersetzen der entsprechenden Sourcecode-Positionen kein Problem darstellen. Zusätzlich bleibt der Source äußerst karg kommentiert. // Tools zur Decodierung von 16stelligen MD5 Hashes // Verwendet von mySQL OLD_PASSWORT() etc. #include „stdlib.h“ #include „stdio.h“ #include „string.h“ #define xor ^ void search3_new( ); void search4_new( ); void search5_new( ); void search6_new( ); void search7_new( ); void search8_new( ); void get_old_nr2( ); void init_password( ); void found_footprint( );
MehrmySQL: Alten MD5 Hash in C# berechnen (16 stellig)
Die mySQL Versionen vor V4.1 nutzen einen veralteten MD5 Hash-Algorithmus. Dieser lieferte nur einen max. 16 stelligen Hashwert und ist weiterhin unsicher und teilweise decodierbar. Zwar gilt für MD5 aufgrund seines Algorithmusses grundsätzlich, dass diese Hashwerte nicht „decodiert“ werden können – für den alten MD5/16 Code gilt dies‘ jedoch nicht eingeschränkt. Aufgrund des häufigen Anfragen für eine einfache Berechnung dieses MD5/16 Hash haben wir Ihnen den C# Sourcecode zur Verfügung gestellt. Diese liefert Ihnen für ein Passwort (= Parameter) den MD5/16 Hash: Aktueller Hinweis vom 03.06.2017: Es ist zum Kotzen, dass man hier seine eigene Arbeit präsentiert und diese dann rotzfrech z.Bsp. zu Stackoverflow kopiert wird. Urheberrecht (Copyright) scheint für viele ein Fremdwort zu sein. An alle Kopierer: Wundert ihr Euch wirklich, dass gute Entwickler mehr und mehr ihren Source Code verschlüsseln und immer weniger helfen !? Anstall Stackoverflow meine Arbeit schützt, werde ich aufgefordert (Quelle: http://stackexchange.com/legal/terms-of-service#ReportingCopyrightInfringements), noch weitere Datenschutzrelevante Daten zu präsentieren. Geht’s dann noch !? Wenn meine Ausdruckweise den einen oder anderen stört, dann ist das schade – würden sich mehr Nutzer für den Schutz des geistigen Eigentums stark machen, dann müsste ich mich nicht so häufig ärgern. Die Folge ist, dass ich irgendwann solche Seiten mit kostenfreier
MehrmySQL: Schutz vor Angriffen in Datenbankabfragen (SQL Injection)
Normale SQL Abfragen mit direkt eingebundenen Parametern ohne zusätzliche Schutzfunktionen kann sehr böse Folgen haben. Meist merken Sie davon nichts – Ihre Daten sind jedoch in höchster Gefahr. Szenario #1: Ein einfacher Angriff Nehmen wir eine (leider) normale Datenbankabfrage in PHP: $query = „SELECT * FROM users WHERE user='{$_POST[‚username‘]}‘ AND password='{$_POST[‚password‘]}'“; Nicht immer müssen die „richtigen“ Parameter durch Ihre Oberfläche übergeben werden. Durch einfache Manipulation der Parameter (über gesonderte Abfragen) können beliebige Daten mit POST übergeben werden. Gehen wir von folgenden Parametern aus: $_POST[‚username‘] = „max“; $_POST[‚password‘] = „‚ OR “='“; Dadurch würde das SQL Statement so aussehen: SELECT * FROM users WHERE user=’max‘ AND password=“ OR “=“ Szenario #2: Auflisten von Benutzernamen & Passwörtern Ebenfalls leicht möglich. Dafür wird eine Datenbankabfrage (SELECT Statement) einfach erweitert: $query = „SELECT id, name, inserted, size FROM products WHERE size = ‚$size‘ ORDER BY $order LIMIT $limit, $offset;“; Nun wird z.Bsp. der Parameter „size“ vom Angreifer modifiziert: ‚ union select ‚1‘, concat(uname || ‚-‚ || passwd) as name, ‚1971-01-01‘, ‚0‘ from usertable; — Dadurch wird folgende SQL Statement an die Datenbank übergeben: SELECT id, name, inserted, size FROM products WHERE size = “ union select ‚1‘, concat(uname||‘-‚||passwd) as name, ‚1971-01-01‘, ‚0‘ from usertable;
MehrmySQL: 4 GB Grenze umgehen
Wenn Sie eine mySQL Tabelle „überfüllen“ möchten, erhalten Sie die Fehlermeldung „The table is full“. Meist haben Sie dann die 4 GB Grenze von mySQL erreicht. Dieses Problem tritt in Verbindung mit Tabellen vom Typ „myISAM“ auf. Um dieses Hürde zu überspringen und mahr Daten speichern zu können, können Sie den Grenzwert mit einem „ALTER TABLE“ Befehl übersteuern. Bitte beachten Sie, dass dieser Befehl einige Zeit in Anspruch nimmt ! Beispiel: In diesem Beispiel heißt die Datenbank „wetter“: Die aktuellen Grenze erhalten Sie durch folgenden Befehl: mysql> show table status like ‚wetter‘ *************************** 1. row *************************** Name: wetter Type: MyISAM Row_format: Dynamic Rows: 0 Avg_row_length: 0 Data_length: 0 Max_data_length: 4294967295 Index_length: 1024 Data_free: 0 Auto_increment: NULL Create_time: 2003-03-03 00:43:43 Update_time: 2003-03-03 00:43:43 Check_time: 2003-06-14 15:11:21 Create_options: Comment: 1 row in set (0.00 sec) Hier finden Sie die Info: Max_data_length = 4 GB. Setzen Sie das Limit neu mit diesem Befehl: mysql> alter table wetter max_rows=200000000000 avg_row_length=50; Query OK, 0 rows affected (0.03 sec) Records: 0 Duplicates: 0 Warnings: 0 Und prüfen Sie die Grenze wieder: mysql> show table status like ‚wetter‘ *************************** 1. row *************************** Name: wetter Type: MyISAM Row_format: Dynamic Rows: 0 Avg_row_length: 0 Data_length: 0 Max_data_length: 1099511627775 Index_length:
MehrmySQL: Sortierung nach zufälligen Werten
Wenn Sie bei einer mySQL Abfrage (Query) eine Spalte mit zufälligen Werten anfügen möchten, dann nutzen Sie diesen Befehl: SELECT ID, Name, RAND() FROM Test Wenn Sie nach dieser Spalte sortieren möchten, dann hilft Ihnen ein einfaches „Order by“ mit einem entsprechenden Spaltennamen leider nicht weiter. Sie müssen dann ein weiteres Feld der Abfrage in die Berechnung einbeziehen. Dann geht’s: SELECT ID, Name, 0*ID+RAND() AS sort FROM Test ORDER BY sort
MehrEntwicklungsumgebung mit cakePHP, mySQL & Eclipse
Benötigte Software (in Klammern die für diese Anleitung genutzte Version) XAMPP (1.6.8 – Win32, Basic Package) cakePHP (1.2.0.7945-rc4, Zip Archiv) Eclipse (3.4.1 Classic (Ganymede) – Windows, Zip Archiv) Installation(en) Sofern ich keine Angabe zu einem Bildschirm oder Schritt einer Software-Installation gemacht habe, übernehmen Sie einfach die vorgegebenen / angezeigten Einstellungen. XAMPP Starten Sie die „xampp-win32-1.6.8-installer.exe“ Zielverzeichnis: „C:\xampp“ (Standard) Am Ende wird angeboten, das Control Panel zu starten. Wählen Sie „Ja“ – Starten Sie jedoch noch kein Modul cakePHP Legen Sie im Verzeichnis „C:\xampp“ einen neuen Unterordner „www“ an Entpacken Sie das Archiv „cake_1.2.0.7945-rc4.zip“ im neuen Order „www“ Benennen Sie den erstellten Ordner um in „cakePHP“ Sie haben jetzt ein Verzeichnis „c:\xampp\cakePHP“. In diesem finden Sie vier Ordner und u.a. die „index.php“ Gehen Sie in das Verzeichnis „C:\xampp\www\cakePHP\app\config“ Öffnen Sie die Datei „core.php“ Suchen Sie die folgende Zeile und ändern Sie den zweiten Parameter („DYhG93..“) in eine andere willkürliche & zufällige Zeichenkette ab: Configure::write(‚Security.salt‘, ‚DYhG93b0qyJfIxfs2guVoUubWwvniR2G0FgaC9mi‘); Speichern Sie die Datei und schließen Sie den Editor Im gleichen Verzeichnis finden Sie die Datei „database.php.default“ Kopieren Sie die Datei in „database.php“ und öffnen Sie sie mit einem Editor Am Ende der Datei tragen Sie die Zugangsdaten für Ihren mySQL Server (s.u.) ein: var $default
MehrmySQL: Merge Beispiel
Mit dem mySQL Befehl „Merge“ können Sie Tabellen zusammenführen lassen. CREATE TABLE log_01 ( pkey int(11) NOT NULL auto_increment, a int, b varchar(12), timeEnter timestamp(14), PRIMARY KEY (pkey) ) type=MyISAM; CREATE TABLE log_02 ( pkey int(11) NOT NULL auto_increment, a int, b varchar(12), timeEnter timestamp(14), PRIMARY KEY (pkey) ) type=MyISAM; CREATE TABLE log_summary ( pkey int(11) NOT NULL auto_increment, a int, b varchar(12), timeEnter timestamp(14), PRIMARY KEY (pkey) ) type=MERGE UNION(log_01,log_02) INSERT_METHOD=LAST; Wenn Sie nun in die beiden ersten Tabellen (log_01 & log_02) Datensätze einfügen … mysql> insert into log_01 (a,b) values (1,’log1′); mysql> insert into log_02 (a,b) values (1,’log2′); … können Sie diese als einheitliche Tabelle unter „log_summary“ abfragen: mysql> select * from log_summary; select * from log_summary; +——+——+——+———————+ | pkey | a | b | timeEnter | +——+——+——+———————+ | 1 | 1 | log1 | 2004-04-16 11:59:55 | | 1 | 1 | log2 | 2004-04-16 12:00:08 | +——+——+——+———————+ 2 rows in set (0.00 sec) Weitere Informationen finden Sie unter: http://dev.mysql.com/doc/mysql/en/MERGE.html
MehrmySQL Prozesse auflisten & stoppen
Sie können sich die Prozesse auf Ihrem mySQL Server anzeigen lassen und auf Wunsch beenden. Auflisten der aktuellen Prozesse: mysql> show processlist; Ihnen wird folgende Liste (als Beispiel) angezeigt: +—–+——+———–+———+———+——-+——-+——————+ | Id | User | Host | db | Command | Time | State | Info | +—–+——+———–+———+———+——-+——-+——————+ | 385 | prog | localhost | NULL | Query | 0 | NULL | show processlist | | 957 | prog | localhost | test | Sleep | 21619 | | NULL | +—–+——+———–+———+———+——-+——-+——————+ 2 rows in set (0.00 sec) Um einen bestimmten Prozess zu beenden, nutzen Sie den Befehl „kill“: mysql>kill 957 Alternativ können Sie einen Prozess auch direkt aus der Kommandozeile beenden: mysqladmin kill 957 Beachten Sie bitte, dass Sie stets die exakte Prozess-ID wissen. Die folgenden mySQL Befehle könnten Ihnen ebenfalls weiterhelfen: mysql> show status; mysql> show innodb status;
MehrmySQL: Logs löschen / leeren
Unter mySQL löschen Sie die Logs (Log-Dateien) mithilfe des folgenden Befehls: > reset master; Die (binären) Logfiles liegen bei einer Standardinstallation im Pfad „/usr/local/var/“ und enden auf „-bin.000001“, „-bin.000002“ usw.
MehrmySQL: Verbindungen trennen
Wenn Sie unter mySQL einen Benutzer bzw. seine Verbindung zur Datenbank trennen möchten, dann gehen Sie mit folgenden Befehlen vor: Schritt 1: Finden Sie die Connection-ID des Benutzers heraus: > show processlist; +—–+——+———–+———+———+——-+——-+——————+ | Id | User | Host | db | Command | Time | State | Info | +—–+——+———–+———+———+——-+——-+——————+ | 621 | prog | localhost | company | Sleep | 21644 | | NULL | | 822 | prog | localhost | company | Sleep | 721 | | NULL | | 912 | test | localhost | NULL | Query | 0 | NULL | show processlist | +—–+——+———–+———+———+——-+——-+——————+ 3 rows in set (0.00 sec) Schritt 2: Trennen Sie die gewünschte Verbindung durch den Befehl > kill 621; Sie können diesen Befehl auch von der OS Kommandozeile ausführen: mysqladmin kill 621 Fertig. Die folgenden mySQL Befehle können Ihnen zusätzlich weiterhelfen: > show status; > show status\G; > show innodb status;
MehrcakePHP: installieren
Wenn Sie mit cakePHP Anwendungen entwickeln möchten, sollten Sie sich eine lokale Installation als Entwicklungsumgebung einrichten. In diesem Beispiel richten wir eine cakePHP Installtion unter Windows ein. Für dieses Beispiel wird ein funktionierender WebServer (z.Bsp. Apache) und eine Datenbank (z.Bsp. mySQL) benötigt. Schritt 1: Laden Sie sich die aktuelle Version von cakePHP aus dem Internet herunter. Optimalerweise nutzen Sie den direkten Download vom Hersteller: http://cakephp.org/downloads. Mit einer freiwilligen Spende helfen Sie den Entwicklern, Ihr kostenloses Produkt weiter zu entwickeln. Dieses Beispiel bezieht sich auf die derzeit aktuelle Version 1.2.0.7692 RC3. Schritt 2: Entpacken Sie das heruntergeladene Archiv (z.Bsp. „cake_1.2.0.7692-rc3.zip“) in ein Verzeichnis. Schritt 3: Binden Sie das verzeichnis in Ihren WebServer direkt oder als virtuellen Host ein. Nutzen Sie dafür die Konfiguration Ihres WebServers. Ein Beispiel für die Einbindung des Verzeichnisses als virtuellen Server unter Apache finden Sie [HIER]. Schritt 4: Stoppen und Starten Sie Ihren WebServer neu. Häufig werden dadurch erst die geänderten Einstellungen geladen und genutzt. Schritt 5: Starten Sie Ihren bevorzugten Browser (z.Bsp. Mozilla Firefox oder IE) und rufen Sie die entsprechende URL auf. Haben Sie z.Bsp. einen virtuellen Server mit dem Namen „cakephp“ angelegt, dann geben Sie die folgende URL ein: http://cakephp/ Schritt 6: Folgen Sie
MehrMySQL: Root Passwort ändern
Wenn Sie auf Ihrem MySQL Datenbankserver Ihr Zugangspasswort als Hauptbenutzer (= „root“) ändern möchten, nutzen Sie den folgenden Befehl:
MehrMySQL Datenbank wiederherstellen
Ein mySQL Datenbank-Dump vollständig und einfach wieder einspielen (restoren):
MehrMySQL Datenbank sichern
Eine MySQL Datenbank vollständig und einfach sichern (dumpen):
Mehr