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?
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.
é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
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
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.
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
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é.
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).netstat -an
sur le serveur pour voir si le serveur est actif.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
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
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
Doit vérifier si l'accès entrant au port 3306 est bloqué ou non par le pare-feu.
Vous devriez mettre votre mot de passe avec 'p'
mysql -u root -u 1.1.1.1 -p'MyPass'
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
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:
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.
Essayez ceci, ça marche:
mysql -h {nomhôte} -u {nomutilisateur} -p {mot de passe} -N -e "{requête à exécuter}"