web-dev-qa-db-fra.com

Accéder à la base de données mysql distante en ligne de commande

J'ai un serveur avec Rackspace. Je souhaite accéder à la base de données à partir de la ligne de commande de ma machine locale.

J'ai essayé comme:

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)

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

125
user1986299

Pour vous connecter directement à une console mysql distante, utilisez la commande ci-dessous:

mysql -u {username} -p {password} \
    -h {remote server ip or name} -P {port} \
    -D {DB name}

Cela vous mènera directement à la console mysql en passant à la base de données mentionnée.

184
Venkat M

éditer le fichier my.cnf:

vi /etc/my.cnf:

sois sûr que:

bind-address=YOUR-SERVER-IP

et si vous avez la ligne:

skip-networking

assurez-vous de le commenter:

#skip-networking

n'oubliez pas de redémarrer:

/etc/init.d/mysqld restart

30
alfasin

il suffit de mettre ceci sur le terminal à Ubuntu: 

mysql -u username -h Host -p

Maintenant, appuyez sur Entrée

terminal vous demandera mot de passe, entrez le mot de passe et vous êtes dans le serveur de base

19
Kedar Jangir

Essayez cette commande mysql -uuser -hhostname -PPORT -ppassword.

J'ai fait face à une situation similaire et plus tard, lorsque mysql port for Host a été entré avec la commande, le problème a été résolu.

15
rajarajan2809

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

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

Rechercher bind-address in my.cnf ou mysqld.cnf

bind-address            =  127.0.0.1

et remplacez 127.0.0.1 par 192.168.1.100 (adresse IP locale)

bind-address            =  192.168.1.100

Pour appliquer les modifications que vous avez apportées, vous devez redémarrer le serveur mysql avec la commande suivante.

Sudo /etc/init.d/mysql restart

Modifier les accès utilisateur root for lan (lancez la requête ci-dessous sur le serveur distant auquel vous souhaitez accéder)

[email protected]:~$ mysql -u root -p

..

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

Si vous souhaitez avoir accès uniquement à partir d'une adresse IP spécifique, modifiez 'root' @ '%' en 'root' @ '(adresse ip ou nom d'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;

Ensuite, vous pouvez vous connecter:

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

testé sur le serveur Ubuntu 18.04

8
Cornea Valentin

Pour Mac, utilisez la commande suivante:

mysql -u app -h hostaddress -P port -D dbname -p

puis entrez le mot de passe lorsque vous y êtes invité.

5
KayV
  1. essayez telnet 3306. Si la connexion n'est pas ouverte, il existe un paramètre de pare-feu ou le serveur n'écoute pas (ou ne fonctionne pas).
  2. exécutez netstat -an sur le serveur pour voir si le serveur est actif.
  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

5
user851031

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

mysql -uUSERNAME -pPASSWORD -hHOSTNAME -P3306 
4
realPK

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
1
Manish Goswami

Doit vérifier si l'accès entrant au port 3306 est bloqué ou non par le pare-feu.

1
AmirolAhmad

Vous devriez mettre votre mot de passe avec 'p' 

mysql -u root -u 1.1.1.1 -p'MyPass'
0
Karin Lahyani

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 tel est votre cas mais que vous avez un accès SSH à votre serveur, vous pouvez créer un tunnel SSH et vous connecter via celui-ci.

Sur votre ordinateur local, créez le tunnel.

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

(Cet exemple utilise le port local 3307, si vous avez également mysql exécuté sur votre ordinateur local et utilisant le port standard 3306)

Maintenant, vous devriez être en mesure de se connecter avec

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

J'avais aussi la même erreur… .. Mais je l'ai trouvé utile en créant un nouvel utilisateur mysql sur un serveur mysql distant, puis en se connectant. Exécutez la commande suivante sur le serveur distant:

CREATE USER 'openvani'@'localhost' IDENTIFIED BY 'some_pass';
GRANT ALL PRIVILEGES ON *.* TO 'openvani'@'localhost WITH GRANT 
OPTION;
CREATE USER 'openvani'@'%' IDENTIFIED BY 'some_pass';
GRANT ALL PRIVILEGES ON *.* TO 'openvani'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

Maintenant, vous pouvez vous connecter avec mysql à distance avec la commande suivante.

mysql -u openvani -h 'any ip address'-p

Voici le post complet:

http://openvani.com/blog/connect-remotely-mysql-server/

0
Davinder Snehi

cette solution a fonctionné pour moi:

Sur votre ordinateur distant (exemple: 295.13.12.53) a accès à votre ordinateur distant cible (qui exécute le serveur mysql)

ssh -f -L 295.13.12.53:3306:10.18.81.36:3306 [email protected]

A expliqué:

ssh -f -L your_ssh_mashine_ipaddress:your_ssh_mashine_local_port:target_ipaddress:target_port user@your_ip_address -N

your_ssh_mashine_ipaddress - il ne s'agit pas d'une adresse IP locale, mais bien d'une adresse IP

your_ssh_mashine_local_port -c'est le port personnalisé et non pas 22, dans cet exemple, il s'agit de 3306.

target_ipaddress - ip de la machine sur laquelle vous essayez de vider la base de données.

target_port - 3306 c'est le vrai port pour le serveur MySQL.

user @ your_ip_address - il s'agit des informations d'identification ssh pour la mashine ssh à laquelle vous vous connectez

Une fois tout cela terminé, retournez sur votre machine et procédez comme suit:

mysqldump -h 295.13.12.53 -P 3306 -u username -p db_name > dumped_db.sql

Va demander un mot de passe, entrez votre mot de passe et vous êtes connecté . J'espère que cela vous aidera.

0
violentr

Essayez ceci, ça marche:

mysql -h {nomhôte} -u {nomutilisateur} -p {mot de passe} -N -e "{requête à exécuter}"

0
ravi teja