Haumis wbb hilfe 
Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite
Galerie Datenbank Zum Portal

Startseite| Das Board| wbb2| wbblite| Wo finde ich was| Veränderungen| Grafik-Bereich-WBB2| Boardspiele| Vorstellungen| Allgemeines| Trainingscenter|
Haumis wbb hilfe » ...:::Trainingscenter-wbb2:::... » mysql » 2 Dbs auf 2 Servern, 1 PHP-Datei?!? » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen 2 Dbs auf 2 Servern, 1 PHP-Datei?!?
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Hangasilly Hangasilly ist männlich

[meine Galerie]


Dabei seit: 29.06.2012
Beiträge: 221
Herkunft: NRW
Postid: 16865
2 Dbs auf 2 Servern, 1 PHP-Datei?!? Beitrag Nr.: 1     Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hey zusammen...

ich hab mal wieder bissel gescriptet und bin an nem Problem angelangt... da ich hier immer so schön Hilfe finde frag ich mal ;) :

Folgendes, ich habe ne PHP-Datei, die auch soweit tut was sie soll.
Zu einen gehts darum ne '1' in der WBB-DB abzufragen und dann ggf. etwas im Forum anzuzeigen (das klappt super).

Jetz ist es aber so, dass auch noch eintragungen in eine andere DB auf nem anderen Server getätigt werden sollen. (Die o.g. '1' wird dann gesetzt, wenn etwas eingetragen wurde dort woanders halt...)

ich habe dann zum einen für die 1 folgendes:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
	$auswahlAccYN = "SELECT * FROM bb1_users";
	$AccYN = mysql_query($auswahlAccYN);		
	$Acc = mysql_fetch_object($AccYN);
	$Acc_vorhanden = $Acc->gameacc;

	if(isset($_POST['action']) == "create") {
		If($_POST[Nick]=="Nickname" OR $_POST[Nick]=="" OR $_POST[Pass]=="Passwort" OR $_POST[Pass]=="") {
		$fehler = $fehler ." Bitte gib einen Accountnamen als auch ein Passwort an! ";
		
		}else{
			if($fehler==""){
				$neuacc1 = "UPDATE bb1_users SET gameacc ='1' WHERE username =' ' ";
				$auswahl1 = mysql_query($neuacc1);
			}
		}
	}


HIer fehlt mir noch der Username , der grad einträgt... bzw dessen Variable...

und dann muss ich auf die andere DB auf dem femen Server:
Die Daten hierzu liegen in ner extra Datei "acc_db_conf.php" im acp/lib - Ordner.

Mein Zugriff folgt dann auf den Code oben so:
code:
1:
2:
3:
4:
5:
6:
7:
8:
....
require_once ('acp/lib/acc_db_conf.php');
$db_link = mysqli_connect (
                     MYSQL_HOST, 
                     MYSQL_BENUTZER, 
                     MYSQL_KENNWORT, 
                     MYSQL_DATENBANK
                    );




Nun hab ich testweise probiert mir die variable $db_link ausgeben zu lassen, aber anscheinend steht da nichts drin....

Und jetz is noch die Frage, wie ich ihm bei der Übergabe nacher sage, dass er betreffende externe DB nutzen soll:
code:
1:
2:
3:
4:
5:
6:
if($fehler==""){
				$neueintrag_nick = $_POST[Nick];
				$neueintrag_pass = $_POST[Pass];
				$neuacc = "UPDATE auth SET name= '$neueintrag_nick', pass= '$$neueintrag_pass' ";
				$auswahl = mysql_query($neuacc);
			}




^^wo muss hier die Variable $db_link übergeben werden?!?

__________________

06.06.2018 17:38 Hangasilly ist offline E-Mail an Hangasilly senden Homepage von Hangasilly Beiträge von Hangasilly suchenNehmen Sie Hangasilly in Ihre Freundesliste auf
haumi haumi ist männlich
Boardbetreiber

images/avatars/avatar-214.jpg
[meine Galerie]


Dabei seit: 06.06.2009
Beiträge: 3.441
Herkunft: NRW
Postid: 16869
Beitrag Nr.: 2     Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ich habe mir das jetzt noch nicht im Detail angesehen, aber $db_link
wird an folgender Stelle eingefügt:

$auswahl = mysql_query($db_link,$neuacc);

Der Befehl mysql_query muss meines Wissens auch umbenannt werden in mysqli_query.

Schau mal ob es klappt, ansonsten muss ich mich damit noch einmal befassen.

LG
haumi

__________________
Gelassen das hinnehmen, was nicht zu ändern ist,
engagiert angehen was man gestalten kann.

