как узнать порт mysql сервера ubuntu
Как проверить, на каком порту MySQL работает и может ли он быть подключен?
Я установил MySQL и даже вошел туда как пользователь.
но когда я пытаюсь подключить так:
Не работает. Не уверен, что оба должны работать, но по крайней мере один из них должен 🙂
Как я могу убедиться, что порт действительно 3306? Есть ли команда linux, чтобы увидеть это как-то? Кроме того, есть ли более правильный способ попробовать его через url-адрес?
13 ответов
найти слушателя на порту, сделайте следующее:
вы должны увидеть строку, которая выглядит так, если mysql действительно слушает этот порт.
порт 3306 порт по умолчанию.
для подключения вам просто нужно использовать любой клиент, который вам нужен, например, базовый клиент mysql.
mysql-h localhost-U пользовательская база данных
или url-адрес, интерпретируемый кодом библиотеки.
использование mysql client:
grep port /etc/mysql/my.cnf (по крайней мере, в debian/ubuntu работает )
в /etc / mysql / my.КНФ, чтобы увидеть возможные ограничения
он покажет список что-то вроде ниже:
таким образом, вы можете увидеть имя процесса и порт.
оба URL-адреса неверны-должно быть
Я думал, что это само собой разумеется, но для подключения к базе данных с Java требуется драйвер JDBC. Вам понадобится MySQL JDBC драйвер.
возможно, вы можете подключиться с помощью сокета через TCP / IP. Проверьте MySQL docs.
Я попытался telnet в MySQL ( telnet ip 3306 ), но это не работает:
Я думаю, что это то, что вы имели в виду.
заменить root Ваш «логин» и «пароль»
более простой подход для некоторых : Если вы просто хотите проверить, если MySQL находится на определенном порте, вы можете использовать следующую команду в терминале. Протестировано на mac. По умолчанию используется порт 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):
выходы: tcp46 0 0 *.3306 *.* LISTEN
выходы: 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)
и вы получите что-то вроде следующего вывода:
How to test which port MySQL is running on and whether it can be connected to?
I have installed MySQL and even logged in there as a user.
But when I try to connect like this:
Neither works. Not sure if both are supposed to work, but at least one of them should 🙂
How can I make sure that the port is indeed 3306? Is there a linux command to see it somehow? Also, is there a more correct way to try it via a url?
13 Answers 13
To find a listener on a port, do this:
You should see a line that looks like this if mysql is indeed listening on that port.
Port 3306 is MySql’s default port.
To connect, you just have to use whatever client you require, such as the basic mysql client.
Or a url that is interpreted by your library code.
Using Mysql client:
grep port /etc/mysql/my.cnf ( at least in debian/ubuntu works )
in /etc/mysql/my.cnf to see possible restrictions
It will show the list something like below:
In this way you can see the process name and the port.
Replace root by your «username» and «password»
I thought it went without saying, but connecting to a database with Java requires a JDBC driver. You’ll need the MySQL JDBC driver.
Maybe you can connect using a socket over TCP/IP. Check out the MySQL docs.
I tried to telnet into MySQL ( telnet ip 3306 ), but it doesn’t work:
I think this is what you had in mind.
A simpler approach for some : If you just want to check if MySQL is on a certain port, you can use the following command in terminal. Tested on mac. 3306 is the default port.
If you successfully log in to the MySQL shell terminal, you’re good! This is the output that I get on a successful login.
3306 is default port for mysql. Check it with:
it should give this result:
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN
For me, @joseluisq’s answer yielded:
ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: NO)
But it worked this way:
On a mac os X, there are two options. netstat or lsof
Using netstat will not show the process on Mac OS X. so using netstat you can only search by port.
Using lsof will show the process name.
I did the following as I was encountering port conflicts (docker containers):
Outputs: tcp46 0 0 *.3306 *.* LISTEN
Outputs: mysqld 60608 _mysql 31u IPv6 0x2ebc4b8d88d9ec6b 0t0 TCP *:3306 (LISTEN)
Как открыть 3306 порт, debian 10?
Chain INPUT_direct (1 references)
target prot opt source destination
Chain INPUT_ZONES_SOURCE (1 references)
target prot opt source destination
Chain FORWARD_direct (1 references)
target prot opt source destination
Chain FORWARD_IN_ZONES_SOURCE (1 references)
target prot opt source destination
Chain FORWARD_OUT_ZONES_SOURCE (1 references)
target prot opt source destination
Chain OUTPUT_direct (1 references)
target prot opt source destination
Chain IN_public_log (1 references)
target prot opt source destination
Chain IN_public_deny (1 references)
target prot opt source destination
Chain FWDI_public_log (1 references)
target prot opt source destination
Chain FWDI_public_deny (1 references)
target prot opt source destination
Chain FWDI_public_allow (1 references)
target prot opt source destination
Chain FWDO_public_log (1 references)
target prot opt source destination
Chain FWDO_public_deny (1 references)
target prot opt source destination
Chain FWDO_public_allow (1 references)
target prot opt source destination
Chain ufw-before-logging-input (0 references)
target prot opt source destination
Chain ufw-before-logging-output (0 references)
target prot opt source destination
Chain ufw-before-logging-forward (1 references)
target prot opt source destination
Chain ufw-before-input (0 references)
target prot opt source destination
Chain ufw-before-output (0 references)
target prot opt source destination
Chain ufw-before-forward (1 references)
target prot opt source destination
Chain ufw-after-input (0 references)
target prot opt source destination
Chain ufw-after-output (0 references)
target prot opt source destination
Chain ufw-after-forward (1 references)
target prot opt source destination
Chain ufw-after-logging-input (0 references)
target prot opt source destination
Chain ufw-after-logging-output (0 references)
target prot opt source destination
Chain ufw-after-logging-forward (1 references)
target prot opt source destination
Chain ufw-reject-input (0 references)
target prot opt source destination
Chain ufw-reject-output (0 references)
target prot opt source destination
Chain ufw-reject-forward (1 references)
target prot opt source destination
Chain ufw-track-input (0 references)
target prot opt source destination
Chain ufw-track-output (0 references)
target prot opt source destination
Chain ufw-track-forward (1 references)
target prot opt source destination
MySQL
Содержание
MySQL
Установка
Для установки MySQL запустите следующую команду из терминала:
В процессе установки у вас запросят пароль для пользователя root под MySQL.
Как только установка завершится, сервер MySQL запустится автоматически. Вы можете использовать следующую команду в терминале для проверки, что сервер MySQL запущен:
Когда вы запустите эту команду, ввы сможете увидеть что-то похожее на следующую строку:
Если сервер не работает, вы можете набрать следующую команду для его запуска:
Настройка
После изменений в /etc/mysql/my.cnf сервис MySQL нужно перезагрузить:
Если вам потребовалось сменить пароль пользователя root в MySQL, введите в терминале:
Сервис MySQL будет остановлен и вас попросят ввести новый пароль.
Драйверы базы данных
Хотя конфигурация по умолчанию для MySQL, предоставляемая пакетами Ubuntu, имеет великолепную функциональность и работает достаточно хорошо, есть некоторые вещи, которые вы можете решить до того как продолжить.
Каждый драйвер имеет свои преимущества и недостатки.
Хотя смешивание и связывание драйверов баз данных на уровне таблиц разрешается и может быть привлекательным, это снижает эффективность настройки производительности, которую вы смогли бы провести при разделении ресурсов между двумя системами вместо замешивания их в одно целое.
Начиная MySQL 5.5 InnoDB является драйвером по умолчанию и настоятельно рекомендуется вместо MyISAM, если только у вас нет специфических потребностей, уникальных для этого драйвера.
Расширенные настройки
Создание настроенного файла my.cnf
Существует ряд параметров, которые могут быть указаны в файле настроек MySQL, что со временем позволит вам повысить производительность вашего сервера. Для начальной настройки вам может пригодиться Percona’s my.cnf generating tool. Этот инструмент позволит вам создать файл my.cnf более оптимизированный под специфические возможности вашего сервера и ваши требования.
Не меняйте ваш существующий файл my.cnf на созданный утилитой, если у вас уже загружены данные в вашу базу данных. Некоторые изменения в этом файле могут быть несовместимы, если вы поменяли то, как хранятся данные на диске, после чего вы не сможете запустить MySQL. Если вы все же решили это сделать и у вас есть данные в базе, вам потребуется выполнить mysqldump и загрузить данные повторно:
Эта операция запросит пароль пользователя root перед созданием копии данных. Желательно убедиться, что другие пользователи и процессы не используют базу во время этой операции. В зависимости от количества данных в вашей базе, это может занять длительное время. Вы не увидите ничего на экране во время этого процесса.
Как только файл выгрузки создан, остановите MySQL:
Теперь сохраните оригинальный файл my.cnf и замените его на новый:
Затем удалите и создайте заново пространство базы данных, а также убедитесь в корректности его владельца перед запуском MySQL:
Когда все завершится, это будет означать что все получилось!
MySQL Tuner
После установки запустите ее:
и ждите ее финального отчета. Верхняя секция предоставляет общую информацию а сервере баз данных, а нижняя часть содержит рекомендации по настройке, необходимые для изменения вашего my.cnf. Многие из них могут быть поправлены вживую на сервере без перезагрузки. Смотрите официальную документацию MySQL (указанную в разделе Ссылки) для перечня параметров, изменяемых «налету». Далее часть примерного отчета по работающей базе, который показывает, что можно извлечь некоторую пользу от увеличения размера кэша запросов:
Один финальный комментарий по настройке базы данных: Хотя мы можем утверждать что определенные настройки самые лучшие, производительность может изменяться от приложения к приложению. Например, что работает великолепно для WordPress, может оказаться не лучшим для Drupal, Joomla или проприетарных приложений. Производительность зависит от типов запросов, использования индексов, насколько эффективно спроектирована база данных и т.д. Вы можете посчитать полезным потратить некоторое время на поиск настроек базы данных под используемые вами приложения. Как только вы пройдете определенную точку, любые ваши изменения будут приводить к минимальным улучшениям и вам будет лучше либо заняться улучшением ваших приложений, либо масштабировать вашу базу данных, используя более производительное оборудование или добавляя зависимые сервера.
Ссылки
Смотрите домашнюю страницу MySQL для дополнительной информации.
Полная документация доступна в форматах как онлайн, так и оффлайн по ссылке MySQL Developers portal.
Для общей информации по SQL смотрите Using SQL Special Edition от Rafe Colburn.
Страница Apache MySQL PHP Ubuntu Wiki также содержит полезную информацию.
Как разрешить удаленные подключения к серверу базы данных MySQL
Главное меню » Базы данных » База данных MySQL » Как разрешить удаленные подключения к серверу базы данных MySQL
Однако в некоторых ситуациях необходимо разрешить удаленные подключения. Например, когда вы хотите подключиться к удаленному серверу MySQL из вашей локальной системы, или когда вы используете многосерверное развертывание, когда приложение работает на компьютере, отличном от сервера базы данных.
В этой статье мы рассмотрим шаги, необходимые для разрешения удаленных подключений к серверу MySQL. То же самое относится и к MariaDB.
Настройка MySQL Server
Первый шаг – настроить сервер MySQL на прослушивание определенного IP-адреса или всех IP-адресов на компьютере.
Если сервер MySQL и клиенты могут взаимодействовать друг с другом через частную сеть, то лучшим вариантом будет настроить сервер MySQL на прослушивание только по частному IP. В противном случае, если вы хотите подключиться к серверу через общедоступную сеть, настройте сервер MySQL на прослушивание всех IP-адресов на компьютере.
Расположение файла конфигурации MySQL зависит от дистрибутива. В Ubuntu и Debian файл находится по адресу /etc/mysql/mysql.conf.d/mysqld.cnf, в то время как в дистрибутивах на основе Red Hat, таких как CentOS, файл находится по адресу /etc/my.cnf.
Откройте файл в текстовом редакторе :
Найдите строку, которая начинается с bind-address и установите в качестве значения IP-адрес, который должен прослушивать сервер MySQL.
По умолчанию установлено значение 127.0.0.1 (прослушивается только на локальном хосте).
В этом примере мы настроим сервер MySQL на прослушивание всех интерфейсов IPv4, изменив значение на 0.0.0.0
mysqld.cnf
Если есть строка, содержащая skip-networking, удалите ее или закомментируйте, добавив # в начале строки.
В MySQL 8.0 и выше директива bind-address может отсутствовать. В этом случае добавьте ее в разделе [mysqld].
После этого перезапустите службу MySQL, чтобы изменения вступили в силу. Только root или пользователи с привилегиями sudo могут перезапускать сервисы.
Чтобы перезапустить службу MySQL в Debian или Ubuntu, введите:
В дистрибутивах на основе RedHat, таких как CentOS, для перезапуска службы выполните:
Предоставление доступа пользователю с удаленного компьютера
Следующим шагом является предоставление доступа к базе данных удаленному пользователю.
Войдите на сервер MySQL от имени пользователя root, введя:
Если вы используете старый плагин аутентификации MySQL для входа в систему от имени пользователя root, введите команду ниже и введите пароль при появлении запроса:
Внутри оболочки MySQL используйте GRANTоператор для предоставления доступа удаленному пользователю.
Например, чтобы предоставить доступ к базе данных dbname пользователю с именем andreyex с паролем my_passwd с клиентского компьютера с IP 10.8.0.5, вы должны выполнить:
Настройка брандмауэра
Последний шаг – настройка брандмауэра для разрешения трафика через порт 3306( порт MySQL по умолчанию) с удаленных компьютеров.
Iptables
Если вы используете iptables в качестве брандмауэра, команда ниже разрешит доступ с любого IP-адреса в Интернете к порту MySQL. Это очень небезопасно.
Разрешить доступ с определенного IP-адреса:
UFW – это инструмент брандмауэра по умолчанию в Ubuntu. Чтобы разрешить доступ с любого IP-адреса в Интернете (очень небезопасно), выполните:
Разрешить доступ с определенного IP-адреса:
FirewallD
FirewallD является инструментом управления брандмауэром по умолчанию в CentOS. Чтобы разрешить доступ с любого IP-адреса в Интернете (очень небезопасно), введите:
Чтобы разрешить доступ с определенного IP-адреса на конкретном порту, вы можете создать новую зону FirewallD или использовать расширенное правило. Хорошо создайте новую зону с именем mysqlzone:
Проверка изменений
Чтобы убедиться, что удаленный пользователь может подключиться к серверу MySQL, выполните следующую команду:
Где user_name имя пользователя, которому вы предоставили доступ и mysql_server_ip, IP-адрес хоста, на котором работает сервер MySQL.
Если все настроено правильно, вы сможете войти на удаленный сервер MySQL.
Если вы получаете сообщение об ошибке, как показано ниже, либо порт 3306 не открыт, либо сервер MySQL не прослушивает IP-адрес.
Приведенная ниже ошибка указывает на то, что пользователь, которому вы пытаетесь войти, не имеет прав доступа к удаленному серверу MySQL.
Заключение
MySQL, самый популярный сервер баз данных с открытым исходным кодом по умолчанию, прослушивает входящие соединения только на локальном хосте.
Чтобы разрешить удаленные подключения к серверу MySQL, вам необходимо выполнить следующие шаги:
Если у вас есть вопросы, не стесняйтесь оставлять комментарии ниже.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.