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.
.
Es ist wichtig, dass Sie Ihr Präfix suchen und 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;