07.06.2018 08:26 haumi ist offline E-Mail an haumi senden Homepage von haumi Beiträge von haumi suchenNehmen Sie haumi in Ihre Freundesliste auf
Hangasilly Hangasilly ist männlich

[meine Galerie]


Dabei seit: 29.06.2012
Beiträge: 221
Herkunft: NRW
Postid: 16873
Themenstarter Thema begonnen von Hangasilly
Beitrag Nr.: 3     Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ok danke erstmal, ich teste es mal durch^^

__________________

07.06.2018 19:59 Hangasilly ist offline E-Mail an Hangasilly senden Homepage von Hangasilly Beiträge von Hangasilly suchenNehmen Sie Hangasilly in Ihre Freundesliste auf
Hangasilly Hangasilly ist männlich

[meine Galerie]


Dabei seit: 29.06.2012
Beiträge: 221
Herkunft: NRW
Postid: 16881
Themenstarter Thema begonnen von Hangasilly
Beitrag Nr.: 4     Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

sooo Update:

^^so gings schonmal nicht *gg...

hab nur bissel nachgeforscht und ne andere Möglichkeit gefunden:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
$pdo_server   = 'mysql:dbname=auth;host=xxx.xxx.xxx.xxx; port=xxxx;
$pdo_user     = 'user';
$pdo_password = 'PW';	
	
$pdo      = new PDO($pdo_server, $pdo_user, $pdo_password);

.....

$auswahl = mysqli_query($pdo,$neuacc);



das läuft zwar durch, aber läd nichts in die externe DB (übrigens muss 'xxx' natürlich durch die IP und den freigegebenen Port ersetzt werden).

Daten stimmen, da ich via Navicat auch damit auf die DB komme und alles machen kann...

__________________

08.06.2018 16:04 Hangasilly ist offline E-Mail an Hangasilly senden Homepage von Hangasilly Beiträge von Hangasilly suchenNehmen Sie Hangasilly in Ihre Freundesliste auf
Hangasilly Hangasilly ist männlich

[meine Galerie]


Dabei seit: 29.06.2012
Beiträge: 221
Herkunft: NRW
Postid: 16913
Themenstarter Thema begonnen von Hangasilly
Beitrag Nr.: 5     Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ich beleb das ncohmal wieder:

hab jetz tausend Sachen durchprobiert, im mom versuch ich die verbindung so zu machen:
code:
1:
2:
3:
require_once('/acp/lib/acc_db_conf.php');
$db = new pdo('mysql:host=$sqlhost:$sqlport;dbname=$sqldb','$sqluser','$sqlpassword');




sobald ich das NICHT auskommentiere, macht er mir die Seite weiß beim ausführen...
Auskommentiert funktioniert das Script, was dahinter liegt (bis auf den eintrag halt, weil keine DB...)

Jedenfalls hab ich mir dann ein COnnect-Script gebastelt, was mir den Fehler vom Server zurück gibt... dieses sagt dann:
>>>>
Failed to get DB handle: could not find driver
<<<<
Ich hab nur kein Plan, was mir das sagen soll :-\

ANpingen (auch via Script) kann ich den anderen Server aber und es wird mir dann auch bestätigt, dass beide (mein Server und der Externe) online sind...

Sind beides Linux-Server...
Laut dem Log meines Servers kommt die Fehlermeldung vom Fremdserver, weil bei mir existiert sie im Log halt nicht...^^

*verzweifelt*

edit:// ich befürchte fast, ich muss mit SOAP arbeiten... das heißt wieder neu lernen *seufz*

__________________

22.06.2018 19:50 Hangasilly ist offline E-Mail an Hangasilly senden Homepage von Hangasilly Beiträge von Hangasilly suchenNehmen Sie Hangasilly in Ihre Freundesliste auf
haumi haumi ist männlich
Boardbetreiber

images/avatars/avatar-214.jpg
[meine Galerie]


Dabei seit: 06.06.2009
Beiträge: 3.441
Herkunft: NRW
Postid: 16915
Beitrag Nr.: 6     Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Von Hause aus ist es wie es ausschaut nicht möglich von außen auf die Datenbank zuzugreifen

Zitat:
Aus Sicherheitsgründen ist per default der Zugriff auf die Datenbanken nur von lokal, also dem Server selbst erlaubt.


Du kannst aber mal googlen und zwar nach >> zugriff auf eine externe datenbank <<
da gibt es einige Hinweise.

LG
haumi

__________________
Gelassen das hinnehmen, was nicht zu ändern ist,
engagiert angehen was man gestalten kann.

22.06.2018 21:03 haumi ist offline E-Mail an haumi senden Homepage von haumi Beiträge von haumi suchenNehmen Sie haumi in Ihre Freundesliste auf
Hangasilly Hangasilly ist männlich

