Cómo verificar en qué puerto se ejecuta mysql

69

En mi Windows Dev Box, MySQL se ejecuta en el puerto 3306

¿Cómo puedo verificar en qué puerto se está ejecutando en el servidor Unix al que tengo que cargar la aplicación?

Ankur
fuente
Eso depende de cómo puede acceder al servidor. ¿Tiene acceso ssh, acceso de cliente mysql o alguna interfaz web como phpMyAdmin?
jonfhancock
acceso ssh - a través de masilla
Ankur
¿Es este un host compartido? Si es así, puede haber múltiples instancias de MySQL ejecutándose en él, cada una en un puerto diferente.
John Gardeniers
No, es una configuración de VM solo para mí, por lo que solo hay una instancia.
Ankur

Respuestas:

87

yo hice

mysql> MOSTRAR VARIABLES GLOBALES COMO 'PUERTO';

Y eso indicó que estaba usando port 3306y que mi búsqueda del error continúa.

Ankur
fuente
1
Este comando ayuda a encontrar todas las variables globales. mysql> MOSTRAR VARIABLES GLOBALES;
Arun211
38

La mejor manera de saber qué aplicación está escuchando qué interfaz y en qué puerto usarnetstat

Puedes hacer esto como root :

netstat -tlnp

Enumerará todos los servicios de escucha como este:

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:3306            0.0.0.0:*               LISTEN      25934/mysqld
tcp6       0      0 :::22                   :::*                    LISTEN      7964/dropbear

La última columna muestra que mysqld se unió al puerto 3306 que escucha en todas las interfaces.

De hecho, esto funciona para todo, no solo mysql. También puede usarlo sin sockets TCP.

sybreon
fuente
2
la bandera -p solo funciona en linux, afaik. (definitivamente no es Mac OS X, al menos)
jdizzle
1
supongo que estás atrapado lsof -i TCPentonces.
sybreon
El comando de Linux y el comando de Windows varían ligeramente. Para Windows, debe estar elevado y reemplazar la p con ab
IceMage
6

Ingrese por terminal a mysql:

mysql -u root

y luego escriba lo siguiente en el indicador de mysql:

mysql> SHOW GLOBAL VARIABLES LIKE 'PORT';

Esto funcionó para mí.

IgnacioAinol
fuente
4

El valor predeterminado de MySQL es el puerto 3306 a menos que especifique otra línea en el /etc/my.cnfarchivo de configuración.

A menos que tu /etc/my.cnfcontenga algo como

[mysqld]
port = 3308

Entonces es muy probable que esté utilizando el puerto predeterminado.

Dave Cheney
fuente
4

Si realmente desea confirmar que se está ejecutando en el puerto, puede hacer telnet en el puerto mientras el proceso está activo de la siguiente manera:

telnet localhost 3306

Verá que informa que está conectado a mySQL.

Alernativamente, puede encontrar el PID del proceso usando ps y grep:

ps -ef | grep mysql

y luego ponga ese pid en lsof para imprimir todos los descriptores de archivos abiertos. Encontrarás el puerto al que está destinado el proceso cerca de la parte superior.

Alex
fuente
3

Un método alternativo a los ya mencionados (y no tan bueno pero bueno, funciona).

