Register for your free account! | Forgot your password?

Go Back   elitepvpers > Popular Games > Metin2 > Metin2 Private Server
You last visited: Today at 06:26

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



MySQL Synchronisation

Discussion on MySQL Synchronisation within the Metin2 Private Server forum part of the Metin2 category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Nov 2008
Posts: 8
Received Thanks: 0
Post MySQL Synchronisation

Folgende Frage stellt sich:

die Homepage ist auf Server 1 samt ihrer MYSQL, der Gameserver auf Server 2 mit seiner MYSQL.

Nun benötigt aber die Homepage Zugriff auf sämtliche DBs vom Gameserver, lesen sowie schreiben, kann mir jemand mitteilen wie man dies sicher vereinbaren kann.

Bitte nicht einfach, schreiben mittels php Script.. wenn dann eine richtige Lösung, ich bin leider ein php Noob.
puchlij54 is offline  
Old 12/28/2015, 22:06   #2
 
elite*gold: 0
Join Date: Oct 2010
Posts: 315
Received Thanks: 49
Du hast aber schon 1 MySQL Server und 2 DB's oder hast du auch 2 MySQL Server? Vereinbaren? Verstehe nicht ganz was du damit meinst, entweder beide Datenbanken vereinen (was keinen wirklichen Sinn ergibt) oder du musst halt einen neuen User in der Gameserver DB anlegen der die Rechte hat die die Homepage brauch und dann mit diesem auf die DB zugreifen!

Vielleicht verstehe ich dein Problem auch falsch.

LG,
holy

P.S: Rechtsbündig, bitte nicht!
holyshit390 is offline  
Old 12/28/2015, 22:14   #3
 
elite*gold: 0
Join Date: Nov 2008
Posts: 8
Received Thanks: 0
Nun ja die Homepage benötigt die DB vom CMS um die Seiten aufzubauen und Diverse Sachen in den Tables zu speichern, wenn ich die DB vom CMS in die MYSQL vom Gameserver einfüge, laden die Seiten extrem lange.

Die Homepage muss Accounts anlegen, Items vergeben, Spielerinformationen & Log Informationen abrufen solche Sachen eben.
puchlij54 is offline  
Old 12/28/2015, 22:17   #4
 
elite*gold: 0
Join Date: Oct 2010
Posts: 315
Received Thanks: 49
Ja genau, das ist ja auch nicht Sinn der Sache.

Dann sehe ich das Problem aber nicht, du kannst doch dem CMS (Homepage) sagen das die auf eine andere MySQL Datenbank (Server) zugreifen soll. Sprich ist doch wurst ob die DBs auf verschiedenen Servern sind, kommt einfach nur auf dein CMS an, bzw Metin 2 Plugin oder anderes.

LG,
holy
holyshit390 is offline  
Old 12/29/2015, 02:28   #5
 
elite*gold: 0
Join Date: Aug 2009
Posts: 1,422
Received Thanks: 1,368
Ich mache es so:

Webseite, TS und Mysql auf einen Root
Gameserver auf einem 2. Root der die Mysql von Root 1 nutzt somit ist die Webseite schnell und zum 2. ist der TS und die Webseite online wenn was am Gameroot gemacht wird
blackout85 is offline  
Old 12/29/2015, 18:19   #6
 
elite*gold: 0
Join Date: Nov 2008
Posts: 8
Received Thanks: 0
Dann braucht ja alles vom Gameserver zu der externen MYSQL extrem lange, bei 1000 aufwärts dürfte das kritisch werden.

Bisher sah ich es immer so auf anderen Servern, das sie ihre Datenbanken live synchronisieren und duplizieren...
puchlij54 is offline  
Old 12/30/2015, 00:08   #7
 
SinSay's Avatar
 
elite*gold: 120
Join Date: May 2013
Posts: 419
Received Thanks: 208
Denn hättest du das gleiche Problem nur doppelt so schlimm wenn du beide Synchronisierst dann werden ja etliche anfragen zu den servern gesendet und diese müssen dann ja auch verarbeitet werden. Das würde dann nicht lange gut gehen da das von blackout besser....
SinSay is offline  
Old 12/31/2015, 13:47   #8
 
Mashkin's Avatar
 
elite*gold: 44
Join Date: May 2010
Posts: 2,053
Received Thanks: 1,747
Quote:
Originally Posted by puchlij54 View Post
wenn ich die DB vom CMS in die MYSQL vom Gameserver einfüge, laden die Seiten extrem lange.
Da solltest du primär dran arbeiten.

Wenn ich davon ausgehe, dass deine beiden Server irgendwo in Europa stehen, sollten RTTs ("Pings") von über 20ms kaum vorkommen.
Die Bandbreite eines üblichen Servers (>= 100Mb/s) sollte selbst für umfangreiche Queries (bzw. große Ergebnismengen) ausreichen.

Weiter gehe ich mal davon aus, dass dein Gameserver (inkl. DB) nicht überlastet ist, die Queries also auf beiden Datenbankhosts ähnlich schnell bearbeitet werden können.

