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.

п`одать
источник