1

Spec: Ubuntu 14.04 webmin/Virtualmin 1.791Remote mysql Zugriff auf Linux (über Webmin oder Shell)

Ich verwende Code folgenden Remote-MySQL-Datenbank-Verbindung zu testen:

<?php 

$db_host = "123.456.789"; 
$db_name = "database"; 
$db_user = "user"; 
$db_pass = "password"; 
$db_table_prefix = "prefix_"; 



GLOBAL $errors; 
GLOBAL $successes; 

$errors = array(); 
$successes = array(); 

$mysqli = new mysqli($db_host, $db_user, $db_pass, $db_name); 
GLOBAL $mysqli; 

if(mysqli_connect_errno()) { 
    echo "Conn Error = " . mysqli_connect_error(); 
    exit(); 
} 

?> 

Ich bekomme immer diesen Fehler:

No connection could be made because the target machine actively refused it.

Forschung zeigt, dass dies der Server bedeutet "hört nicht zu". Bevor ich das obige Skript ausgeführt habe, habe ich bereits versucht, remote mysql Zugriff über Webmin GUI zu ermöglichen. Was ich getan habe ist „Datenbank nage> Host-Berechtigungen“ editting und machen es wie folgt:

enter image description here

Dies sollte Remote-mysql Zugang zu ermöglichen, aber es funktioniert nicht. Ich lese auch von woanders, dass um remote mysql Zugriff zu ermöglichen, ich /etc/mysql/my.cnf bearbeiten muss; Ich habe gedacht, dass nach dem Bearbeiten der "Host-Berechtigungen" in Webmin diese Datei geändert würde, aber es war nicht. Auf der anderen Seite konnte ich die Zeilen, die ich bearbeiten sollte, nicht in my.cnf finden, also stecke ich hier fest.

Jede Hilfe wird geschätzt.

+0

Siehe hier: http://www.preprogrammer.com/allow-remote-connections-to-mysql- Server-Ubuntu / –

Antwort

1

Ich habe es zur Arbeit, aber nicht über Webmin überhaupt.

Zuerst muss ich die folgende Zeile in /etc/mysql/my.cnf Kommentar aus:

#bind-address  = 127.0.0.1 

Ich denke, statt sie einfach zu kommentieren heraus, habe ich auch 127.0.0.1 auf meine lokale IP-Adresse ändern können. Viele Google-Ergebnisse hören hier auf, aber das ist nicht genug. Der nächste Schritt ist die lokalen Benutzerrechte zu erteilen: Auf Remote-Server, ich brauche die folgenden Befehle auszuführen:

$ mysql -u root -p Enter password:

mysql> use mysql

mysql> GRANT ALL ON . to [email protected]'localIP' IDENTIFIED BY 'password';

mysql> FLUSH PRIVILEGES;

Eigentlich ich das gesehen habe, als ich tun, Google-Suche, bevor ich die Frage gestellt hier, aber ich ignorierte es einfach, weil ich dachte, ich hätte es getan. Es stellt sich heraus, dass ich nicht nur Berechtigungen auf der Serverseite gewähren muss, sondern auch für "lokalen Benutzer".

Fühlen Sie sich frei, hier zu kommentieren, wenn es noch etwas gibt, das ich verpasst habe, oder Sie wissen, wie man es durch webmin tut (ich frage mich noch, was editting "Host-Berechtigungen" in Webmin tut).

0

Sie können dies auch über Webmin tun,

Erstellen Sie Ihr Benutzerkonto für den Fernzugriff

  • Webmin> Server> MySQL Datenbank-Server> Benutzerberechtigungen

Click User Permissions

Lassen Sie den MySQL-Server Fernanfragen zuhören

  • Webmin> Server> MySQL Datenbank-Server> MySQL-Server-Konfiguration

MySQL Conf

MySQL-Server-Adresse hören - stellen Sie es auf jede

any

Restart MySQL service mysql restart mit oder direkt von webmin.

erlauben MySQL zu jedem Hafen zu hören ist keine gute Idee , es sei denn, Sie sind der einzige, der dieses Netzwerk zugreifen können,

Lassen Sie es nicht wie diese danach, Es ist besser, erlauben bestimmte Hosts auf bestimmten Domänen, wie Ihre IP, Oder einfach nur nicht auf alle Ports hören, wenn es nicht erforderlich ist, dh wenn Sie mit Ihrer Sitzung fertig sind.

Sie können dies auch tun, über /etc/mysql/my.cnf Nur eine binding adress Ihrer Wahl hinzufügen statt localhost

Verwandte Themen