Schlagwort-Archive: MySQL

Copy MySQL tables across different servers with PHP

How to copy table1 from host1 to host2:

 

Aware: all the values after pipe (|) must not contain special characters (e.g. !) as they are interpreted by the bash. So escape them.

Backup source and target before testing.

Test: dbForge Studio for MySQL

With the help of dbForge Studio for MySQL I was finally able to export all my large Excel, CVS and Access data which I use for my selling reports to my MySQL Online Database without any losses.

dbForge Studio for MySQL is a VERY smart product which e.g. automatically detected and converted the right column type (datetime) from a CSV! Non of the other programs I tested was able to do the same. (PhpMyAdmin, HeidiSQL, Oracle Workbench all failed with corrupt data)

dbForge Studio for MySQL

I strongly recommend this tool to everyone who needs to work with MySQL

More information: https://www.devart.com/de/dbforge/mysql/studio/

WordPress plugin: Display SQL Stats

Displaying SQL result data as graphical chart on the dashboard with use of Google Chart Tools.

Showing chart in dashboard

Showing chart in dashboard

Settings

Settings

Download from WordPress repository.

Changelog

0.7 (2014/02/05)

  • adding/removing SQL statements more stylish

0.6.5 (2013/12/27)

  • fix bug on automatic detection of column types
  • better formatting of debug information

0.6.4 (2013/11/08)

  • only enrich header when on dashboard

0.6.3.1 (2013/10/17)

  • fixing small bug on min/max values when using more than one barcharts

0.6.3 (2013/10/15)

  • placing automatic max/min values on barcharts for better visualisation

0.6.2 (2013/09/14)

  • bug fix on emtpy results
  • switch charts on/off

0.6.1 (2013/09/14)

  • bug fix on wrong date display

0.6 (2013/09/14)

  • Check on WordPress 3.6.1
  • New chart types: Bar Chart
  • auto detecting of column types: date, number, string

0.5 (2013/09/10)

  • Use different chart types (Pie Chart, Scatter Chart, Bubble Chart)

0.4 (2013/08/21)

  • Use multiple SQL statments and charts

 0.3 (2013/08/17)

  • Tested with WP 3.6
  • New default demo SQL to demonstrate how to insert additional columns

0.2 (2013/04/25)

  • NEW: Notepad function to store different SQL statement, ideas or whatever

0.1 (2013/04/16)

  • first test version

Quick: SquirrelMail und XAMPP lokal installieren und testen

Quick: SquirrelMail und XAMPP lokal installieren und testen

Wer Applikationen programmiert, die auch Mails verschicken, möchte dies natürlich auch lokal testen. Dazu lohnt es sich, den Webmail Client »SquirrelMail« zu installieren. Dieser Artikel ergänzt mein XAMPP-Tutorial.

1. laden http://squirrelmail.org/download.php

2. entpacken nach »c:\Programme\xampp\htdocs\squirrelmail\« und anlegen von »c:\Programme\xampp\htdocs\squirrelmail\attach\«

3. kopieren der Konfigurationsvorlage »c:\Programme\xampp\htdocs\squirrelmail\config\config_default.php« nach »c:\Programme\xampp\htdocs\squirrelmail\config\config.php«

4. editieren von »c:\Programme\xampp\htdocs\squirrelmail\config\config.php«


$domain = 'localhost';

$data_dir = 'c:\\Programme\\xampp\\htdocs\\squirrelmail\\data\\';

$attachment_dir = 'c:\\Programme\\xampp\\htdocs\\squirrelmail\\attach\\';

$imapServerAddress = 'localhost';

$smtpServerAddress = 'localhost';

5. Testen

User anlegen in Mercury. In der Admin-Oberfläche: Configuration|Manage Local Users…|Add einen User anlegen. User in Mercury meint die eigentlichen Mail-Empfänger.

Einwählen: http://localhost/squirrelmail/src/login.php

Name: Username (ohne @localhost)

Passwort: (wie festgelegt)

Mail zusenden: http://localhost/xampp/mailform.php (Adressat=Ihr neuer Nutzer PLUS @locahost). Die Mail müsste augenblicklich in SquirrelMail erscheinen, eventuell müssen Sie noch »Check mail« klicken.

WordPress und XAMPP tunen

XAMPP ist lokal und in der Standardausführung nicht sehr schnell. Daher lohnt es sich, Hand anzulegen.

Zunächst müssen wir wissen, wie langsam (oder schneller) unser System läuft. Dazu editieren Sie die WordPress Template Datei »footer.php«:

Direkt über </body> fügen Sie Folgendes ein:

<?php echo $wpdb->num_queries; ?> database queries in <?php timer_stop(1); ?>

Spielen Sie am besten ein bisschen herum, um ein Gefühl für »gute« Werte und Zeiten zu erhalten.

Laden und aktivieren Sie verschiedene Plugins, um zu prüfen, wie unterschiedlich sich die Werte entwickeln.

Bei besonders vielen SQL-Statements (auch Queries genannt), lohnt es sich, die Plugins schrittweise zu deaktivieren und zu prüfen, ob schlecht programmierte Plugins mit zu vielen Datenbankabfragen nicht durch Alternativen ersetzt werden können
Besonders verdächtig sind meiner Erfahrung nach Plugins, die die letzten Kommentare oder vergleichbare Artikel anzeigen, da diese bei jedem Aufbau der Seite generiert werden (wenn kein Cache läuft).

Testen Sie auf alle Fälle ein Cache-Plugin (ich empfehle wegen der einfachen Wartbarkeit wp-supercache). Ein Cache-System speichert bereits generierte HTML-Seiten in einen Zwischenspeicher ab, so dass diese nicht immer wieder neu generiert werden müssen.
Für Entwickler empfehle ich noch das Plugin »Debug Queries«. Dieses listet alle generierten SQL-Statements auf der Frontend-Seite auf. Dazu muss noch in der Datei »wp-config.php« was angepasst werden:



define(‚SAVEQUERIES‘, true);

Empfohlene Einstellungen

php.ini

Ort: C:\Programme\xampp\php\php.ini


memory_limit = 1024M

my.ini

Ort: C:\Programme\xampp\MySQL\bin\my.ini



key_buffer = 256M

max_allowed_packet = 16M

table_cache = 512

sort_buffer_size = 4M

read_buffer_size = 4M

read_rnd_buffer_size = 8M

net_buffer_length = 2M

innodb_buffer_pool_size = 256M

Wenn Sie merken, dass der Server langsam ist, können Sie in phpMyAdmin unter »Status« überprüfen, welche Parameter momentan Probleme bereiten. Diese werden rot hinterlegt. Anschließend sollte der Speicherplatz dafür erhöht werden.

Zur gezielteren Analyse muss man natürlich WP-Supercache zumindest für Admins deaktivieren, weil die Ergebnisse sonst verfälscht werden.

Und nicht vergessen: Es klappt nur, wenn man Apache und/oder MySQL nach jeder Änderung neu startet.

Zum Nachschlagen