Kategorien
MySQL Server Administration

Importieren und Exportieren alle MySQL Datenbanken unter Windows und Mac

Unter Windows kann man mit einem Befehl sehr leicht alle Daten exportieren in MySQL mit mysqldump:

cd C:\xampp\mysql\bin
mysqldump.exe -u root -p --opt --all-databases --verbose > C:\export.sql

 

Erläuterung:

 –opt:  Export alle DBs, ohne „system“ databases wie mysql, information_schema, performance_schema und test

 –verbose: um log Meldungen anzuzeigen auf dem Bildschirm, es sind nicht viele, so dass die Performance nicht beeinflusst wird großartig

Kategorien
MySQL

MySQL Spalte kopieren innerhalb desselben Datensatzes

Wenn man bspw. eine Spalte inserted einfügen will und diese inital mit dem schon vorhandenen last_change Werten ausstatten will, kann man folgenden Code benutzen:

UPDATE table_name dt1, table_name dt2 SET dt1.inserted = dt2.last_change WHERE dt1.id = dt2.id
Kategorien
MySQL

Importieren/Exportieren großer MySQL Datenbanken unter Xampp

Beim Importieren großer Datenmengen unter Xampp stößt man über den Weg von phpMyAdmin schnell auf Grenzen der Skriptlaufzeit oder auf Performance-Grenzen:

Fatal error: Maximum execution time exceeded

Diese kann zwar angepasst werden, aber ein solcher Import kann Stunden dauern. Der Import über die Konsole ist um den Faktor 10 schneller. Statt einer Stunde benötigt man damit nur ein paar Minuten und hat keine Probleme mit der Skriptlaufzeit oder ähnlichem. Am schnellsten und unkompliziertesten ist ein Import über die MySQL-Konsole:

  • einfach im Xampp Control Panel auf shell klicken und dann in der Konsole die folgenden Befehle eingeben:
mysql -u root -p

Passwort eingeben oder einfachmit ENTER bestätigen, wenn kein passwort festgelegt wurde. Root ist der Benutzer der Datenbank, kann abweichen. Dann die Datenbank auswählen, die importiert werden soll, ggf. vorher anlegen, wenn diese nicht existent.

Kategorien
MySQL Webdeveloper Tools

MySQL Client Tools: Squirrel

Wen nervt die Arbeit mit der Konsole oder mit PhpMyAdmin nicht?

Squirrel bietet kostenlos eine Oberfläche inkl. MySQL-Code-Vervollständigung und ist in 10 Minuten installiert und konfiguriert.

Mit diesem Video ist die Installation schnell erledigt, ohne wirds kompliziert.

Kategorien
Android C C++ iPhone/iOS Java Mobil MySQL PHP Web Frontend

Teil 2: Clean Code – richtige und falsche Kommentare

Nach dem Buch (Kapitel 4):  „Clean Code – Refactoring, Patterns, Testen und Techniken für sauberen Code“ von Robert C. Martin.

„Kommentieren Sie schlechten Code nicht – schreiben Sie ihn um.“

(Brian W. Kernighan und P.J. Plaugher)

 

Kommentare können beides sein, hilfreich und hinderlich:

  • hinderlich, wenn Sie überholt sind und Fehlinformationen liefern
  • störend, wenn Sie zu lang sind und unnötig
  • hilfreich, wenn Sie wohlplatziert sind

Der Einsatz von Kommentaren „soll unsere Unfähigkeit ausgleich, uns in unserem Code klar auszudrücken“(S.85). Bevor man einem Kommentar schreibt, sollte man vorher überlegen, ob der Code nicht noch ausdrucksstarker geschrieben werden könnte.

Kategorien
Android C C++ CodeIgniter Framework iPhone/iOS Java JavaScript Mobil MySQL PHP Webdeveloper Tools Zend Framework

Teil 1: Clean Code – Regeln für guten, sauberen Code

Sauberen und leicht verständlichen Code zu schreiben ist das höchste Ziel in einem guten IT-Projet. Vieles hängt davon ab:

  • Wartbarkeit
  • Einarbeitungszeit für andere Programmierer, versteht man schnell, was einzelne Funktionen erledigen
  • Robustheit bei Änderungen
  • Testbarkeit, fällt alles zusammen, bei kleinen Änderungen, können schnell stabile Updates bereitgestellt werden
  • Popularität bei anderen Programmierern z.B: bei Open Source Projekten, als negative Beispiel sei XT-Commerce genannt

