MySQL bindet an Port 3307 und nicht an Port 3306

9

Ich verwende OS X Yosemite 10.10.5 auf einem Mac Mini Ende 2014. Es ist mein Entwicklungsserver. Ich habe gerade MySQL auf diesem Computer installiert: 'mysql --version' meldet, dass die Version 'mysql Ver 14.14 Distrib 5.6.26 für osx10.8 (x86_64) mit EditLine-Wrapper' ist. Ich habe jedoch definitiv die "OS X 10.9" -Version heruntergeladen und installiert (ich habe gerade die DMG-Datei erneut überprüft).

Auf jeden Fall versuche ich, das Produkt wie gewohnt auf Port 3306 abhören zu lassen, und ich habe einige Schwierigkeiten, es dazu zu bringen, es zu tun. Standardmäßig scheint es an Port 3307 gebunden zu sein, auch wenn my.cnf so aussieht:

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

(Die letzte Zeile war bereits in der Standardzeile in / usr / local / mysql /)

Wenn ich mir den laufenden Prozess anschaue, sehe ich, dass die Befehlszeile (ps ax | grep mysql) als 3307 angegeben wurde:

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

(Ich starte und stoppe es derzeit mit dem MySQL-Systemeinstellungsfeld, das nicht direkt von der Befehlszeile entfernt ist.)

Um vom Client aus darauf zugreifen zu können, muss ich den Port explizit in der Befehlszeile festlegen

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

Für Kicks habe ich die Datei my.cnf bearbeitet, um einen anderen zufälligen Port anzugeben. Der Server ist immer noch an Port 3307 gebunden. Ich kann keine andere my.cnf auf der Festplatte finden, die sie möglicherweise überschreibt.

Was geht hier vor sich?

Schotte
quelle

Antworten:

10

Können Sie versuchen zu überprüfen, ob die folgende Datei auf Ihrem Computer vorhanden ist?

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

Überprüfen Sie, ob der Port auf 3307 definiert ist. Wenn dies zutrifft, wechseln Sie zu 3306 und starten Sie den Dienst neu.

Victor Marroquin
quelle
Ja, ja, das tut es. Und es enthält diese Zeile: <string> --port = 3307 </ string> Warum sollte es das standardmäßig tun?
Scot
1
Ich denke, dies geschieht, weil diese Datei den Dienst startet. Ich bin mir nicht sicher, aber wenn Sie die Zeile löschen, übernimmt der Dienst möglicherweise den Port in der my.cnfDatei.
Victor Marroquin
Oh ja natürlich. Mit "warum" meinte ich, warum die Datei mit einem solchen Wert installiert werden sollte und nicht mit dem erwarteten, vernünftigen Standard. (Ich gehe natürlich davon aus, dass das Installationspaket den Startdämon installiert hat ... denn was hätte es sonst noch?)
Scot
1

Dies muss etwas mit dem MySQL-Systemeinstellungsfeld und der Art und Weise zu tun haben, wie der Server gestartet wird. Ich habe das Einstellungsfeld deaktiviert und entfernt. Wenn ich den Server mit 'mysqld_safe' in der Befehlszeile starte / stoppe, verwendet er den in my.cnf angegebenen Port.

Schotte
quelle