MYSQL : Datenbankverbindung
Rainforest
- datenbank
0 Sven Rautenberg0 Tom0 Rainforest0 Tom0 Rainforest0 Tom
Hallo Zusammen,
Folgendes Problem:
ich arbeite auf meinem Server ganz normal und alles funtkioniert. Jetzt schiebe ich meine Daten auf einen anderen Server aber die Datenbank bleibt bei mir. Somit dürfte ich doch eigentlich nichts ändern an meiner DB connect.
Mein Script sieht so aus und funktionier auf meinem Server einwandfrei, doch auf dem neuen nicht.
<?php
$host = "mysql4.my-domain.net";
$user = "username";
$password = "password";
$database = "mydatabase";
mysql_connect( $host , $user , $password );
mysql_select_db( $database );
echo mysql_errno() . ": " . mysql_error(). "\n";
?>
Der Error Code sagt folgendes:
1044: Access denied for user: '@localhost' to database 'mydatabase'
Liegt es vielleicht daran das ich nicht die gleiche Hostadresse nehmen kann wie auf den eigenen Server ??
Vielen Dank im Voraus für GUTE antworten die WEITERHELFEN
Moin!
Der Error Code sagt folgendes:
1044: Access denied for user: '@localhost' to database 'mydatabase'
Ein MySQL-Account ist nicht nur ein Username, sondern eine Kombination aus Username und zugreifendem Host. Damit kann man die Zugriffsrechte auf eine Datenbank noch feinkörniger einstellen, weil es nicht nur drauf ankommt, welcher User sich connected, sondern auch, von welcher IP (bzw. Hostnamen) das passiert.
- Sven Rautenberg
Moin!
Der Error Code sagt folgendes:
1044: Access denied for user: '@localhost' to database 'mydatabase'
Ein MySQL-Account ist nicht nur ein Username, sondern eine Kombination aus Username und zugreifendem Host. Damit kann man die Zugriffsrechte auf eine Datenbank noch feinkörniger einstellen, weil es nicht nur drauf ankommt, welcher User sich connected, sondern auch, von welcher IP (bzw. Hostnamen) das passiert.
- Sven Rautenberg
Heißt das ich muss irgendwo den "zu erlaubenen" Host eintragen ??
Wenn ja , wo ?
mfg
Hello,
1044: Access denied for user: '@localhost' to database 'mydatabase'
Hast Du denn einen 'Username'@'IP-des-providers' angelegt für Deine verbliebene Datenbank?
Außerdem könnte Dir dann noch passieren, dass das API für MySQL auf dem neuen Host nicht zur Datenbank passt.
Connection über Port scheint aber zu bestehen, sonst käme ja keine Fehlermeldung.
Ein harzliches Glückauf
Tom vom Berg
Hello,
1044: Access denied for user: '@localhost' to database 'mydatabase'
Hast Du denn einen 'Username'@'IP-des-providers' angelegt für Deine verbliebene Datenbank?
Außerdem könnte Dir dann noch passieren, dass das API für MySQL auf dem neuen Host nicht zur Datenbank passt.
Connection über Port scheint aber zu bestehen, sonst käme ja keine Fehlermeldung.
Ein harzliches Glückauf
Tom vom Berg
Wie lege ich den diesen 'Username'@'IP-des-providers' an ?? und wo ??
mfg
Hello,
Bitte keine Voll-Quotes...
Wie lege ich den diesen 'Username'@'IP-des-neuen-providers' an ?? und wo ??
Mit dem Grant-Befehl oder dem Verwaltungswerkzeug Deiner Wahl in der Datenbank.
Ein harzliches Glückauf
Tom vom Berg
Mit dem Grant-Befehl oder dem Verwaltungswerkzeug Deiner Wahl in der Datenbank.
mysql> GRANT ALL PRIVILEGES ON *.* TO 'username_fremdedomain'@'fremdedomain'
-> IDENTIFIED BY 'passwort_fremdedomain' WITH GRANT OPTION;
Dabei bekomme ich aber bei phpmyadmin ein syntax error.
Und wie soll die fremdedomain aussehen =??
mit http://www...
oder ohne
oder nur IP ?!?
Hello,
Mit dem Grant-Befehl oder dem Verwaltungswerkzeug Deiner Wahl in der Datenbank.
mysql> GRANT ALL PRIVILEGES ON *.* TO 'username_fremdedomain'@'fremdedomain'
-> IDENTIFIED BY 'passwort_fremdedomain' WITH GRANT OPTION;Dabei bekomme ich aber bei phpmyadmin ein syntax error.
Und wie soll die fremdedomain aussehen =??
mit http://www...
oder ohne
oder nur IP ?!?
Wenn es geht, nur die Domain mit Hostnamen, sonst die IP. Das Scheme hat hier nichts zu suchen. Außerdem wird ja nicht über HTTP angefragt, sondern über einen verbindungsorientierten Kanal (über Port 3306) mittels MySQL-Requester-Protokoll. Der Port sollte auch nur dieses eine können, weshalb man eben kein Scheme angeben muss/darf.
Aber das von Dir gewählte Grant ist sowieso ein Genickschuss-Statement.
Gebe dem User nur diejenigen Rechte, die er dringend benötigt, also schon gar nicht "ALL ON *.*", sondern nur "SELECT, UPDATE, INSERT, DELETE on datenbankname
.*"
und möglichst auch keine Grant Option zuweisen. Dann könnte dieser User weitere Datenbankbenutzer anlegen bzw. ihnen Rechte gewähren oder entziehen. Das Recht sollte man nicht per HTTP bereitstellen, bestenfalls per HTTPS.
Ein harzliches Glückauf
Tom vom Berg