Also, erstmal solltest nicht unbedingt den Zugriff von außen auf den Root-User zulassen.
Für andere User gibt es folgende Wege:
Der einfache Weg: Du loggst du dich in phpMyAdmin ein, klickst auf "Rechte", gehst auf "neuen Benutzer hinzufügen", gibst den Namen und ein Passwort ein und klickst bei "Host" einfach auf "jeder Host" bzw gibst in das Feld "%" ein. Du kannst dann direkt noch eine gleichnamige Datenbank für den User erstellen, auf die er volle Rechte hat.
Falls du den User schon erstellt hast, folgendes:
In MySQL einloggen:
Dann einmal folgenden Befehl, um zu zeigen, dass du auch MySQL benutzen willst:
Die Rechtevergabe:
update user set host='%' where user='user*';
update db set host='%' where user='user*';
*user = Benutzername des Users, dem der Zugriff von außen erlaubt werden soll.
Aber da nun wirklich jeder versuchen kann, sich auf den User einzuloggen, solltest du das ganze optimalerweise noch etwas mit IPTables absichern.
(WICHTIG: Nur, wenn du immer von dem gleichen Client auf den Server zugreifen willst, also von einem vServer/Rootserver!)
Erst einmal dem localhost natürlich erlauben, auf den DB-Server zuzugreifen. Dies ganze macht man am besten mit einem Loopback (lo) [Empfänger und Sender sind identisch = Lokal].
iptables -A INPUT -i lo -p tcp --dport 3306 -j ACCEPT
Dann allen erlaubten IPs den Zugriff zulassen:
iptables -A INPUT -p tcp --dport 3306 -s 123.456.7.89* -j ACCEPT
iptables -A INPUT -p tcp --dport 3306 -s 987.654.3.21* -j ACCEPT
*hier deine erlaubten IP-Adressen einsetzen
Und zu guter letzt noch den Zugriff von allen anderen Adressen blockieren:
iptables -A INPUT -p tcp --dport 3306 -j REJECT
Dann ein mal testen, ob alles funktioniert. Wenn alles funktioniert, solltest du die IPTables-Regeln noch speichern:
apt-get install iptables-persistent