Rainforest: MYSQL : Datenbankverbindung

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

  1. 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

    --
    "Love your nation - respect the others."
    1. 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

  2. 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

    --
    Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
    1. 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

      1. 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

        --
        Nur selber lernen macht schlau
        http://bergpost.annerschbarrich.de
        1. 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 ?!?

          1. 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

            --
            Nur selber lernen macht schlau
            http://bergpost.annerschbarrich.de