MySQL wiąże się z portem 3307, a nie z portem 3306

9

Korzystam z systemu OS X Yosemite 10.10.5 na komputerze Mac Mini z końca 2014 roku. To mój serwer programistyczny. Właśnie zainstalowałem MySQL na tym komputerze: „mysql --version” informuje, że wersja to „mysql Ver 14.14 Distrib 5.6.26, dla osx10.8 (x86_64) przy użyciu opakowania EditLine”. Zdecydowanie jednak pobrałem i zainstalowałem wersję „OS X 10.9” (ponownie sprawdziłem plik DMG).

W każdym razie staram się, aby produkt nasłuchiwał na porcie 3306 jak zwykle i mam trudności z tym, aby to zrobić. Domyślnie wydaje się być związany z portem 3307, nawet jeśli my.cnf wygląda następująco:

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

(ostatni wiersz był już domyślny w / usr / local / mysql /)

patrząc na działający proces widzę, że wiersz polecenia (ps ax | grep mysql) został podany jako 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

(Zaczynam i zatrzymuję to teraz, gdy panel preferencji systemowych MySQL nie jest bezpośrednio z linii poleceń)

Aby uzyskać do niego dostęp z klienta, muszę jawnie ustawić port w linii poleceń

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

W przypadku kopnięć zmodyfikowałem plik my.cnf, aby określić inny losowy port. Serwer nadal wiąże się z portem 3307. Nie mogę znaleźć żadnego innego pliku my.cnf na dysku, który mógłby go przesłonić.

Co tu się dzieje?

Szkot
źródło

Odpowiedzi:

10

Czy możesz spróbować sprawdzić, czy na twoim komputerze istnieje następujący plik?

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

Sprawdź, czy port jest zdefiniowany w 3307, jeśli to prawda, zmień na 3306 i zrestartuj usługę.

Victor Marroquin
źródło
Tak, tak. I ma w sobie następujący wiersz: <string> --port = 3307 </string> Dlaczego domyślnie miałby to robić?
scot
1
Wydaje mi się, że tak się dzieje, ponieważ ten plik uruchamia usługę, nie jestem pewien, ale może jeśli usuniesz linię, usługa przejmie port w my.cnfpliku.
Victor Marroquin,
Oh tak, oczywiście. przez „dlaczego” miałem na myśli, dlaczego miałby zainstalować plik o takiej wartości zamiast oczekiwanej, rozsądnej, domyślnej. (Zakładam oczywiście, że pakiet instalacyjny zainstalował demona uruchamiającego ... bo co jeszcze by miał?)
scot
1

To musi mieć coś wspólnego z panelem preferencji systemowych MySQL i sposobem uruchamiania serwera. Wyłączyłem i usunąłem panel preferencji. Kiedy uruchamiam / zatrzymuję serwer za pomocą polecenia „mysqld_safe” w wierszu polecenia, używa on portu określonego w pliku my.cnf.

Szkot
źródło