[meine Galerie]


Dabei seit: 29.06.2012
Beiträge: 221
Herkunft: NRW
Postid: 16919
Themenstarter Thema begonnen von Hangasilly
Beitrag Nr.: 7     Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

JA... in der php.ini müssen wohl 2 Einträge hinzugefügt werden, soweit die bisherige Forschung das bis jetz ergab...
code:
1:
2:
3:
extension=pdo.so
extension=pdo_mysql.so



werden das mall diese Woche testen^^

__________________

25.06.2018 17:27 Hangasilly ist offline E-Mail an Hangasilly senden Homepage von Hangasilly Beiträge von Hangasilly suchenNehmen Sie Hangasilly in Ihre Freundesliste auf
Hangasilly Hangasilly ist männlich

[meine Galerie]


Dabei seit: 29.06.2012
Beiträge: 221
Herkunft: NRW
Postid: 17100
Themenstarter Thema begonnen von Hangasilly
Beitrag Nr.: 8     Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Sooooo.... mal kleines Updat zum Stand der Dinge:

Das was ich probiert hab, funktionierte alles nciht so, wie ichs wollte :P ... Aber ich hab - die Problematik mit den 2 Servern und 2 DBs Daten-hin-und-herschieben anders gelöst :

via
code:
1:
2:
$curl und $_GET






^^ das ist ganz toll und funktioniert auch soweit, wenn es denn um 1 oder 2 DB-Einträge geht...
Nun steh ich allerdings vor dem Probelm, dass ich ein paar mehr einträge braucht, die ich auslesen muss....
Nach ein bisschen google bin ich nun bei der Idee, die Daten auf ABruf via PHP bei Server 1 in eine *.txt zu schreiben und das ganze dann von einer PHP auf Server2 auslesenzulassen, indem die php einfach die *.txt abruft.

Erst war ich bei dem Problem, dass mir die PHP von Server1 immer sagte, sie könne die *.txt nicht öffnen - das klappt nun, das war ein simples CHMOD-Problemchen...
Allerdings schreibt mir die PHP nun nichts in die *.txt rein...

hier mal zur VERBESSERUNG die PHP:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
<?php
$filename="shop2_data_out.php";

//Datenbank
$db = mysqli_connect("localhost", "user", "pw", "DATABASExxx");


//Datei öffnen und prüfen
$txt= fopen("chars.txt", "w");
if( !$txt )
{
  die("Datei zum exportieren konnte nicht geöffnet werden");
}

//Name und guID des Acc
$Name_guID_out = "SELECT `guid`, `name` FROM DATABASExxx.characters WHERE `account` LIKE '17' "; 

$Name_u_guID = mysql_query($$Name_guID_out);
while($row=mysql_fetch_row($Name_u_guID))
{
  $txtLine = implode( '<br />' , $row );
 

//Neue Zeile anhängen
  fputs( $txt, "$txtLine\n" );
}

//Datei schliessen und speichern
fclose( $txt );
?>






Mein Wunsch ist, dass er mir hier nun 7 zeilen schreibt mir je dem Inhalt der beiden Spalten...
Der DB-Zugriff is hier zwar unkenntlich, aber funzt... der mySQL-Zugriff wo ich guid und name auskesen will klappt auch (zumin im phpmyadmin).

Die Frage is halt, wo is mein fehler hier?


By the way: Sinn und Zweck ist es hier, die Dateneinträge, die in der 'Accountspalte' als 17 definiert sind, in eine DB auf Server2 zu übertragen... falls jemand ne andere Idee dazu hat, bin ich für alles offen!


Edit://
Hab da grad noch was gefunden:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
 
SELECT * INTO OUTFILE 'data.txt'
  FIELDS TERMINATED BY ','
  FROM table2;


Und


LOAD DATA INFILE 'data.txt' INTO TABLE table2
  FIELDS TERMINATED BY ',';




is vllt auch noch ne Metode... Werd mich damit nacher mal befassen...

__________________

02.01.2020 20:33 Hangasilly ist offline E-Mail an Hangasilly senden Homepage von Hangasilly Beiträge von Hangasilly suchenNehmen Sie Hangasilly in Ihre Freundesliste auf
Hangasilly Hangasilly ist männlich

[meine Galerie]


Dabei seit: 29.06.2012
Beiträge: 221
Herkunft: NRW
Postid: 17101
Themenstarter Thema begonnen von Hangasilly
Beitrag Nr.: 9     Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Sooo... nach diversen Rechteproblemen geht nun nurnoch mein SQL-Befehl im php nicht...
Folgendes is die php nun:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
<?php
$filename="shop2_data_out.php";

