Kategorien anzeigen

WordPress-MySQL-Server mit Query Streams, gehostet bei Siteground

5 Minuten Lesezeit


Query Streams ermöglicht den direkten Zugriff auf MySQL-Datenbanken von WordPress-Websites, die auf SiteGround gehostet werden. Technisch versierte Benutzer können so effizient Live-SQL-Abfragen über Excel und Google Sheets erstellen und teilen, ohne dass ein VPN oder eine komplexe Firewall-Konfiguration erforderlich ist. Diese umfassende Anleitung behandelt die wesentlichen Schritte zum Verbinden des Query Streams-Agenten mit der MySQL-Umgebung von SiteGround, zum Konfigurieren der erforderlichen Datenbank-Anmeldedaten und zum Erstellen effektiver WordPress-spezifischer Abfragen für gängige Datenextraktionsszenarien, darunter wp_posts, wp_users und benutzerdefinierte Feldtabellen. Nach der ordnungsgemäßen Konfiguration können diese Abfragen sicher mit nicht-technischen Benutzern geteilt werden, die über verschiedene Tabellenkalkulations-Add-ons problemlos auf WordPress-Daten in Echtzeit zugreifen können. Dieser Prozess macht umständliche Datenbank-Exporte oder die Weitergabe sensibler Anmeldedaten überflüssig und gewährleistet gleichzeitig robuste Sicherheitsmaßnahmen für den Lesezugriff.

1. Melden Sie sich an und gehen Sie zu Ihrem siteground.com-Konto.

Nach dem Einloggen gehen Sie zur Option „Site Tools“. Gehen Sie zu „Site“ -> „MySQL“.

2. Klicken Sie auf die Registerkarte „Remote“, Sie benötigen Ihre externe IP-Adresse.

Sie benötigen die externe IP-Adresse des Netzwerks, in dem Ihr Query Streams-Agent ausgeführt wird. Um diese zu finden, besuchen Sie Websites wie WhatIsMyIP.com, IPChicken.com oder ipinfo.io. aus demselben Netzwerk/Standort, an dem der Agent installiert istStellen Sie sicher, dass Sie die IP-Adresse vom richtigen Netzwerkstandort aus überprüfen und nicht von einem anderen Büro, Heimnetzwerk oder einer Remote-Verbindung aus.

3. Klicken Sie auf die Registerkarte „Benutzer“ und erstellen Sie einen neuen Benutzer.

Bearbeiten Sie diesen Benutzer und fügen Sie dem neuen Benutzer unbedingt eine Datenbank hinzu.

Ich empfehle schreibgeschützt.

Notieren Sie sich Ihren Benutzernamen, Ihr Passwort und Ihre Datenbank! Sie werden diese Angaben benötigen.

4. Öffnen Sie Ihren Netzwerk-Agent-https://:1823

Klicken Sie auf „Datenquellen“ –> „Verbindungen“ –> „+ Verbindung hinzufügen“.

Speichern Sie Ihre Konfiguration.

5. Öffnen Sie Ihr Google Sheets- oder Excel-Add-on.

In diesem Beispiel verwenden wir Google Tabellen.

Sie müssen Ihr Datenbankpräfix abrufen, da die meisten WordPress-Installationen ein zufälliges Präfix haben.

SELECT 
    SUBSTRING_INDEX(table_name, '_', 1) as detected_prefix,
    COUNT(*) as table_count,
    GROUP_CONCAT(
        CASE 
            WHEN table_name LIKE '%_posts' THEN 'posts'
            WHEN table_name LIKE '%_users' THEN 'users'
            WHEN table_name LIKE '%_options' THEN 'options'
            WHEN table_name LIKE '%_comments' THEN 'comments'
            WHEN table_name LIKE '%_postmeta' THEN 'postmeta'
            WHEN table_name LIKE '%_usermeta' THEN 'usermeta'
        END
    ) as wordpress_core_tables,
    CASE 
        WHEN COUNT(*) >= 10 THEN 'Primary WordPress Installation'
        WHEN COUNT(*) >= 5 THEN 'Possible WordPress Installation' 
        ELSE 'Plugin/Custom Tables'
    END as installation_type
FROM information_schema.tables 
WHERE table_schema = DATABASE()
AND table_name LIKE '%_%'
GROUP BY SUBSTRING_INDEX(table_name, '_', 1)
HAVING wordpress_core_tables IS NOT NULL
ORDER BY table_count DESC;

Jetzt haben Sie Ihr Präfix.

5. Hier sind einige Beispielabfragen, die Sie ausführen können. Achten Sie darauf, das Präfix durch das Ihrer Website zu ersetzen.

.

Täglicher Traffic-Überblick (letzte 30 Tage)