Das sehr zu empfehlende Standardwerk zu dem Thema ist „Clean Code – Refactoring, Patterns, Testen und Techniken für sauberen Code“ von Robert C. Martin. In diesem Artikel werden Kapitel 1 bis 3 behandelt.

Aussagekräftige Namen

Der Namen einer Variable, Funktion oder Klasse sollte sofort erklären, warum Sie existiert, was sie tut und wie sie benutzt wird. Wenn eine Variable einen Kommentar benötigt, drückt Sie ihren Zweck nicht aus.

Bsp:

int d //Anzahl vergangener Tage
besser ist:
int daysSinceCreation;

Aussprechbare Namen verwenden

Keine Konstrukte mit unklaren Abkürzungen wie: int daSiCre anstatt von daysSinceCreation.

Suchbare Namen verwenden

Moderne IDEs machen das Suchen einfach, aber es nützt nichts, wenn man nach dem Buchstaben e einer Laufvariable suchen muss und von Ergebnissen überschwemmt wird.

Variablen Namen mit einem Buchstaben sind nur als lokale Variablen in kurzen Methoden zu verwenden.

Kategorien
MySQL PHP Webdeveloper Tools

Installation Eclipse PHP PDT Plugin unter Windows7 Tutorial

Zur professionellen Entwicklung gehört auch eine gute IDE. Ich verwende dafür PHP Storm und davor Netbeans, aber viele Entwickler empfehlen das kostenpflichtige Zend Studio bzw. das ähnliche aber kostenlose Plugin für Eclipse von Zend: das PDT-Plugin.

Die Installation von Eclipse incl. Plugin kann sehr einfach im „All-in-one-Package“ durchgeführt werden.

Kategorien
MySQL PHP

MySQL PHP Umlaute/Sonderzeichen fixen UTF-8/ISO

Jeder kennt das Problem, aus irgendeinem Grund wurden Wörter in der falschen Kodierung in die Datenbank geschrieben. Wenn das passiert ist, kann man daran erkennen, dass sich Zeichen wie diese untergemischt haben:

'¦, '¨, '?, '´, '¸, 'À, 'Á, 'Â, 'Ã, 'Ä, 'Å, 'Æ, 'Ç, 'È, 'É, 'Ê, 'Ë,
'Ì, 'Í, 'Î, 'Ï, 'Ñ, 'Ò, 'Ó, 'Ô, 'Õ, 'Ö, 'Ø, 'Ù, 'Ú, 'Û, 'Ü, 'Ý, 'Þ,
'ß, 'à, 'á, 'â, 'ã, 'ä, 'å, 'æ, 'ç, 'è, 'é, 'ê, 'ë, 'ì, 'í, 'î,
'ï, 'ð, 'ñ, 'ò, 'ó, 'ô, 'õ, 'ö, 'ø, 'ù, 'ú, 'û, 'ý, 'þ, 'ÿ

Das Problem ist, dass diese Zeichen nicht utf8 kodiert worden sind, aber in utf8 dargestellt worden sind, was eine Vielzahl an Gründen haben kann.

Kategorien
MySQL

PhpMyAdmin Inaktivitäts Zeitunkt erhöhen

Was mich richtig nervt, sind die automatischen Logouts von PhpMyAdmin, welche nach 1440s durchgeführt werden.

Dazu muss man in libraries/config.default den Wert ändern:

$cfg['LoginCookieValidity'] = 1440;

Un außerdem in der php.ini die Session Lifetime erhöhen, wenn nötig: session.gc_maxlifetime.

Kategorien
MySQL

MySQL reservierte Bezeichner und Release

Gerade habe ich an dem Problem gehangen, dass ich mit Doctrine eine neue Spalte namens „release“ füllen wollte. Mit Release wart das Release-Datum von CDs gemeint. Es kam die Standard Fehlermeldung von MySQL, das ein  Fehler bei release war.

$products->release = 2003;

Natürlich habe ich es auf Doctrine geschoben, weil da oft solch ein komisches Zeug passiert. Komisch war, dass die Fehlermdlung nicht auftrat bei:

$products->release = NULL;

Das gab mir schwer zu denken und führte mich auf die falsche Fährte in Richtung, dass der Wertebereich nicht passte.

Die Lösung war ganz einfach: Das Word Release gehört zu den reservierten Wörtern in MySQL, was ich nicht wusste. Einen Überblick gibt es hier.

Die Lösung war also, den Spalte umzubennen in product_release, damit funktioniert es dann:

$products->product_release = 2003;

Was genau der release-Befehl in MySQL macht, konnt ich leider nicht herausfinden, ich freue mich auf Beiträge darüber.