//Datenbank
$db = mysqli_connect("localhost", "USER", "PW", "DATENBANK");
if (!$db) {
    echo "Fehler: konnte nicht mit MySQL verbinden." . PHP_EOL;
    echo "Debug-Fehlernummer: " . mysqli_connect_errno() . PHP_EOL;
    echo "Debug-Fehlermeldung: " . mysqli_connect_error() . PHP_EOL;
    exit;
}
echo "Erfolg: es wurde ordnungsgemäß mit MySQL verbunden! Die Datenbank "datenbank" ist toll." . PHP_EOL;
echo "Host-Informationen: " . mysqli_get_host_info($db) . PHP_EOL;

//File delete
$charfile="chars.txt";
unlink("/var/lib/mysql-files/$charfile");

//File: Name und guID des Acc neu schreiben
$Name_guID_out = "SELECT `guid`, `account`, `name` INTO OUTFILE '/var/lib/mysql-files/chars.txt'
					FIELDS TERMINATED BY ','
					FROM wajmanor_characters.characters WHERE `account` LIKE '1'";
$write_in = mysqli_query($Name_guID_out);

//File im html löschen und neue kopieren
$charfile_2="chars.txt";
unlink("/var/www/html/$charfile_2");
$srcfile='/var/lib/mysql-files/chars.txt';
$dstfile='/var/www/html/chars.txt';
copy($srcfile, $dstfile);
?>






Der DB-Connect funzt... ich krieg die Meldung in der PHP und alles scheint erstmal fein...

Das 1. //File delete dient dazu, falls die datei schonmal zuvor geschrieben wurde, diese zu löschen. das klappt auch!

Warum son komischer Pfad? "/var/lib/mysql-files/ ?!?!
Weil ich nur da vom SQL reinschreiben kann anscheinend - ich bin nämlich irgendwie zu blöd, die --secure-file-priv anzupassen... sämtliche einträge in ~/.my.cnf werden beim restart des SQL-Servers leider nicht eingelesen, KP warum....

Naja halb so wild - also anders:
Erstmal kommt ja dann der DB-Befehl, der die Datei schreiben soll.... schreib ich ihn in phpmyAdmin, klappt das einwandfrei... von der PHP nimmt er den Befehl nicht...

Im Anschluss soll dann eigentlich durch //File im html löschen und neue kopieren die evt. vorhandene File im öffentlichen Ordner gelöscht werden, danach die Datei aus dem My-SQL-Ordner kopiert werden.
Das klappt auch, sofern diese existiert...

Mein Problem ist eigentlich nur, dass die DB-Anweisung nicht durchgeführt wird..., also das
code:
1:
2:
3:
4:
5:
$Name_guID_out = "SELECT `guid`, `account`, `name` INTO OUTFILE '/var/lib/mysql-files/chars.txt'
					FIELDS TERMINATED BY ','
					FROM wajmanor_characters.characters WHERE `account` LIKE '1'";
$write_in = mysqli_query($Name_guID_out);








An den Rechten darf es eig nicht liegen, die PHP löscht mir die alte Datei ja prima aus dem Ordner raus, also muss sie eig Schreibrechte haben...
Ich weiß nu echt nimmer weiter grad *seufz*


edit://
So... nachdem ich beim auslesen ja nciht weiterkam hab ich schonmal dafür gesorgt, dass die Datei auf dem anderen Server landet - das klappt nun auch via
code:
1:
function curlUpload($ftp,$ftpFile)




bleibt nur die Frage mit dem DB-Auslesen... aber wir forschen weiter :D ;)


edit2://
Es geht immer weiter:
Das einschreiben der Daten (mittlerweile eine *.cvs auf dem einen Server) in die DB des anderen Servers funzt nun auch einwandfrei!

Es bleibt weiterhin die Frage, warum geht der Auslesebefehl auf Server 1 nicht?

__________________

03.01.2020 22:01 Hangasilly ist offline E-Mail an Hangasilly senden Homepage von Hangasilly Beiträge von Hangasilly suchenNehmen Sie Hangasilly in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Haumis wbb hilfe » ...:::Trainingscenter-wbb2:::... » mysql » 2 Dbs auf 2 Servern, 1 PHP-Datei?!?

Views heute: 377 | Views gestern: 14.789 | Views gesamt: 70.941.741
Powered by Burning Board 2.3.6 © 2001-2004 WoltLab GmbH
Am Netz seit dem 3.6.2009 - Powered by © haumis-Team
Style & Buttons © by FriendsbistroTeam
Boardregeln Impressum & Haftungsauschluss Datenschutzerklärung