Это зависит от того, как вы можете получить доступ к серверу. Есть ли у вас доступ по ssh, доступ к клиенту mysql или какой-либо веб-интерфейс, например phpMyAdmin?
Джонфанкок
SSH доступ - через замазку
Ankur
Это общий хост? Если это так, на нем могут работать несколько экземпляров MySQL, каждый на своем порте.
Джон Гарденье
Нет, это настройка виртуальной машины только для меня, так что есть только один экземпляр.
Анкур
Ответы:
87
я сделал
mysql> ПОКАЗАТЬ ГЛОБАЛЬНЫЕ ПЕРЕМЕННЫЕ, КАК 'ПОРТ';
И это указывало, что я использовал port 3306и что мой поиск ошибки продолжается.
Эта команда помогает узнать все глобальные переменные. mysql> ПОКАЗАТЬ ГЛОБАЛЬНЫЕ ПЕРЕМЕННЫЕ;
Арун211
38
Лучший способ на самом деле знать , что приложение слушает , какой интерфейс и на какой порт использоватьnetstat
Вы можете сделать это как root :
netstat -tlnp
Он перечислит все службы прослушивания, как это:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 25934/mysqld
tcp6 0 0 :::22 :::* LISTEN 7964/dropbear
В последнем столбце показано, что mysqld привязал себя к порту 3306, прослушивающему все интерфейсы.
На самом деле, это работает для всего, не только для MySQL. Вы также можете использовать его без сокетов TCP.
Если вы действительно хотите подтвердить, что он работает на порту, вы можете подключиться к нему через telnet, пока процесс запущен следующим образом:
telnet localhost 3306
Вы увидите сообщение о том, что вы подключены к mySQL.
Вы можете найти PID процесса, используя ps и grep:
ps -ef | grep mysql
и затем поместите этот pid в lsof, чтобы распечатать все дескрипторы открытого файла. Вы найдете порт, к которому привязан процесс, вверху.
Ответы:
я сделал
И это указывало, что я использовал
port 3306
и что мой поиск ошибки продолжается.источник
Лучший способ на самом деле знать , что приложение слушает , какой интерфейс и на какой порт использовать
netstat
Вы можете сделать это как root :
Он перечислит все службы прослушивания, как это:
В последнем столбце показано, что mysqld привязал себя к порту 3306, прослушивающему все интерфейсы.
На самом деле, это работает для всего, не только для MySQL. Вы также можете использовать его без сокетов TCP.
источник
lsof -i TCP
.Войдите через терминал в MySQL:
mysql -u root
и затем введите следующее в приглашении mysql:
mysql> SHOW GLOBAL VARIABLES LIKE 'PORT';
Это сработало для меня.
источник
MySQL по умолчанию использует порт 3306, если вы не укажете другую строку в
/etc/my.cnf
файле конфигурации.Если ваш не
/etc/my.cnf
содержит что-то вродеТогда весьма вероятно, что вы используете порт по умолчанию.
источник
Если вы действительно хотите подтвердить, что он работает на порту, вы можете подключиться к нему через telnet, пока процесс запущен следующим образом:
Вы увидите сообщение о том, что вы подключены к mySQL.
Вы можете найти PID процесса, используя ps и grep:
и затем поместите этот pid в lsof, чтобы распечатать все дескрипторы открытого файла. Вы найдете порт, к которому привязан процесс, вверху.
источник
Альтернативный метод к уже перечисленным (и не такой хороший, но эй, он работает).
Строка uid 27 - это сокет прослушивания процесса mysqld, а 0CEA является шестнадцатеричным для 3306.
источник
Хорошо, это работает на моем компьютере с Linux, но я не уверен, что Unix будет хранить файл cnf в том же месте.
кошка /etc/mysql/my.cnf | grep 'port'
источник
Вы можете попытаться отследить журнал MySQL .... попробуйте запустить
при перезапуске MySQL по
на другом ssh-терминале / вкладке. Порт, на котором его прослушивание будет отображаться в журнале следующим образом:
источник
Приведенные выше команды не помогли мне в моем mac.
Я использовал,
lsof -i TCP:3306
чтобы выяснить процесс mysqld. который на самом деле слушал в * .mysqlисточник
sudo lsof -i :3306
.