Como verificar em que porta o mysql está sendo executado

69

Na minha caixa de desenvolvimento do Windows, o mysql está sendo executado na porta 3306

Como posso verificar em que porta está sendo executada no servidor unix para o qual tenho que carregar o aplicativo.

Ankur
fonte
Isso depende de como você pode acessar o servidor. Você tem acesso ssh, acesso ao cliente mysql ou alguma interface da web como o phpMyAdmin?
Jonfhancock
acesso ssh - por meio de massa
Ankur
Este é um host compartilhado? Nesse caso, pode haver várias instâncias do MySQL em execução, cada uma em uma porta diferente.
John Gardeniers
Não, é uma configuração de VM apenas para mim, então há apenas uma instância.
Ankur

Respostas:

87

eu fiz

mysql> MOSTRA VARIÁVEIS GLOBAIS COMO 'PORT';

E isso indicava que eu estava usando port 3306e que minha busca pelo erro continua.

Ankur
fonte
11
Este comando ajuda a descobrir todas as variáveis ​​globais. mysql> MOSTRA VARIÁVEIS GLOBAIS;
Arun211 4/03
38

A melhor maneira de realmente saber qual aplicativo está ouvindo qual interface e em qual porta usarnetstat

Você pode fazer isso como root :

netstat -tlnp

Ele listará todos os serviços de escuta como este:

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

A última coluna mostra que o mysqld se ligou à porta 3306 escutando em todas as interfaces.

De fato, isso funciona para tudo, não apenas para o mysql. Você também pode usá-lo sem soquetes TCP.

sybreon
fonte
2
a bandeira -p funciona apenas no linux, afaik. (definitivamente não Mac OS X, pelo menos)
jdizzle
11
acho que você está preso com lsof -i TCPentão.
sybreon
O comando Linux e o comando Windows variam um pouco. No Windows, você deve estar elevado e substituir op por ab
IceMage
6

Entre via terminal no mysql:

mysql -u root

e digite o seguinte no prompt do mysql:

mysql> SHOW GLOBAL VARIABLES LIKE 'PORT';

Isso funcionou para mim.

IgnacioAinol
fonte
4

O MySQL assume como padrão a porta 3306, a menos que você especifique outra linha no /etc/my.cnfarquivo de configuração.

A menos que o seu /etc/my.cnfcontenha algo como

[mysqld]
port = 3308

Então é muito provável que você esteja usando a porta padrão.

Dave Cheney
fonte
4

Se você realmente deseja confirmar que está em execução na porta, pode fazer o telnet para a porta enquanto o processo ocorre da seguinte maneira:

telnet localhost 3306

Você verá o relatório de que está conectado ao mySQL.

Como alternativa, você pode encontrar o PID do processo usando ps e grep:

ps -ef | grep mysql

e depois coloque esse pid em lsof para imprimir todos os descritores de arquivos abertos. Você encontrará a porta à qual o processo está vinculado próximo ao topo.

Alex
fonte
3

Um método alternativo aos já listados (e não tão bom, mas ei, funciona).

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>

A linha uid 27 é o soquete de escuta do processo mysqld, e 0CEA é hexadecimal para 3306.

hlovdal
fonte
1

Ok, isso funciona na minha caixa linux, mas não tenho certeza se o Unix armazenará o arquivo cnf no mesmo local.

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

jonfhancock
fonte
0

você pode tentar seguir o log do mysql .... tente executar

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

enquanto reinicia o mysql

service mysqld stop/start

em outro terminal / guia ssh. A porta na qual sua escuta será exibida no log da seguinte maneira:

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

Os comandos acima não me ajudaram no meu mac.

Eu costumava lsof -i TCP:3306descobrir o processo mysqld. que estava realmente ouvindo * .mysql

Prasath Rajan
fonte
11
Este comando pode fornecer o PID se o número da porta for o padrão 3306. O Pôster original (OP) tinha um número não padrão.
kubanczyk
Eu dei uma amostra .. Você pode substituir 3306 por qualquer outra porta. Nesse caso, seu 3307.Command está certo.
Prasath Rajan
11
A maneira correta é usar: sudo lsof -i :3306.
Bruno Wego