Comment tester sur quel port MySQL s'exécute et s'il peut être connecté?

J'ai installé MySQL et même connecté en tant qu'utilisateur.

Mais quand j'essaie de me connecter comme ceci:

http://localhost:3306
mysql://localhost:3306

Aucun ne fonctionne. Je ne sais pas si les deux sont censés fonctionner, mais au moins l'un d'entre eux devrait:)

Comment puis-je m'assurer que le port est bien 3306? Y at-il une commande linux pour le voir en quelque sorte? En outre, Existe-t-il un moyen plus correct de l'essayer via une url?

126
demandé sur GeekedOut 2011-05-03 05:44:08

13 réponses

Pour trouver un écouteur sur un port, procédez comme suit:

netstat -tln

Vous devriez voir une ligne qui ressemble à ceci si mysql écoute bien sur ce port.

tcp        0      0 127.0.0.1:3306              0.0.0.0:*                   LISTEN      

Le Port 3306 est le port par défaut de MySql.

Pour vous connecter, il vous suffit d'utiliser le client dont vous avez besoin, comme le client mysql de base.

Mysql-h localhost-U base de données utilisateur

Ou une url interprétée par le code de votre bibliothèque.

192
répondu Keith 2017-07-06 05:58:47

Utilisation du client Mysql:

mysql> SHOW GLOBAL VARIABLES LIKE 'PORT';
120
répondu enagra 2015-01-20 10:01:41

grep port /etc/mysql/my.cnf ( au moins dans debian / ubuntu fonctionne)

Ou

netstat -tlpn | grep mysql

Vérifier

Bind-adresse 127.0.0.1

Dans /etc/mysql/my.cnf pour voir les restrictions possibles

59
répondu bortunac 2018-05-25 07:21:18
netstat -tlpn

Il montrera la liste quelque chose comme ci-dessous:

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1393/sshd
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1859/master
tcp        0      0 123.189.192.64:7654     0.0.0.0:*               LISTEN      2463/monit
tcp        0      0 127.0.0.1:24135         0.0.0.0:*               LISTEN      21450/memcached
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      16781/mysqld

Utiliser comme root pour tous les détails. L'option -t limite la sortie aux connexions TCP, -l pour les ports d'écoute, -p répertorie le nom du programme et -n affiche la version numérique du port au lieu d'une version nommée.

De cette façon, vous pouvez voir le nom du processus et le port.

30
répondu mPrinC 2016-12-15 13:08:59

Les Deux URL sont incorrectes - devraient être

jdbc:mysql://host:port/database

Je pensais que cela allait sans dire, mais la connexion à une base de données avec Java nécessite un pilote JDBC. Vous aurez besoin du pilote MySQL JDBC .

Peut-être que vous pouvez vous connecter en utilisant un socket sur TCP/IP. Consultez les documents MySQL .

Voir http://dev.mysql.com/doc/refman/5.0/en/connector-j-reference-configuration-properties.html

Mise à jour:

J'ai essayé de telnet dans MySQL (telnet ip 3306), mais il ne fonctionne pas:

Http://lists.mysql.com/win32/253

Je pense que c'est ce que vous aviez en tête.

6
répondu duffymo 2011-05-03 02:26:18

Essayez seulement d'utiliser -e (--execute) option:

$ mysql -u root -proot -e "SHOW GLOBAL VARIABLES LIKE 'PORT';"                                                                                                       (8s 26ms)
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| port          | 3306  |
+---------------+-------+

Remplacer root par votre "nom d'utilisateur" et "mot de passe"

6
répondu joseluisq 2016-12-07 19:57:43

Une approche plus simple pour certains : Si vous voulez juste vérifier si MySQL est sur un certain port, vous pouvez utiliser la commande suivante dans terminal. Testé sur mac. 3306 est le port par défaut.

mysql --host=127.0.0.1 --port=3306

Si vous vous connectez avec succès au terminal shell MySQL, vous êtes bon! C'est la sortie que je reçois sur une connexion réussie.

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9559
Server version: 5.6.21 Homebrew

Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>
5
répondu Monarch Wadia 2014-12-08 17:12:12

3306 est le port par défaut pour mysql. Vérifiez - le avec:

netstat -nl|grep 3306

Il devrait donner ce résultat:

Tcp 0 0 127.0.0.1: 3306 0.0.0.0: * écouter

5
répondu zygimantus 2015-09-04 09:21:43

Vous pouvez utiliser

ps -ef | grep mysql
3
répondu user6250141 2016-04-28 04:28:02

Pour moi, la réponse de @ joseluisq a donné:

Erreur 1045 (28000): Accès refusé pour l'utilisateur 'root' @ ' localhost '(en utilisant le mot de passe: NO)

Mais cela a fonctionné de cette façon:

$ mysql -u root@localhost  -e "SHOW GLOBAL VARIABLES LIKE 'PORT';"
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| port          | 3306  |
+---------------+-------+
2
répondu Jose J Melendez 2017-12-21 13:38:27

Sur mac os X, il y a deux options. netstat ou lsof

L'utilisation de netstat n'affichera pas le processus sur Mac OS X. Donc, en utilisant netstat, vous ne pouvez effectuer une recherche que par port.
L'utilisation de lsof affichera le nom du processus.

J'ai fait ce qui suit car je rencontrais des conflits de ports (conteneurs docker):

netstat -aln | grep 3306

Sorties: tcp46 0 0 *.3306 *.* LISTEN

sudo lsof -i -P | grep -i "LISTEN" | grep -i 3306

Sorties: mysqld 60608 _mysql 31u IPv6 0x2ebc4b8d88d9ec6b 0t0 TCP *:3306 (LISTEN)

2
répondu toddcscar 2018-01-08 17:45:47

Je suis d'accord avec la solution de @bortunac. mon.conf est spécifique à mysql tandis que netstat vous fournira tous les ports d'écoute.

Peut-être utiliser les deux, l'un pour confirmer quel est le port défini pour mysql et l'autre pour vérifier que le système écoute via ce port.

Mon client utilise CentOS 6.6 et j'ai trouvé le my.fichier conf sous /etc/, donc j'ai utilisé:

grep port /etc/my.conf (CentOS 6.6)

1
répondu mmmdearte 2015-06-04 12:18:41

Si vous êtes sur un système où netstat n'est pas disponible (par exemple RHEL 7 et des versions plus récentes de Debian), vous pouvez utiliser ss, comme ci-dessous:

sudo ss -tlpn | grep mysql

Et vous obtiendrez quelque chose comme ce qui suit pour la sortie:

LISTEN     0      50        *:3306        *:*        users:(("mysqld",pid=5307,fd=14))

La quatrième colonne est Local Address:Port. Donc, dans ce cas, Mysql écoute sur le port 3306, par défaut.

1
répondu nelsonda 2017-09-15 17:51:54