Da bleibt die Frage:
Warum verlängern sich die Ladezeiten der Website "extrem", wenn die Netzwerkverzögerung von üblicherweise 20ms (RTT) der einzige zusätzliche Zeitfaktor ist?
  • Die Datenbank auf dem Gameserver ist langsam.
    Das würde dann auch InGame auffallen, Abhilfe schafft bei ausgelasteten Servern Tuning, ansonsten ein Server-Upgrade.
  • Die RTT zwischen beiden Servern liegt weit über 20ms (zu testen mit ping-Tool auf Server A zu Server B).
    Einer der Hoster hat vmtl. einfach eine sehr schlechte Anbindung (zum anderen Hoster oder allgemein). Ein Hoster-/Standortwechsel schafft Abhilfe.
  • Firewalls o.ä. verursachen Probleme bei der Verbindung, der Verbindungsaufbau dauert lange etc.
    Das kann man testen, indem man z.B. mit PHP's microtime die Zeiten für Verbindungsaufbau und Queries misst, oder indem man mysql direkt in der Konsole verwendet.
    Abhilfe schafft evtl. ein Verbindungstunnel wie ich ihn weiter unten bei der Sicherheit nochmal beschreibe.


Replikation (aka "Synchronisierung") löst das vermutliche Problem nicht. Übliche Netzwerkverzögerungen (max. 20ms in Europa) lassen sich zwar für den Client (die Website) eliminieren, aber die Replikation selbst erfolgt mit Verzögerung.
Außerdem kenne ich kaum einen Privatserver, bei dessen Website es auf (maximal) 20ms ankommt. Bei meinem eigenen Projekt wird zwar Replikation zum Einsatz kommen, aber das ist in erster Linie mit Ausfallsicherheit begründet.


Zum Punkt Sicherheit:
Das MySQL-Protokoll ist ansich unverschlüsselt, unterstützt aber nativ SSL/TLS. Persönlich habe ich mich noch nie damit befasst.
Um die (unsichere) Verbindung aber sicher zu tunneln, kann man ein VPN - z.B. OpenVPN - installieren (das benötigt Grundkenntnisse über Routing).
Eine einfachere Alternative ist eine persistente SSH-Portweiterleitung.
Hilfreich ist dafür das Programm , welches als SSH-Client dient und die Verbindung im Fehlerfall neu aufbaut.


Beispiel:
Auf dem Webserver eine SSH-Verbindung öffnen:
Code:
autossh -M 0 -f -N -L 3307:localhost:3306 <gameserver>
Als MySQL-Adresse für die Website dient dann "localhost:3307", was durch den Tunnel zum Gameserver und von dort zu "localhost:3306" weitergeleitet wird.


Für Details zur Konfiguration schaust du dir am besten das und an.
Mashkin is offline  
Reply


Similar Threads Similar Threads
Datenbank Synchronisation (Web MySQL to Android SQLite)
11/07/2014 - General Coding - 5 Replies
Hallo epvper, ich bin gerade dabei eine App für Android zu programmieren. Nun bin ich vor folgendem Problem: Auf meinem Webserver verwende ich MySQL, wo Daten gespeichert sind, welche man über eine Website bearbeiten kann. In der App für Android verwende ich SQLite und momentan ist es möglich Daten vom WebServer über eine API (mit Nutzerdaten) herunter zu laden... Dann hat man quasi eine Offline Version der Daten in der App. Nun zu meinem Problem: Natürlich ist es relativ doof nur...
Video Programm zur synchronisation
02/18/2013 - Video Art - 2 Replies
Hallo, suche ein Programm, womit ich Video neu synchronisieren kann. Weiß jemand ein gutes?
Vertikale Synchronisation an oder aus?
10/19/2012 - Battlefield - 17 Replies
Hey Leute, Ich spiele BF3 mit hohen Einstellungen(Aber SSAO statt HBAO) bei 1360x760 60Hz und habe komischerweise OHNE VSync oft ein schwammiges Mausgefühl sobald ich mehr als 60fps erreiche.(Habe 60-80fps) Schalte ich es an, läuft alles wunderbar flüssig mit konstanten 60fps, woran kann das liegen? Achja ich meine wirklich einfach nur schwammig!Kein Tearing! Mein System: HD 7770 OC Intel Core i5 3450 6GB RAM
Synchronisation nicht möglich ?
08/16/2012 - Smartphones - 1 Replies
Hey, Ich habe seit heute auf meinem Handy eine Internetflat von o² und es funktioniert auch alles wunderbar außer der Android Store. Sobald ich mich anmelden möchte läd er entweder bis in alle ewigkeit oder er sagt mir das ich keine netzwerk verbindung habe.. Accountdaten usw. stimmen alles, was kann ich machen ?
Synchronisation von Computern
07/06/2012 - Web Development - 1 Replies
Moin, folgende Ausgangssituation: ich bin gerade dabei, ein kleines browserbasiertes-multiplayer-onlinegame zu programmieren. Auf der Startseite kann Player1 ein neues Spiel eröffnen, dazu wird ihm eine spezielle url zugewiesen (bsp: index.php?gameId=12345). Über diese Url kann sich Player2 ebenfalls in das Spiel einwählen, indem er seinen Spielernamen angibt. Wenn beide Spieler einen haken bei "bereit" gemacht haben, soll das Spiel in genau 5 Sekunden (countdown wird angezeigt) bei jedem...



All times are GMT +1. The time now is 06:26.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.