MySQL прив'язується до порту 3307, а не до порту 3306


9

Я працюю OS X Yosemite 10.10.5 на Mac Mini наприкінці 2014 року. Це мій сервер розробки. Я щойно встановив MySQL на цій машині: "mysql --version" повідомляє, що версія "mysql Ver 14.14 Distrib 5.6.26, для osx10.8 (x86_64) за допомогою обгортки EditLine". Я, безумовно, завантажив і встановив "OS X 10.9" версію, однак (я просто повторно перевірив файл DMG).

У будь-якому разі я намагаюся змусити продукт слухати порт 3306 як звичайний, і я маю певні труднощі змусити це зробити це. За замовчуванням він, здається, прив’язаний до порту 3307, навіть коли my.cnf виглядає так:

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

(останній рядок уже був за замовчуванням у / usr / local / mysql /)

дивлячись на запущений процес, я бачу, що командному рядку (ps ax | grep mysql) було надано як 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

(Я запускаю і зупиняю його на даний момент на панелі налаштувань системи MySQL, а не безпосередньо з командного рядка)

Щоб отримати доступ до нього від клієнта, я повинен чітко встановити порт у командному рядку

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

Для ударів я відредагував my.cnf, щоб вказати інший випадковий порт. Сервер все ще прив’язується до порту 3307. Я не можу знайти жодного іншого my.cnf на диску ніде, який би його не міняв.

Що тут відбувається?

Відповіді:


10

Чи можете ви спробувати перевірити, чи є у вашій машині такий файл?

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

Перевірте, чи визначено порт на 3307, якщо це правда змінити на 3306 та перезапустити послугу.


Так, так. І в ньому є такий рядок: <string> --port = 3307 </string> Чому це за замовчуванням зробить це?
шотт

1
Я думаю, це трапляється тому, що цей файл запускає службу, я не впевнений, але, можливо, якщо ви видалите рядок, служба приймає порт у my.cnfфайл.
Віктор Маррокін

о так, звичайно. під "чому" я мав на увазі, чому він встановить файл з таким значенням, а не очікуваним, розумним, за замовчуванням. (Я припускаю, звичайно, що пакет встановлення встановив демон запуску ... тому що ще було б?)
scot

1

Це повинно мати щось спільне з панеллю налаштувань системи MySQL та способом запуску сервера. Я відключив та видалив панель налаштувань. Коли я запускаю / зупиняю сервер, використовуючи 'mysqld_safe' у командному рядку, він використовує порт, вказаний у my.cnf.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.