prompt>lsof -n | grep 'mysql.*TCP'
mysqld     1564     mysql   10u     IPv4            3246456       0t0        TCP *:mysql (LISTEN)
prompt>cat /proc/1564/net/tcp
  sl  local_address rem_address   st tx_queue rx_queue tr tm->when retrnsmt   uid  timeout inode
   0: 11AC11AC:0035 00000000:0000 0A 00000000:00000000 00:00000000 00000000     0        0 14299 1 ffff88012a429a00 299 0 0 2 -1
   1: 017AA8C0:0035 00000000:0000 0A 00000000:00000000 00:00000000 00000000     0        0 13871 1 ffff880129962080 299 0 0 2 -1
   2: 00000000:0016 00000000:0000 0A 00000000:00000000 00:00000000 00000000     0        0 12596 1 ffff880129960000 299 0 0 2 -1
   3: 0100007F:0277 00000000:0000 0A 00000000:00000000 00:00000000 00000000     0        0 11459 1 ffff88012a429380 299 0 0 2 -1
   4: 00000000:8D58 00000000:0000 0A 00000000:00000000 00:00000000 00000000     0        0 11315 1 ffff88012a428d00 299 0 0 2 -1
   5: 00000000:0019 00000000:0000 0A 00000000:00000000 00:00000000 00000000     0        0 12940 1 ffff880129960680 299 0 0 2 -1
   6: 0100007F:177A 00000000:0000 0A 00000000:00000000 00:00000000 00000000   500        0 3600557 1 ffff8800672dee80 299 0 0 2 -1
   7: 0100007F:177B 00000000:0000 0A 00000000:00000000 00:00000000 00000000   500        0 3603871 1 ffff88012a42ee80 299 0 0 2 -1
   8: 0100007F:177C 00000000:0000 0A 00000000:00000000 00:00000000 00000000     0        0 3608169 1 ffff88012a42f500 299 0 0 2 -1
   9: 0100007F:177D 00000000:0000 0A 00000000:00000000 00:00000000 00000000   500        0 3615687 1 ffff88012a42e180 299 0 0 2 -1
  10: 0100007F:00C7 00000000:0000 0A 00000000:00000000 00:00000000 00000000     0        0 3608454 1 ffff8800672db400 299 0 0 2 -1
  11: 00000000:0CEA 00000000:0000 0A 00000000:00000000 00:00000000 00000000    27        0 3246456 1 ffff8800672dba80 299 0 0 2 -1
  12: 00000000:024B 00000000:0000 0A 00000000:00000000 00:00000000 00000000     0        0 12944 1 ffff880129961380 299 0 0 2 -1
  13: 00000000:006F 00000000:0000 0A 00000000:00000000 00:00000000 00000000     0        0 10657 1 ffff88012a428680 299 0 0 2 -1
  14: 00000000:01D1 00000000:0000 0A 00000000:00000000 00:00000000 00000000     0        0 12942 1 ffff880129960d00 299 0 0 2 -1
  15: 0100007F:1DD2 00000000:0000 0A 00000000:00000000 00:00000000 00000000     0        0 3631325 1 ffff8800672da700 299 0 0 2 -1
  16: 0100007F:990B 0100007F:177B 01 00000000:00000000 02:0002F5D8 00000000   500        0 3610110 2 ffff8800672df500 20 3 26 4 19
  17: 0100007F:177B 0100007F:990C 01 00000000:00000000 00:00000000 00000000   500        0 3610124 1 ffff88012a42d480 20 3 0 5 -1
  18: 0100007F:990D 0100007F:177B 01 00000000:00000000 02:00031144 00000000   500        0 3610142 2 ffff8800672d9380 20 3 0 5 -1
  19: 0100007F:177B 0100007F:990B 01 00000000:00000000 00:00000000 00000000   500        0 3610111 1 ffff8800672dc100 21 3 29 4 -1
  20: 0100007F:177B 0100007F:9949 01 00000000:00000000 00:00000000 00000000   500        0 3611026 1 ffff8800672dad80 20 3 0 5 -1
  21: 0100007F:9912 0100007F:177B 01 00000000:00000000 02:0005D3D3 00000000   500        0 3610249 2 ffff8800672de180 20 3 0 3 -1
  22: 0100007F:177B 0100007F:990D 01 00000000:00000000 00:00000000 00000000   500        0 3610143 1 ffff8800672de800 20 3 1 5 -1
  23: 11AC11AC:0016 480111AC:9074 01 00000000:00000000 02:0002BCFF 00000000     0        0 3608096 2 ffff88012a428000 20 3 1 5 16
  24: 11AC11AC:0016 480111AC:8485 01 00000000:00000000 02:0005819F 00000000     0        0 3615610 2 ffff88012a42c100 20 3 1 5 -1
  25: 0100007F:177B 0100007F:9923 01 00000000:00000000 00:00000000 00000000   500        0 3610494 1 ffff88012a42ce00 20 3 0 5 -1
  26: 0100007F:990F 0100007F:177B 01 00000000:00000000 02:0003117F 00000000   500        0 3610209 2 ffff8800672dd480 20 3 0 5 -1
  27: 0100007F:9949 0100007F:177B 01 00000000:00000000 02:0005D3D3 00000000   500        0 3611025 2 ffff8800672ddb00 20 3 0 3 -1
  28: 0100007F:90CF 0100007F:177B 01 00000000:00000000 02:00004637 00000000   500        0 4049147 2 ffff8800672dc780 20 3 1 5 -1
  29: 11AC11AC:0016 480111AC:C273 01 00000000:00000000 02:00021D06 00000000     0        0 3600488 4 ffff88012a42a700 20 6 31 4 34
  30: 0100007F:177B 0100007F:90CF 01 00000000:00000000 00:00000000 00000000   500        0 4049148 1 ffff8800672d8680 20 3 0 5 -1
  31: 11AC11AC:0016 480111AC:C7C3 01 00000000:00000000 02:00093A92 00000000     0        0 3603799 2 ffff88012a42ba80 20 3 26 5 31
  32: 0100007F:177B 0100007F:9912 01 00000000:00000000 00:00000000 00000000   500        0 3610250 1 ffff8800672da080 20 3 0 5 -1
  33: 0100007F:177B 0100007F:990F 01 00000000:00000000 00:00000000 00000000   500        0 3610210 1 ffff8800672d9a00 20 3 1 5 -1
  34: 0100007F:990C 0100007F:177B 01 00000000:00000000 02:00031147 00000000   500        0 3610123 2 ffff88012a42ad80 20 3 1 5 -1
  35: 0100007F:9923 0100007F:177B 01 00000000:00000000 02:0005D3D3 00000000   500        0 3610493 2 ffff88012a42e800 20 3 16 3 -1
prompt>grep '^mysql:' /etc/passwd
mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash
prompt>

La línea uid 27 es el socket de escucha del proceso mysqld, y 0CEA es hexadecimal para 3306.

hlovdal
fuente
1

Ok, esto funciona en mi caja de Linux, pero no estoy seguro de que Unix almacene el archivo cnf en el mismo lugar.

cat /etc/mysql/my.cnf | grep 'puerto'

jonfhancock
fuente
0

puede intentar seguir el registro de mysql ... intente ejecutar

shell$> tail -f /var/log/mysql/mysqld.log

mientras reinicia mysql por

service mysqld stop/start

en otra terminal / pestaña ssh. El puerto en el que se escucha se mostrará en el registro de la siguiente manera:

Version: '5.7.21-log'  socket: '/tmp/mysql.sock'  port: 3307  MySQL Community Server (GPL)
Anshuman Banerjee
fuente
-2

los comandos anteriores no me ayudaron en mi mac.

Solía lsof -i TCP:3306descubrir el proceso mysqld. que en realidad estaba escuchando a * .mysql

Prasath Rajan
fuente
1
Este comando puede proporcionarle PID si el número de puerto es el 3306 predeterminado. El póster original (OP) tenía un número no predeterminado.
kubanczyk
Le di una muestra. Puede reemplazar 3306 con cualquier otro puerto. En este caso, su 3307.Command es correcto.
Prasath Rajan
1
La forma correcta está utilizando: sudo lsof -i :3306.
Bruno Wego