it-swarm.com.de

Herstellen einer Verbindung zu MySQL in Bash (ohne MySQL installiert zu haben)

Ich versuche, eine Verbindung zu einer entfernten MySQL-Datenbank in Bash herzustellen. Auf dem Server, auf dem sich die Datenbank befindet, kann ich Folgendes eingeben:

mysql -u _username_ -p

verbinden.

Ich würde gerne schreiben können:

mysql -h _Host_ -u _username_ -p

von einem anderen Server verbinden. Ich habe MySQL nicht auf dem Client installiert, so dass der Befehl nicht gefunden wird. Kann ich neben dem gesamten MySQL-Server noch etwas installieren (apt-get preferred), damit ich die mysql-Befehle in bash verwenden kann?

9
user722307

Um den Befehlszeilen-MySQL-Client zu installieren, müssen Sie folgende Schritte ausführen:

Sudo apt-get install mysql-client

und dann kannst du machen

mysql -h Host -P PORT_NUMBER -u USERNAME -p

Möglicherweise müssen Sie jedoch die Einrichtung des MySQL-Servers ändern. Standardmäßig akzeptiert der MySQL-Server unter Ubuntu nur Verbindungen vom lokalen Server. Die Einstellung heißt bind-address und wird in /etc/mysql/my.cnf festgelegt. Standardmäßig ist es 127.0.0.1 - Sie sollten es in die IP-Adresse des Servers ändern. Wenn der Server mehrere IP-Adressen hat, können Sie nur eine IP-Adresse (z. B. für das interne Netzwerk) auswählen oder MySQL alle IP-Adressen abhören lassen, indem Sie den Wert 0.0.0.0 eingeben.

Sie müssen auch sicherstellen, dass der MySQL-Benutzer auf die Datenbank zugreifen kann. Wenn Sie den Anweisungen im Internet folgen, haben Sie möglicherweise den Benutzer 'myname'@'localhost' erstellt, der keine Remoteverbindung herstellen kann. Um einen neuen Benutzer zu erstellen, der von Ihrer Client-IP-Adresse aus eine Verbindung herstellen kann, müssen Sie Folgendes tun:

GRANT ALL PRIVILEGES ON database_name TO 'username'@'192.168.0.51' IDENTIFIED BY 'password';

Lesen Sie etwas mehr über die Adressangabe, die MySQL verwendet .

Vergessen Sie nicht, sicherzustellen, dass die Server-Firewall den Zugriff auf den MySQL-Port zulässt - der Standardwert ist 3306.

19
Hamish Downer