O MySQL se liga à porta 3307 e não à porta 3306

9

Estou executando o OS X Yosemite 10.10.5 em um Mac Mini do final de 2014. É o meu servidor de desenvolvimento. Acabei de instalar o MySQL nesta máquina: 'mysql --version' relata que a versão é 'mysql Ver 14.14 Distrib 5.6.26, para osx10.8 (x86_64) usando o wrapper EditLine'. Definitivamente, baixei e instalei a versão "OS X 10.9" (apenas verifiquei novamente o arquivo DMG).

De qualquer forma, estou tentando fazer com que o produto escute na porta 3306 normalmente e estou tendo algumas dificuldades para fazê-lo. Por padrão, parece estar vinculado à porta 3307, mesmo quando my.cnf se parece com isso:

[mysqld]
bind-address = 0.0.0.0
port         = 3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

(a última linha já estava na linha padrão em / usr / local / mysql /)

olhando para o processo em execução, posso ver que a linha de comando (ps ax | grep mysql) foi dada como 3307:

40958   ??  Ss     0:00.38 /usr/local/mysql/bin/mysqld \\
--user=_mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data \\
--plugin-dir=/usr/local/mysql/lib/plugin \\
--log-error=/usr/local/mysql/data/mysqld.local.err \\
--pid-file=/usr/local/mysql/data/mysqld.local.pid --port=3307

(Estou iniciando e parando-o atualmente com o painel de preferências do sistema MySQL, não diretamente fora da linha de comando)

Para acessá-lo a partir do cliente, devo definir explicitamente a porta na linha de comando

$ mysql -u smcphee -h 192.168.x.x -P 3307 -p

Para começar, editei o my.cnf para especificar outra porta aleatória. O servidor ainda está vinculado à porta 3307. Não consigo encontrar nenhum outro my.cnf no disco em nenhum lugar que possa estar substituindo-o.

O que está acontecendo aqui?

escocês
fonte

Respostas:

10

Você pode tentar verificar se o seguinte arquivo existe em sua máquina?

/Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist

Verifique se a porta está definida no 3307, se isso for verdadeiro, mude para 3306 e reinicie o serviço.

Victor Marroquin
fonte
Sim, sim. E tem esta linha: <string> --port = 3307 </string> Por que isso faria por padrão?
scot
11
Eu acho que isso acontece porque esse arquivo inicia o serviço, não tenho certeza, mas talvez se você excluir a linha, o serviço leva a porta no my.cnfarquivo.
Victor Marroquin
Ah sim, claro. por "por que" eu quis dizer por que instalaria o arquivo com um valor desse tipo e não o padrão esperado, sensível e padrão. (Suponho que é claro que o pacote de instalação instalou o daemon lançamento ... porque o que mais tem?)
Scot
1

Isso deve ter algo a ver com o painel de preferências do sistema MySQL e a maneira como ele inicia o servidor. Desativei e removi o painel de preferências. Quando inicio / paro o servidor usando 'mysqld_safe' na linha de comando, ele usa a porta especificada em my.cnf.

escocês
fonte