[Gelöst] db_set_active Zugriff auf anderen Server
am 11.12.2010 - 12:26 Uhr in
Hi,
mit db_set_active() kann man ja recht bequem die aktuell benutzte Datenbank wechseln. Das funktioniert auch soweit super solange ich eine DB auf dem selben Server aktiviere. Probleme treten bei mir allerdings auf wenn ich versuche eine Verbindung zu einer Datenbank auf einem anderen Server herzustellen.
<?php
global $db_url;
$default_db = $db_url;
$db_url = array();
$db_url['default'] = 'mysqli://web25_admin:password1@localhost/web25_drupal';
$db_url['remote'] = 'mysqli://web50_admin:password2@196.196.196.1/web50_drupal'; // IP habe ich verfälscht, da steht normalerweise die korrekte IP des Remote-Server's
db_set_active('remote');
$result = db_query("SELECT * FROM {node}");
print_r($result);
db_set_active('default');
$result2 = db_query("SELECT * FROM {node}");
print_r($result2);
?>
Im Beispiel oben bekomme ich die Meldung das meine Seite Off-Line ist.
Dazu noch die Fehlermeldung:
"The mysqli error was: Access denied for user 'web50_admin'@'212.212.212.1' (using password: YES)."
Zur Erklärung, 212.212.212.1 ist die IP von localhost, sprich vom Server wo der Code ausgeführt wurde. In meinem Verständniss müsste da wenigstens 196.196.196.1 Access denied stehen. Er versucht mit dem anscheinend richtigen Benutzername auf dem Falschen Server die Verbindung herzustellen.
Ich hab keine Ahnung warum er die IP des Remote-Servers ignoriert und statt dessen die von localhost benutzt.
- Anmelden oder Registrieren um Kommentare zu schreiben
DB-Zugriff
am 14.12.2010 - 11:06 Uhr
Hallo.
In meinem Verständniss müsste da wenigstens 196.196.196.1 Access denied stehen. Er versucht mit dem anscheinend richtigen Benutzername auf dem Falschen Server die Verbindung herzustellen.
Wenn Du vom Server 212.212.212.1 mit dem Benutzernamen "web50_admin" auf den anderen Server zugreifen willst, so sieht dieser den Benutzer "web50_admin@212.212.212.1" (was ja auch wortwörtlich "web50_admin auf 212.212.212.1" heisst).
Ich vermute mal, dass das MySQL auf 196.196.196.1 keine Zugriffe von ausserhalb zulässt.
Du musst die Berechtigungen dort noch so anpassen, dass "web50_admin@212.212.212.1" die entsprechenden Zugriffsrechte bekommt:
GRANT USAGE ON web50_drupal.* TO 'web50_admin'@'212.212.212.1' IDENTIFIED BY PASSWORD ...
hth,
Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Genau das wars. Ich hab es
am 17.12.2010 - 14:05 Uhr
Genau das wars. Ich hab es aber über die cPanel konfiguration "Remote MySQL" eingetragen.
Danke!
Work is the curse of the drinking class!