Categorieën bekijken

WordPress MySQL server met Query Streams, gehost op Siteground

Leestijd: 5 minuten


Query Streams maakt directe toegang tot de MySQL-database mogelijk voor WordPress-sites die op SiteGround worden gehost. Hierdoor kunnen technische gebruikers efficiënt live SQL-query's maken en delen via Excel en Google Sheets, zonder dat een VPN of complexe firewallconfiguratie nodig is. Deze uitgebreide handleiding beschrijft de essentiële stappen voor het verbinden van de Query Streams-agent met de MySQL-omgeving van SiteGround, het configureren van de benodigde databasegegevens en het bouwen van effectieve, WordPress-specifieke query's voor veelvoorkomende scenario's voor gegevensextractie, zoals wp_posts, wp_users en aangepaste veldtabellen. Na een correcte configuratie kunnen deze query's veilig worden gedeeld met niet-technische gebruikers, die eenvoudig toegang hebben tot realtime WordPress-gegevens via verschillende spreadsheet-add-ons. Dit proces elimineert de noodzaak voor omslachtige database-exports of het delen van gevoelige inloggegevens, terwijl robuuste, alleen-lezen beveiligingsmaatregelen worden gehandhaafd.

1. Log in en ga naar uw siteground.com-account.

Nadat u bent ingelogd, gaat u naar de optie 'Site Tools'. Ga vervolgens naar 'Site' -> 'MySQL'.

2. Klik op het tabblad 'Extern'. Je hebt je externe IP-adres nodig.

Je hebt het externe IP-adres nodig van het netwerk waarop je Query Streams-agent draait. Om dit te vinden, ga je naar websites zoals WhatIsMyIP.com, IPChicken.com of ipinfo.io. vanuit hetzelfde netwerk/op dezelfde locatie als waar de agent is geïnstalleerd.Zorg ervoor dat u het IP-adres controleert vanaf de juiste netwerklocatie en niet vanaf een ander kantoor, thuisnetwerk of externe verbinding.

3. Klik op het tabblad 'Gebruikers' en maak een nieuwe gebruiker aan.

Bewerk die gebruiker en zorg ervoor dat je een database toevoegt aan de nieuwe gebruiker.

Ik raad aan om alleen te lezen.

Noteer je gebruikersnaam, wachtwoord en database! Je hebt ze nodig.

4. Open uw netwerkagent https://:1823

Klik op Gegevensbronnen –> Verbindingen –> + Verbinding toevoegen

Sla je configuratie op.

5. Open je Google Sheets- of Excel-add-on.

In dit voorbeeld gebruiken we Google Sheets.

Je moet je databaseprefix achterhalen, aangezien de meeste WordPress-installaties een willekeurige prefix hebben.

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 'Primaire WordPress-installatie' WHEN COUNT(*) >= 5 THEN 'Mogelijke WordPress-installatie' ELSE 'Plugin/Aangepaste tabellen' 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;

Nu heb je je voorvoegsel.

5. Hier volgen enkele voorbeeldquery's die u kunt uitvoeren. Zorg ervoor dat u het zoek-/vervangvoorvoegsel vervangt door het voorvoegsel van uw site.

.

Dagelijks verkeersoverzicht (afgelopen 30 dagen)

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) as pages_per_visitor, DAYNAME(last_counter) as 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 spreiding van bezoekers

SELECT CASE WHEN location IS NULL OR location = '' THEN 'Onbekende locatie' 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) as percentage_of_traffic, ROUND(SUM(hits) / COUNT(*), 2) as avg_pages_per_visit FROM nxj_statistics_visitor WHERE last_counter >= DATE_SUB(NOW(), INTERVAL 30 DAY) GROUP BY visitor_location ORDER BY unique_visitors DESC LIMIT 15;

Gebruikersgedrag en sessieanalyse

SELECT CASE WHEN hits = 1 THEN 'Bounce (1 pagina)' WHEN hits BETWEEN 2 AND 3 THEN 'Quick Browse (2-3 pagina's)' WHEN hits BETWEEN 4 AND 7 THEN 'Engaged (4-7 pagina's)' WHEN hits BETWEEN 8 AND 15 THEN 'Very Engaged (8-15 pagina's)' WHEN hits > 15 THEN 'Power User (15+ pagina's)' END as engagement_level, COUNT(*) as visitor_count, ROUND(COUNT(*) * 100.0 / ( SELECT COUNT(*) FROM nxj_statistics_visitor WHERE last_counter >= DATE_SUB(NOW(), INTERVAL 30 DAY) ), 2) as percentage, ROUND(AVG(hits), 2) as avg_pages_in_group, MIN(hits) as min_pages, MAX(hits) as 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;

Gebruikspatronen van apparaten en technologie

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 as device_type, CASE WHEN agent LIKE '%Chrome%' AND agent NOT LIKE '%Chromium%' THEN 'Chrome' WHEN agent LIKE '%Firefox%' THEN 'Firefox' WHEN agent LIKE '%Safari%' EN agent NIET HOUDT VAN '%Chrome%' DAN 'Safari' WANNEER agent HOUDT VAN 'ge%' DAN 'Edge' WANNEER agent HOUDT VAN '%Opera%' DAN 'Opera' WANNEER agent HOUDT VAN '%bot%' OF agent HOUDT VAN '%Bot%' DAN 'Bot' ANDERS 'Andere Browser' EINDE als browsertype, COUNT(*) als bezoeken, COUNT(DISTINCT ip) als unieke bezoekers, SUM(hits) als paginaweergaven, ROUND(AVG(hits), 2) als gemiddelde pagina's per bezoek, ROUND(COUNT(*) * 100.0 / ( SELECT COUNT(*) FROM nxj_statistics_visitor WHERE last_counter >= DATE_SUB(NOW(), INTERVAL 30 DAY) ), 2) als percentage van het verkeer 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;
Geüpdatet op 6 juli 2025

Mogelijk gemaakt door BetterDocs