Как узнать порт mysql сервера ubuntu
Я установил MySQL и даже вошел туда как пользователь.
но когда я пытаюсь подключить так:
Не работает. Не уверен, что оба должны работать, но по крайней мере один из них должен :)
Как я могу убедиться, что порт действительно 3306? Есть ли команда linux, чтобы увидеть это как-то? Кроме того, есть ли более правильный способ попробовать его через url?
найти слушателя на порту, сделайте следующее:
вы должны увидеть строку, которая выглядит так, если MySQL действительно прослушивает этот порт.
порт 3306 является портом MySql по умолчанию.
для подключения вам просто нужно использовать любой клиент, который вам нужен, например, базовый клиент mysql.
база данных пользователей mysql-h localhost-u
или url-адрес, который интерпретируется вашим кодом библиотеки.
grep port /etc/mysql/my.cnf (по крайней мере, в debian/ubuntu работает )
или
проверка
bind-адрес 127.0.0.1
in /etc / mysql / my.КНФ, чтобы увидеть возможные ограничения
он покажет список что-то вроде ниже:
использовать в качестве корня для всех деталей. Элемент -t опция ограничивает выход TCP-соединениями, -l для прослушивания портов, -p содержит имя программы и -n показывает числовую версию порта вместо именованной версии.
таким образом, вы можете увидеть имя процесса и порт.
попробуйте использовать только -e ( --execute ) параметр:
заменить root по вашему "логину " и"паролю"
более простой подход для некоторых : Если вы просто хотите проверить, если MySQL находится на определенном порте, вы можете использовать следующую команду в терминале. Проверено на mac. 3306 это порт по умолчанию.
mysql --host=127.0.0.1 --port=3306
Если вы успешно войти в терминал оболочки MySQL, вы хорошо! Это выход, который я получаю при успешном входе в систему.
3306-порт по умолчанию для mysql. Проверьте это с помощью:
это должно дать такой результат:
tcp 0 0 127.0.0.1:3306 0.0.0.0: * слушайте
для меня ответ @joseluisq дал:
ошибка 1045( 28000): доступ запрещен для пользователя 'root'@'localhost' (используя пароль: нет)
но это сработало так:
на mac os X есть два варианта. netstat или lsof
используя netstat не будет показывать процесс на Mac OS X. Поэтому с помощью netstat вы можете искать только по порту.
Используя lsof покажет имя процесса.Я сделал следующее, Когда я столкнулся с конфликтами портов (контейнеры docker):
netstat -aln | grep 3306
выходы: tcp46 0 0 *.3306 *.* LISTEN
sudo lsof -i -P | grep -i "LISTEN" | grep -i 3306
выходы: mysqld 60608 _mysql 31u IPv6 0x2ebc4b8d88d9ec6b 0t0 TCP *:3306 (LISTEN)
Я согласен с решением @bortunac. мой.conf является специфичным для mysql, в то время как netstat предоставит вам все порты прослушивания.
возможно, используйте оба, один для подтверждения того, какой порт установлен для mysql, а другой для проверки того, что система прослушивает через этот порт.
мой клиент использует CentOS 6.6 и я нашел мой.файл conf под /etc/, поэтому я использовал:
grep port /etc/my.conf (CentOS 6.6)
если вы находитесь в системе, где netstat недоступно (например, RHEL 7 и более поздние версии Debian) вы можете использовать ss , как показано ниже:
и вы получите что-то вроде следующего вывода:
четвертый столбец Local Address:Port . Так что в этом случае Mysql прослушивает порт 3306, по умолчанию.
Я установил MySQL и даже вошел туда как пользователь.
но когда я пытаюсь подключить так:
Не работает. Не уверен, что оба должны работать, но по крайней мере один из них должен :)
Как я могу убедиться, что порт действительно 3306? Есть ли команда linux, чтобы увидеть это как-то? Кроме того, есть ли более правильный способ попробовать его через url-адрес?
найти слушателя на порту, сделайте следующее:
вы должны увидеть строку, которая выглядит так, если mysql действительно слушает этот порт.
порт 3306 порт по умолчанию.
для подключения вам просто нужно использовать любой клиент, который вам нужен, например, базовый клиент mysql.
mysql-h localhost-U пользовательская база данных
или url-адрес, интерпретируемый кодом библиотеки.
использование mysql client:
grep port /etc/mysql/my.cnf (по крайней мере, в debian/ubuntu работает )
в /etc / mysql / my.КНФ, чтобы увидеть возможные ограничения
он покажет список что-то вроде ниже:
Используйте как root для всех деталей. The -t опция ограничивает выход TCP-соединениями, -l для прослушивания портов, -p содержит имя программы и -n показывает числовую версию порта вместо именованной версии.
таким образом, вы можете увидеть имя процесса и порт.
оба URL-адреса неверны-должно быть
Я думал, что это само собой разумеется, но для подключения к базе данных с Java требуется драйвер JDBC. Вам понадобится MySQL JDBC драйвер.
возможно, вы можете подключиться с помощью сокета через TCP / IP. Проверьте MySQL docs.
Я попытался telnet в MySQL ( telnet ip 3306 ), но это не работает:
Я думаю, что это то, что вы имели в виду.
попробуйте использовать только -e ( --execute ) параметр:
заменить root Ваш "логин" и "пароль"
более простой подход для некоторых : Если вы просто хотите проверить, если MySQL находится на определенном порте, вы можете использовать следующую команду в терминале. Протестировано на mac. По умолчанию используется порт 3306.
mysql --host=127.0.0.1 --port=3306
Если вы успешно вошли в терминал оболочки MySQL, вы хороши! Это результат, который я получаю при успешном входе в систему.
3306-порт по умолчанию для mysql. Проверьте это с:
он должен дать такой результат:
tcp 0 0 127.0.0.1:3306 0.0.0.0: * слушайте
для меня ответ @joseluisq дал:
ошибка 1045 (28000): доступ запрещен для пользователя "root" @ "localhost" (используя пароль: нет)
но это сработало так:
на mac os X есть два варианта. netstat или lsof
используя netstat не покажет процесс на Mac OS X. Поэтому с помощью netstat вы можете искать только по порту.
Используя lsof покажет имя процесса.
Я сделал следующее, когда столкнулся с конфликтами портов (контейнеры docker):
netstat -aln | grep 3306
выходы: tcp46 0 0 *.3306 *.* LISTEN
sudo lsof -i -P | grep -i "LISTEN" | grep -i 3306
выходы: mysqld 60608 _mysql 31u IPv6 0x2ebc4b8d88d9ec6b 0t0 TCP *:3306 (LISTEN)
Я согласен с решением @bortunac. мой.conf специфичен для mysql, в то время как netstat предоставит вам все порты прослушивания.
возможно, используйте оба, один, чтобы подтвердить, какой порт установлен для mysql, а другой, чтобы проверить, что система прослушивает через этот порт.
мой клиент использует CentOS 6.6, и я нашел my.conf файл под /etc/, поэтому я использовал:
grep port /etc/my.conf (CentOS 6.6)
если вы находитесь в системе, где netstat недоступен (например, RHEL 7 и более поздние выпуски Debian) вы можете использовать ss , как показано ниже:
и вы получите что-то вроде следующего вывода:
четвертая колонка - Local Address:Port . Таким образом, в этом случае Mysql прослушивает порт 3306, по умолчанию.
Я установил MySQL и даже зарегистрировался там как пользователь.
Но когда я пытаюсь подключиться так:
Ничего не работает. Не уверен, что обе они должны работать, но по крайней мере один из них должен:)
Как я могу убедиться, что порт действительно 3306? Есть ли команда linux, чтобы как-то это увидеть? Кроме того, есть ли более правильный способ попробовать его с помощью URL?
Чтобы найти слушателя на порту, сделайте следующее:
Вы должны увидеть строку, которая выглядит так, если mysql действительно прослушивает этот порт.
Порт 3306 - это порт по умолчанию MySql.
Чтобы подключиться, вам просто нужно использовать любой клиент, который вам нужен, например, базовый клиент mysql.
mysql -h localhost -u пользовательская база данных
Или URL, который интерпретируется кодом вашей библиотеки.
Что это значит, когда вместо 127.0.0.1:3306 написано 0.0.0.0:3306? @mbmast the 127 . означает прослушивание только на локальном хосте (не доступно извне). 0.0.0.0 означает «все интерфейсы» и поэтому (обычно) виден снаружи. Я думал, что это внешне видно, это должен был быть собственный IP-адрес машины, а 0.0.0.0 означает, что служба недоступна нигде. У меня что-то не так? У меня есть окно под управлением MySQL, у брандмауэра 3306 открыто с любого IP-адреса, но MySQL отказывает в соединении, я подумал, потому что в настоящее время MySQL прослушивает 0.0.0.0. Следует объединить это с ответом @ bortunac, который ссылается на параметр -p . Добавление процесса (ов) действительно помогает сделать эту информацию более полезной. @JBeck три флага, для Linux. TCP, слушатели, без поиска имени. увидеть man netstat .Использование клиента Mysql:
ОШИБКА 1146 (42S02): Таблица «performance_schema.global_variables» не существуетgrep port /etc/mysql/my.cnf (по крайней мере, в debian/ubuntu работает)
Он отобразит список, как показано ниже:
Использовать как root для всех деталей. Параметр -t ограничивает вывод на TCP-соединения, -l для прослушивания портов, -p показывает имя программы и -n показывает числовую версию порта вместо именованной версии.
Таким образом вы можете увидеть имя процесса и порт.
У меня не сработало - я получил "tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN -"Оба URL неверны - должны быть
Я думал, что это само собой разумеется, но для подключения к базе данных с Java требуется драйвер JDBC. Вам понадобится MySQL JDBC драйвер.
Возможно, вы можете подключиться через сокет через TCP/IP. Ознакомьтесь с Документами MySQL.
Я попытался подключиться к telnet в MySQL ( telnet ip 3306 ), но он не работает:
Я думаю, это то, что вы имели в виду.
Похоже, что он не работал, когда я попробовал это в моем коде :( Также, когда я вставил его в браузер, Firefox сказал, что не может открыть такую вещь. Где / как я мог попробовать это? - Спасибо! Да, вы не можете открыть его в браузере. Вам нужен драйвер JDBC MySQL и код Java. Я пытаюсь настроить его с помощью Ruby on Rails через файл database.yml. Но мне просто нужен был номер порта на самом деле.Попробуйте использовать параметр -e ( --execute ):
Замените root вашими "именем пользователя" и "паролем"
3306 - это порт по умолчанию для mysql. Проверьте это:
он должен дать этот результат:
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN
Более простой подход для некоторых: если вы просто хотите проверить, находится ли MySQL на определенном порту, вы можете использовать следующую команду в терминале. Проверено на mac. 3306 - порт по умолчанию.
mysql --host=127.0.0.1 --port=3306
Если вы успешно входите в терминал оболочки MySQL, вы в порядке! Это результат, который я получаю при успешном входе в систему.
вы можете использовать
Если вы находитесь в системе, где netstat недоступен (например, RHEL 7 и более поздние версии Debian), вы можете использовать ss , как показано ниже:
И вы получите для вывода что-то вроде следующего:
Четвертый столбец Local Address:Port . Поэтому в этом случае Mysql прослушивает порт 3306 по умолчанию.
Я согласен с решением @bortunac. my.conf специфичен для mysql, в то время как netstat предоставит вам все порты прослушивания.
Возможно, используйте оба варианта: один, чтобы подтвердить, какой порт установлен для mysql, а другой - проверить, что система прослушивает этот порт.
Как администратор Linux, вы должны знать, является ли соответствующая служба обязательной / прослушивающей с правильным портом или нет.
Это поможет вам легко устранить проблему, когда вы столкнулись с проблемами, связанными с портами.
Доступны два вида порта: физическое и программное обеспечение.
Поскольку операционная система Linux является программным обеспечением, мы собираемся обсудить порт программного обеспечения.
Программный порт всегда связан с IP-адресом хоста и соответствующим типом протокола для связи. Порт используется для распознования приложения.
Большинство служб, связанных с сетью, должны открыть сокет для прослушивания входящих сетевых запросов.
Socket уникален для каждого сервиса.
Область номеров портов доступна для протокола TCP и UDP.
Протокол управления передачей (TCP) и протокол пользовательских дейтаграмм (UDP) используют номера портов для связи.
Это значение от 0 до 65535.
Ниже приведены категории присвоений портов.
Вы можете проверить детали зарезервированных портов в файле /etc/services в Linux.
Это может быть достигнуто с использованием шести методов.
Метод-1: Использование команды ss
ss используется для вывода статистики сокетов.
Он позволяет отображать информацию, аналогичную netstat.
Он может отображать больше информации о TCP и его состоянии, чем другие инструменты.
Он может отображать статистику для всех типов сокетов, таких как PACKET, TCP, UDP, DCCP, RAW, домен Unix и т. д.
В качестве альтернативы вы также можете проверить это с помощью номера порта.
Способ-2: Использование команды netstat
По умолчанию netstat отображает список открытых сокетов.
Если вы не укажете каких-либо семейств адресов, будут выведены активные сокеты всех сконфигурированных семейств адресов.
В качестве альтернативы вы также можете проверить это с помощью номера порта.
Метод-3: использование команды lsof
Команда lsof Linux выводит информацию о файлах, открытых для процессов, запущенных в системе.
В качестве альтернативы вы также можете проверить это с помощью номера порта.
Метод-4: Использование команды fuser
Утилита fuser должна записывать на стандартный вывод идентификаторы процессов, запущенных в локальной системе, которые открывают один или несколько именованных файлов.
Метод-5: Использование команды nmap
Он был разработан для быстрого сканирования больших сетей, хотя он отлично работает с одиночными хостами.
Nmap использует необработанные IP-пакеты в новых способах определения того, какие хосты доступны в сети, какие службы (имя и версия приложения) эти хосты предлагают, какие операционные системы (и версии ОС) они запускают, какие типы фильтров пакетов / брандмауэры используются, и десятки других характеристик
Метод-6: Использование команды systemctl
Это замена старого системного управления SysV, и большинство современных операционных систем Linux были адаптированы под systemd.
Вышеприведенный пример будет показывать фактический порт прослушивания службы SSH при запуске службы SSHD в последнее время.
В большинстве случаев вышеприведенный вывод не показывает фактический номер порта процесса. в этом случае я предлагаю вам проверить детали, используя приведенную ниже команду из файла журнала
Сегодня выясним как в Ubuntu или любой другой операционной системы Linux можно узнать о открытых портах. Важно всегда знать, какие порты вашей системы открыты со стороны Интернета. В противном случае вы можете не знать о внешних подключениях к вашему компьютеру, которые потребляют пропускную способность и ресурсы, а также являются потенциальной дырой в системе безопасности.
Итак, знаете ли вы, какие порты вашей системы открыты? Давайте выясним это.
Проверка открытых портов с помощью команды ss
Команда ss может использоваться, чтобы показать, какие порты прослушивают соединения. Она также показывает, из каких сетей идет соединения.
Мы рекомендуем использовать -ltn параметры с командой, чтобы увидеть краткие и соответствующие выходные данные.
Давайте рассмотрим пример:
Вы также увидите, что ss выходные данные показывают, что порт 53 находятся в состоянии прослушивания. Он предназначены для протокола DNS. Порт включен по умолчанию, так что вы, скорее всего, увидите, как он прослушивается и в вашей собственную системе. DNS — порт на самом деле не открыт, а скорее обеспечивает разрешение имен приложений, установленных в нашей системе.
Чтобы увидеть, к каким процессам относятся эти прослушивающие порты, включите опцию -p .
Теперь мы можем видеть, что systemd-resolve, ssh, mysqld и nginx-это службы, которые используют порты для прослушивания входящих соединений.
Проверка открытых портов с помощью nmap
Nmap-это инструмент рекогносцировки сети, который можно использовать для проверки открытых портов на удаленных хостах. Однако мы также можем использовать его для проверки нашей собственной системы, чтобы получить быстрый список открытых портов. Для исполь
Обычно мы указываем удаленный IP-адрес для сканирования Nmap. Вместо этого мы можем сканировать нашу собственную систему, указав localhost в команде.
В этом руководстве я привел примеры о том, как в Linux/Ubuntu посмотреть открытые порты в системе при помощи двух команд: ss и nmap .
Если есть вопросы, то пишем в комментариях.
Также можете вступить в Телеграм канал, ВК или подписаться на Twitter. Ссылки в шапки страницы.
Заранее всем спасибо.
Читайте также: