300 votes

Accès à la base de données distante mysql à partir de la ligne de commande

J'ai un serveur chez Rackspace. Je veux accéder à la base de données depuis la ligne de commande de ma machine locale.

J'ai essayé :

mysql -u username -h my.application.com -ppassword

Mais cela donne une erreur :

ERREUR 2003 (HY000) :

Impossible de se connecter au serveur MySQL sur 'my.application.com' (10061)

Quelle est la cause de cette erreur et comment puis-je me connecter à la base de données distante ?

16voto

Cornea Valentin Points 115

Si vous voulez ne pas utiliser le tunnel ssh, dans mon.cnf o mysqld.cnf vous devez changer 127.0.0.1 avec votre adresse IP locale ( 192.168.1.100 ) afin d'avoir accès au réseau local. exemple ci-dessous :

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

Recherche de adresse de liaison en mon.cnf o mysqld.cnf

bind-address            =  127.0.0.1

et le changement 127.0.0.1 à 192.168.1.100 ( adresse IP locale )

bind-address            =  192.168.1.100

Pour appliquer le changement que vous avez fait, vous devez redémarrer le serveur mysql en utilisant la commande suivante.

sudo /etc/init.d/mysql restart

Modifier l'utilisateur Racine pour l'accès au réseau (exécutez les requêtes ci-dessous dans le serveur distant auquel vous voulez avoir accès)

root@192.168.1.100:~$ mysql -u root -p

..

CREATE USER 'root'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

Si vous voulez avoir l'accès seulement à partir d'une adresse IP spécifique, changez "Racine"@"% à Root @( adresse IP ou nom de l'hôte)'.

CREATE USER 'root'@'192.168.1.100' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.100' WITH GRANT OPTION;
FLUSH PRIVILEGES;

Alors vous pouvez vous connecter :

nobus@xray:~$ mysql -h 192.168.1.100 -u root -p

testé sur un serveur ubuntu 18.04

10voto

  1. essayez telnet 3306 . S'il n'ouvre pas la connexion, soit il y a un paramètre du pare-feu, soit le serveur n'écoute pas (ou ne fonctionne pas).

  2. exécuter netstat -an sur le serveur pour voir si le serveur est en place.

  3. Il est possible que vous n'autorisiez pas les connexions à distance.

    Voir http://www.cyberciti.biz/tips/how-do-i-enable-remote-access-to-mysql-database-server.html

7voto

PK' Points 105

Je suppose que vous avez installé MySQL sur votre machine. Exécutez la commande ci-dessous après avoir rempli les détails manquants :

mysql -uUSERNAME -pPASSWORD -hHOSTNAME -P3306

5voto

mivk Points 1352

Les serveurs mysql sont généralement configurés pour écouter uniquement localhost (127.0.0.1), où ils sont utilisés par les applications web.

Si c'est votre cas mais que vous avez un accès SSH à votre serveur, vous pouvez créer un tunnel ssh et vous connecter par ce biais.

Sur votre machine locale, créez le tunnel.

ssh -L 3307:127.0.0.1:3306 -N $user@$remote_host

(cet exemple utilise le port local 3307, au cas où vous auriez également mysql en cours d'exécution sur votre machine locale et utilisant le port standard 3306)

Maintenant, vous devriez être capable de vous connecter avec

mysql -u $user -p -h 127.0.0.1 -P 3307

4voto

Manish Goswami Points 351

Il y a une commande simple.

mysql -h {hostip} -P {port} -u {username} -p {database}

Exemple

mysql -h 192.16.16.2 -P 45012 -u rockbook -p rockbookdb

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X