Jak sprawdzić, na którym porcie działa mysql

69

Na moim Windows Dev Dev MySQL działa na porcie 3306

Jak mogę sprawdzić, na jakim porcie działa na serwerze unix, do którego muszę załadować aplikację.

Ankur
źródło
To zależy od sposobu uzyskania dostępu do serwera. Czy masz dostęp ssh, dostęp klienta mysql lub jakiś interfejs sieciowy, taki jak phpMyAdmin?
jonfhancock
dostęp ssh - przez kit
Ankur
Czy to jest host współdzielony? Jeśli tak, może być uruchomionych na nim wiele instancji MySQL, każda na innym porcie.
John Gardeniers
Nie, to konfiguracja maszyny wirtualnej tylko dla mnie, więc jest tylko jedna instancja.
Ankur

Odpowiedzi:

87

Zrobiłem

mysql> POKAŻ GLOBALNE ZMIENNE, JAK „PORT”;

Oznaczało to, że korzystam port 3306i że moje wyszukiwanie błędu trwa.

Ankur
źródło
1
To polecenie pomaga znaleźć wszystkie zmienne globalne. mysql> POKAŻ GLOBALNE ZMIENNE;
Arun211
38

Najlepszym sposobem, aby wiedzieć, co rzeczywiście aplikacja jest słuchanie który interfejs i na jakich port jest w użyciunetstat

Możesz to zrobić jako root :

netstat -tlnp

Spowoduje to wyświetlenie wszystkich takich usług odsłuchowych:

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

Ostatnia kolumna pokazuje, że mysqld związał się z portem 3306 nasłuchując na wszystkich interfejsach.

W rzeczywistości działa to na wszystko, nie tylko na MySQL. Możesz go również używać bez gniazd TCP.

sybreon
źródło
2
flaga -p działa tylko w systemie Linux, afaik. (na pewno nie Mac OS X)
jdizzle
1
zgadnij, że utknąłeś lsof -i TCPwtedy.
sybreon
Polecenia systemu Linux i polecenia systemu Windows różnią się nieznacznie. W systemie Windows musisz zostać podniesiony i zastąpić p ab
IceMage
6

Wejdź przez terminal do mysql:

mysql -u root

a następnie wpisz następujące polecenie w wierszu polecenia mysql:

mysql> SHOW GLOBAL VARIABLES LIKE 'PORT';

To zadziałało dla mnie.

IgnacioAinol
źródło
4

Domyślnie MySQL to port 3306, chyba że podasz inną linię w /etc/my.cnfpliku konfiguracyjnym.

Chyba że /etc/my.cnfzawiera coś takiego

[mysqld]
port = 3308

Wtedy jest bardzo prawdopodobne, że używasz domyślnego portu.

Dave Cheney
źródło
4

Jeśli naprawdę chcesz potwierdzić, że działa on na porcie, możesz telnet do portu, gdy proces jest zakończony:

telnet localhost 3306

Zobaczysz raport, że masz połączenie z mySQL.

Alternatywnie można znaleźć PID procesu za pomocą ps i grep:

ps -ef | grep mysql

a następnie wstaw ten pid do lsof, aby wydrukować wszystkie otwarte deskryptory plików. Port, do którego proces jest przypisany, znajduje się u góry.

Alex
źródło
3

Metoda alternatywna do już wymienionych (i nie tak dobra, ale hej, to działa).

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>

Linia UID 27 jest gniazdem nasłuchowym procesu mysqld, a 0CEA ma wartość szesnastkową dla 3306.

hlovdal
źródło
1

Ok, działa to na moim systemie Linux, ale nie jestem pewien, czy Unix zapisze plik cnf w tym samym miejscu.

cat /etc/mysql/my.cnf | grep „port”

jonfhancock
źródło
0

możesz spróbować dostosować dziennik mysql .... spróbuj uruchomić

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

podczas ponownego uruchamiania mysql przez

service mysqld stop/start

na innym terminalu / karcie ssh. Port, na którym nasłuchiwanie zostanie wyświetlony w dzienniku w następujący sposób:

Version: '5.7.21-log'  socket: '/tmp/mysql.sock'  port: 3307  MySQL Community Server (GPL)
Anshuman Banerjee
źródło
-2

powyższe polecenia nie pomogły mi w moim komputerze Mac.

Kiedyś lsof -i TCP:3306odkrywałem proces mysqld. który faktycznie nasłuchiwał na * .mysql

Prasath Rajan
źródło
1
To polecenie może dać ci PID, jeśli domyślnym numerem portu jest 3306. Oryginalny plakat (OP) miał inny niż domyślny numer.
kubańczyk
Podałem próbkę. Możesz zastąpić 3306 dowolnym innym portem. W tym przypadku jego 3307.Command ma rację.
Prasath Rajan
1
Prawidłowe sposobem jest użycie: sudo lsof -i :3306.
Bruno Wego,