Làm thế nào để kiểm tra cổng mysql đang chạy trên


69

Trên cửa sổ của tôi, dev dev mys mys đang chạy trên cổng 3306

Làm cách nào tôi có thể kiểm tra cổng nào đang chạy trên máy chủ unix mà tôi phải tải ứng dụng lên.


Điều đó phụ thuộc vào cách bạn có thể truy cập máy chủ. Bạn có quyền truy cập ssh, truy cập máy khách mysql hoặc một số giao diện web như phpMyAdmin không?
jonfhancock

truy cập ssh - thông qua putty
Ankur

Đây có phải là một máy chủ chia sẻ? Nếu vậy, có thể có nhiều phiên bản MySQL chạy trên nó, mỗi phiên bản trên một cổng khác nhau.
John Gardeniers

Không, đó là thiết lập VM chỉ dành cho tôi, vì vậy chỉ có một phiên bản.
Ankur

Câu trả lời:


87

tôi đã làm

mysql HIỂN THỊ BIỂU TƯỢNG TOÀN CẦU THÍCH 'PORT';

Và điều đó chỉ ra rằng tôi đang sử dụng port 3306và việc tìm kiếm lỗi của tôi vẫn tiếp tục.


1
Lệnh này giúp tìm ra tất cả các biến toàn cầu. mysql HIỂN THỊ BIỂU TƯỢNG TOÀN CẦU;
Arun211

38

Cách tốt nhất để thực sự biết ứng dụng nào đang nghe giao diện nào và sử dụng cổng nàonetstat

Bạn có thể làm điều này như root :

netstat -tlnp

Nó sẽ liệt kê ra tất cả các dịch vụ nghe như thế này:

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

Cột cuối cùng cho bạn thấy rằng mysqld tự ràng buộc với cổng 3306 lắng nghe trên tất cả các giao diện.

Trong thực tế, điều này làm việc cho tất cả mọi thứ, không chỉ mysql. Bạn cũng có thể sử dụng nó không phải là ổ cắm TCP.


2
cờ -p chỉ hoạt động trên linux, afaik. (chắc chắn không phải là Mac OS X, ít nhất)
jdizzle

1
đoán rằng bạn đang bị mắc kẹt lsof -i TCPsau đó.
sybreon

Lệnh Linux và lệnh windows khác nhau một chút. Đối với Windows, bạn phải được nâng lên và thay thế p bằng ab
IceMage

6

Nhập qua thiết bị đầu cuối để mysql:

mysql -u root

và sau đó gõ như sau trong lời nhắc mysql:

mysql> SHOW GLOBAL VARIABLES LIKE 'PORT';

Điều này làm việc cho tôi.


4

MySQL mặc định là cổng 3306 trừ khi bạn chỉ định một dòng khác trong /etc/my.cnftệp cấu hình.

Trừ khi bạn /etc/my.cnfcó chứa một cái gì đó như

[mysqld]
port = 3308

Sau đó, rất có thể bạn đang sử dụng cổng mặc định.


4

Nếu bạn thực sự muốn xác nhận rằng nó đang chạy trên cổng, bạn có thể telnet vào cổng trong khi quá trình đang diễn ra như vậy:

telnet localhost 3306

Bạn sẽ thấy nó báo cáo rằng bạn đã kết nối với myQuery.

Về mặt bản chất, bạn có thể tìm thấy PID của quá trình bằng cách sử dụng ps và grep:

ps -ef | grep mysql

và sau đó đặt pid đó vào lsof để in ra tất cả các mô tả tệp đang mở. Bạn sẽ tìm thấy cổng mà quá trình được ràng buộc ở gần đầu.


3

Một phương pháp thay thế cho những phương pháp đã được liệt kê (và không tốt bằng nhưng này, nó hoạt động).

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>

Dòng uid 27 là ổ cắm nghe của quá trình mysqld và 0CEA là hex cho 3306.


1

Ok, cái này hoạt động trên hộp linux của tôi, nhưng tôi không chắc rằng Unix sẽ lưu trữ tệp cnf ở cùng một nơi.

mèo /etc/mysql/my.cnf | grep 'cổng'


0

bạn có thể thử theo dõi nhật ký mysql .... hãy thử chạy

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

trong khi khởi động lại mysql bằng

service mysqld stop/start

trên một thiết bị đầu cuối ssh / tab. Cổng mà phần nghe của nó sẽ được hiển thị trong nhật ký như sau:

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

-2

các lệnh trên không giúp tôi trong mac của tôi.

Tôi đã sử dụng lsof -i TCP:3306để tìm hiểu quá trình mysqld. mà thực sự đã lắng nghe vào * .mysql


1
Lệnh này có thể cung cấp cho bạn PID nếu số cổng là mặc định 3306. Poster gốc (OP) có số không mặc định.
kubanchot

Tôi đã đưa ra một mẫu .. Bạn có thể thay thế 3306 bằng bất kỳ cổng nào khác. Trong trường hợp này, 3307.Command của nó là đúng mặc dù.
Prasath Rajan

1
Cách chính xác là sử dụng : sudo lsof -i :3306.
Bruno
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.