PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : SSH: remote MySQL Datenbank updaten per cron



tschloss
16.03.08, 20:25
Hi,

ich habe zwar schon etwas an den Möglichkeiten geschnuppert, mit SSH Pipes zw. lokalem und entfernten System umzuleiten, aber bevor ich jetzt lange experimentiere, frage ich euch mal (in der Hoffnung, dass das ein "Standardproblem" ist, welches ohne Arbeit beantwortbar ist).

Situation:
- ich habe zwei Server, beide mit SSH-Zugang und jew. einer MYSQL-DB darauf.
- Quell-DB: Tabelle users(id,pwdclr,...);
- Ziel-DB: Tabelle fe_users(username, password, ....)

Ziel:
- gesucht ist ein Skript / Einzeiler, der
- Daten aus Quelle extrahiert (select id,pwdclr from users where id like "49%";)
- dieser Daten in Ziel-DB "inserted" (ich lösche die DB vorher). "load" ginge sicher auch.

Einen Dump kann ich nicht verwenden, da die MySQL-Versionen unterschiedlich sind und ich da schon heftig auf die Nase gefallen mit.
Umlaute kommen nicht vor.

Hat jmd. einen Ansatz, wie ich das in einem Rutsch bewerkstelligen kann?
Wenn nicht, dann werde ich es per 2-step machen (Quell-Server stellt Datei bereit und lädt hoch, Ziel-Server nimmt Upload regelmäßig auf und fügt diesen in DB ein).

Danke für Tipps
Thomas

Svenny
16.03.08, 20:29
Das was du da so beschreibst ist irgendwie ein typischer Master-Slave Replication Aufbau.

3qualizer
16.03.08, 20:31
Ich würde es trotzdem mit mysqldump machen, allerdings folgendermassen:

mysqldump --skip-lock-tables --skip-extended-insert --compact -u user --password=password datenbank tabelle --where="id like '49%'" | grep ^INSERT
und dann wieder mit mysql reinholen.
Die einfachen INSERT-Befehle dürften imho so ziemlich überall gehen.

PS: natürlich nur wennes sich nur um neue Datensätze handelt. Ansonsten Replikation wie schon angesprochen

cane
16.03.08, 20:39
Wird das ein SingleSignOn "für Arme"? ;)

Warum lässt Du Typo3 nicht direkt gegen das andere System authentifizieren, Beispiel:
http://typo3.org/documentation/document-library/extension-manuals/rlmp_extdbauth/1.0.2/view/1/3/

mfg
cane

tschloss
16.03.08, 21:05
Wird das ein SingleSignOn "für Arme"? ;)

Warum lässt Du Typo3 nicht direkt gegen das andere System authentifizieren, Beispiel:
http://typo3.org/documentation/document-library/extension-manuals/rlmp_extdbauth/1.0.2/view/1/3/

mfg
cane

Ich wagte nicht anzunehmen, dass sowas schon ohne großes Gefuddel geht. Das schaue ich mir näher an.
In jeden Fall, sehr guter Tipp!!

Danke auch schon mal an die anderen Schnellantworter. 3equalizer, das sieht aus, wie das, was ich ursprünglich gesucht habe. Danke!

VG Thomas

tschloss
19.03.08, 19:45
Da Quell und Zieldatenbank völlig unterschiedliche Struktur haben, war das auch mit dem reduzierten Dump nicht so ideal.

Ich gestehe, dass mir nach kurzem Studium der Typo3-Extension zur externen Authentifizierung dieser Weg zu viel Zeitaufwand bedeutete (ich kenne mich mit Typo3 auch nicht aus, das macht unsere Agentur).

Ich habe jetzt ein kleines Skript auf der Quellmaschine bestehend aus einem
select > datei //username,passwort extrahieren
awk datei > datei2 //aufbereiten in insert-statements
ssh zielserver mysql <datei2 //ausführen von mysql remote mit lokalem Input

Vorher noch eine Identity eingerichtet, um interaktionsfrei zu bleiben.
Das ganze in den cron.daily gehängt.

Danke dennoch, beide Ansätze sind vorgemerkt!
Thomas