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.