So überprüfen Sie, auf welchem ​​Port MySQL ausgeführt wird


69

Auf meiner Windows Dev Box läuft MySQL auf Port 3306

Wie kann ich überprüfen, auf welchem ​​Port auf dem Unix-Server die App hochgeladen werden muss?


Das hängt davon ab, wie Sie auf den Server zugreifen können. Haben Sie SSH-Zugang, MySQL-Client-Zugang oder eine Web-Oberfläche wie phpMyAdmin?
Jonfhancock

SSH Zugang - durch Kitt
Ankur

Ist das ein gemeinsamer Host? In diesem Fall werden möglicherweise mehrere Instanzen von MySQL auf einem anderen Port ausgeführt.
John Gardeniers

Nein, es ist ein VM-Setup nur für mich, es gibt also nur eine Instanz.
Ankur

Antworten:


87

Ich tat

mysql> SHOW GLOBAL VARIABLES LIKE 'PORT';

Und das zeigt an, dass ich verwendet habe port 3306und dass meine Suche nach dem Fehler fortgesetzt wird.


1
Mit diesem Befehl können Sie alle globalen Variablen ermitteln. mysql> SHOW GLOBAL VARIABLES;
Arun211

38

Der beste Weg, um tatsächlich zu wissen, welche Anwendung auf welcher Schnittstelle und an welchem ​​Port empfangsbereit istnetstat

Sie können dies als root tun :

netstat -tlnp

Es werden alle Hördienste wie folgt aufgelistet:

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

In der letzten Spalte sehen Sie, dass sich mysqld an den Port 3306 gebunden hat, der alle Schnittstellen überwacht.

In der Tat funktioniert dies für alles, nicht nur für MySQL. Sie können es auch ohne TCP-Sockets verwenden.


2
Das Flag -p funktioniert nur unter Linux, afaik. (definitiv nicht Mac OS X, zumindest)
jdizzle

1
denke mal, dass du dann feststeckst lsof -i TCP.
Sybreon

Der Linux-Befehl und der Windows-Befehl variieren geringfügig. Für Windows müssen Sie einen erhöhten
Status haben

6

Geben Sie über Terminal zu MySQL:

mysql -u root

und geben Sie dann Folgendes in die mysql-Eingabeaufforderung ein:

mysql> SHOW GLOBAL VARIABLES LIKE 'PORT';

Das hat bei mir funktioniert.


4

MySQL verwendet standardmäßig Port 3306, es sei denn, Sie geben eine andere Zeile in der /etc/my.cnfKonfigurationsdatei an.

Es sei denn, Ihr /etc/my.cnfenthält so etwas

[mysqld]
port = 3308

Dann ist es sehr wahrscheinlich, dass Sie den Standardport verwenden.


4

Wenn Sie wirklich bestätigen möchten, dass es auf dem Port ausgeführt wird, können Sie in den Port telneten, während der Prozess wie folgt abläuft:

telnet localhost 3306

Es wird angezeigt, dass Sie mit mySQL verbunden sind.

Alternativ können Sie die PID des Prozesses mit ps und grep ermitteln:

ps -ef | grep mysql

und dann diese pid in lsof, um alle offenen Dateideskriptoren auszudrucken. Sie finden den Port, an den der Prozess gebunden ist, fast oben.


3

Eine alternative Methode zu den bereits aufgelisteten (und nicht so gut, aber hey, es funktioniert).

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>

Die Zeile uid 27 ist der Listening-Socket des mysqld-Prozesses, und 0CEA ist hexadezimal für 3306.


1

Ok, das funktioniert auf meiner Linux-Box, aber ich bin nicht sicher, ob Unix die cnf-Datei am selben Ort speichern wird.

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


0

Sie können versuchen, das MySQL-Protokoll zu verfolgen. Versuchen Sie, es auszuführen

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

beim Neustart von MySQL durch

service mysqld stop/start

auf einem anderen ssh terminal / tab. Der Port, an dem er empfangsbereit ist, wird im Protokoll wie folgt angezeigt:

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

-2

Die obigen Befehle haben mir auf meinem Mac nicht geholfen.

Früher lsof -i TCP:3306habe ich den mysqld-Prozess herausgefunden. was tatsächlich in * .mysql lauschte


1
Dieser Befehl kann Ihnen eine PID geben, wenn die Portnummer die Standardnummer 3306 ist. Original Poster (OP) hatte eine andere als die Standardnummer.
Kubanczyk

Ich habe ein Beispiel gegeben. Sie können 3306 durch jeden anderen Port ersetzen. In diesem Fall ist der 3307.Command jedoch richtig.
Prasath Rajan

1
Der richtige Weg ist mit: sudo lsof -i :3306.
Bruno Wego
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.