Come verificare su quale porta mysql è in esecuzione


69

Sulla mia finestra di sviluppo di Windows mysql è in esecuzione sulla porta 3306

Come posso verificare su quale porta è in esecuzione sul server unix su cui devo caricare l'app.


Dipende da come è possibile accedere al server. Hai accesso ssh, accesso client mysql o qualche interfaccia web come phpMyAdmin?
jonfhancock,

ssh access - through putty
Ankur

È un host condiviso? In tal caso, potrebbero esserci più istanze di MySQL in esecuzione su di esso, ognuna su una porta diversa.
John Gardeniers,

No, è una configurazione VM solo per me, quindi c'è solo un'istanza.
Ankur,

Risposte:


87

L'ho fatto

mysql> MOSTRA VARIABILI GLOBALI COME 'PORT';

E questo indicava che stavo usando port 3306e che la mia ricerca dell'errore continua.


1
Questo comando aiuta a scoprire tutte le variabili globali. mysql> MOSTRA VARIABILI GLOBALI;
Arun211

38

Il modo migliore per sapere effettivamente quale applicazione sta ascoltando quale interfaccia e su quale porta utilizzarenetstat

Puoi farlo come root :

netstat -tlnp

Elencherà tutti i servizi di ascolto in questo modo:

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

L'ultima colonna mostra che mysqld si è associato alla porta 3306 in ascolto su tutte le interfacce.

In effetti, questo funziona per tutto, non solo per mysql. Puoi anche usarlo con socket non TCP.


2
il flag -p funziona solo su linux, afaik. (sicuramente non Mac OS X, almeno)
jdizzle

1
Immagino che sei bloccato con lsof -i TCPallora.
sybreon

Il comando Linux e il comando windows variano leggermente. Per Windows, è necessario essere elevati e sostituire p con ab
IceMage

6

Inserisci tramite terminale per mysql:

mysql -u root

e quindi digitare quanto segue nel prompt mysql:

mysql> SHOW GLOBAL VARIABLES LIKE 'PORT';

Questo ha funzionato per me.


4

Per impostazione predefinita, MySQL porta 3306 a meno che non si specifichi un'altra riga nel /etc/my.cnffile di configurazione.

A meno che non /etc/my.cnfcontenga qualcosa del genere

[mysqld]
port = 3308

Quindi è molto probabile che tu stia utilizzando la porta predefinita.


4

Se vuoi davvero confermare che è in esecuzione sulla porta, puoi telnet nella porta mentre il processo è attivo in questo modo:

telnet localhost 3306

Lo vedrai segnalare che sei connesso a mySQL.

In alternativa, puoi trovare il PID del processo usando ps e grep:

ps -ef | grep mysql

e quindi metti quel pid in lsof per stampare tutti i descrittori di file aperti. Troverai la porta a cui è legato il processo vicino alla cima.


3

Un metodo alternativo a quelli già elencati (e non altrettanto buono, ma ehi, funziona).

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 linea uid 27 è il socket di ascolto del processo mysqld e 0CEA è esadecimale per 3306.


1

Ok, questo funziona sul mio Linux box, ma non sono sicuro che Unix memorizzerà il file cnf nello stesso posto.

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


0

potresti provare ad accodare il registro mysql .... prova a correre

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

durante il riavvio di mysql da

service mysqld stop/start

su un altro terminale / scheda ssh. La porta su cui verrà visualizzato il suo ascolto nel registro come segue:

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

-2

i comandi sopra non mi hanno aiutato nel mio mac.

Ho lsof -i TCP:3306scoperto il processo mysqld. che stava effettivamente ascoltando * .mysql


1
Questo comando può fornire PID se il numero di porta è il 3306 predefinito. Poster originale (OP) aveva un numero non predefinito.
Kubanczyk,

Ho fornito un esempio. Puoi sostituire 3306 con qualsiasi altra porta. In questo caso il suo 3307.Command ha ragione però.
Prasath Rajan,

1
Il modo corretto sta usando: sudo lsof -i :3306.
Bruno Wego,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.