SELECT 
    DATE(last_counter) as visit_date,
    COUNT(DISTINCT ip) as unique_visitors,
    COUNT(*) as total_visits,
    SUM(hits) as page_views,
    ROUND(SUM(hits) / COUNT(DISTINCT ip), 2) als pages_per_visitor,
    DAYNAME(last_counter) als day_of_week
FROM nxj_statistics_visitor 
WHERE last_counter >= DATE_SUB(NOW(), INTERVAL 30 DAY)
GROUP BY DATE(last_counter)
ORDER BY visit_date DESC;

Geografische Verteilung der Besucher

SELECT 
    CASE 
        WHEN location IS NULL OR location = '' THEN 'Unbekannter Standort'
        ELSE location 
    END as visitor_location,
    COUNT(DISTINCT ip) as unique_visitors,
    COUNT(*) as total_visits,
    SUM(hits) as page_views,
    ROUND(COUNT(*) * 100.0 / (
        SELECT COUNT(*) FROM nxj_statistics_visitor 
        WHERE last_counter >= DATE_SUB(NOW(), INTERVAL 30 DAY)
    ), 2) als prozentualer_Anteil_am_Traffic,
    ROUND(SUM(hits) / COUNT(*), 2) als durchschnittliche_Seitenaufrufe_pro_Besuch
FROM nxj_statistics_visitor
WHERE last_counter >= DATE_SUB(NOW(), INTERVAL 30 DAY)
GROUP BY visitor_location
ORDER BY unique_visitors DESC
LIMIT 15;

Benutzerverhalten und Sitzungsanalyse

SELECT 
    CASE 
        WHEN hits = 1 THEN 'Bounce (1 Seite)'
        WHEN hits BETWEEN 2 AND 3 THEN 'Schnelldurchsuchen (2-3 Seiten)'
        WHEN hits BETWEEN 4 AND 7 THEN 'Engagiert (4-7 Seiten)'
        WHEN hits BETWEEN 8 AND 15 THEN 'Sehr engagiert (8-15 Seiten)'
        WHEN hits > 15 THEN 'Power-User (15+ Seiten)'
    END als engagement_level,
    COUNT(*) als visitor_count,
    ROUND(COUNT(*) * 100,0 / (
        SELECT COUNT(*) FROM nxj_statistics_visitor 
        WHERE last_counter >= DATE_SUB(NOW(), INTERVAL 30 DAY)
    ), 2) als Prozentsatz,
    ROUND(AVG(hits), 2) als avg_pages_in_group,
    MIN(hits) als min_pages,
    MAX(hits) als max_pages
FROM nxj_statistics_visitor
WHERE last_counter >= DATE_SUB(NOW(), INTERVAL 30 DAY)
GROUP BY engagement_level
ORDER BY avg_pages_in_group;

Geräte- und Technologienutzungsmuster

SELECT 
 CASE 
 WHEN agent LIKE '%Mobile%' OR agent LIKE '%Android%' OR agent LIKE '%iPhone%' OR agent LIKE '%BlackBerry%' THEN 'Mobile'
 WHEN agent LIKE '%Tablet%' OR agent LIKE '%iPad%' THEN 'Tablet'
 WHEN agent LIKE '%Windows%' OR agent LIKE '%Macintosh%' OR agent LIKE '%Linux%' OR agent LIKE '%Ubuntu%' THEN 'Desktop'
 WHEN agent LIKE '%bot%' OR agent LIKE '%Bot%' OR agent LIKE '%spider%' THEN 'Bot/Crawler'
 ELSE 'Unknown Device'
 END als Gerätetyp,
 
 CASE 
 WENN Agent LIKE '%Chrome%' UND Agent NOT LIKE '%Chromium%' DANN 'Chrome'
 WENN Agent LIKE '%Firefox%' DANN 'Firefox'
 WENN Agent LIKE '%Safari%' UND Agent NOT LIKE '%Chrome%' DANN 'Safari'
 WHEN agent LIKE 'ge%' THEN 'Edge'
 WHEN agent LIKE '%Opera%' THEN 'Opera'
 WHEN agent LIKE '%bot%' OR agent LIKE '%Bot%' THEN 'Bot'
 ELSE 'Anderer Browser'
 END als browser_type,
 
 COUNT(*) als visits,
 COUNT(DISTINCT ip) als unique_visitors,
 SUM(hits) als page_views,
 ROUND(AVG(hits), 2) als avg_pages_per_visit,
 ROUND(COUNT(*) * 100.0 / (
 SELECT COUNT(*) FROM nxj_statistics_visitor 
 WHERE last_counter >= DATE_SUB(NOW(), INTERVAL 30 DAY)
 ), 2) als percentage_of_traffic
FROM nxj_statistics_visitor
WHERE last_counter >= DATE_SUB(NOW(), INTERVAL 30 DAY)
 AND agent IS NOT NULL
GROUP BY device_type, browser_type
ORDER BY visits DESC
LIMIT 20;
Aktualisiert am 6. Juli 2025

Angetrieben durch BetterDocs