Externer Zugriff auf eine MySQL-Datenbank vom Online Shop Veyton

1. Externen Datenbankzugriff erlauben

SQL-Statement „SHOW VARIABLES;“ in PhpMyAdmin ausführen und schauen ob „skip-networking“ auf OFF steht.

Steht „skip-networking“ auf ON muss folgende Datei in Linux editiert werden:

etc/my.cnf (my.conf )

Suche in my.cnf „skip-networking“ und kommentiere die Anweisung: „#skip-networking“

2. Einem DB-Benutzer das Recht zum externen Zugriff geben

In PhpMyAdmin unter „Rechte“ -> „Anmelde-Informationen“ einem Benutzer neben dem Recht „localhost“ auch „Jeder Host“ vergeben. Der Benutzer sollte in der Benutzerübersicht anschließend zweimal mit den entsprechenden Rechten erscheinen.

3. MySQL-Server neu starten

Zum Beispiel im Parallels Infrastructure Manager unter „Systemdienste“ den Dienst „mysqld“ neu starten.

4.Prüfen ob externer Zugriff auf die Datenbank möglich ist

In eine Dos-Box folgendes eingeben:

telnet meine-domain.tld 3306

Kommt es hier zu einer Fehlermeldung sollten Firewall-Einstellungen überprüft werden.

5. Externer Zugriff mit Php

Mit folgendem Beispiel kann die externe Verbindung überprüft werden:

$db = „db-name“; //Name der Datenbank
$host = „domain.tld“; //Hostname zum externen Datenbankserver
$dbuser = „user“; //Benutzername
$pw = „pass“; //Passwort

echo „Externe Verbindung zu Datenbank: „.$db.“<br>\n“;
$con = mysql_connect($host,$dbuser,$pw);
if (!$con) { die(‚keine Verbindung möglich: ‚ . mysql_error()); }
mysql_select($db, $con) or die („Konnte Datenbank nicht finden!<br>“ . mysql_error());
echo „Verbindung zu Datenbank „.$db.“ okay.“;

Ein Gedanke zu „Externer Zugriff auf eine MySQL-Datenbank vom Online Shop Veyton

  1. ITSD Autor des Beitrags

    Es kann zu Problemen mit local-infile beim Einlesen einer externen Datenquelle kommen.
    Am Besten phpMyAdmin auf dem Zielsystem öffnen und versuchen eine lokale csv-Datei mit „CSV mit LOAD DATA“ und „verwende LOCAL“ hochzuladen.

    Sollte die Fehlermeldung „The used command is not allowed with this MySQL version“ ausgegeben werden, ist mySQL dafür noch nicht freigegeben.

    Es muss die /etc/my.cnf editiert und im Bereich [mysqld] folgendes eingefügt werden: „local-infile = 1“.
    Anschließend mysql mit dem Schalter „local-infile“ neu starten: mysql –local-infile

    Alternativ reicht auch „set-variable=local-infile=1“ in der /etc/my.cnf und mysql kann ohne den Schalter neu gestarten werden.

Schreibe einen Kommentar