Как открыть порт 3306 для mysql windows 10

Обновлено: 07.07.2024

Как подключиться по сети к базе данных mysql не открывая доступ к службе?

Как удаленно использовать графический интерфейс для работы с MySQL?

Решение:

Можно использовать тоннель по протоколу ssh и таким образом подключиться к службе как бы локально.

При этом вы сможете использовать не только консольного клиента mysql, но и любые программы установленные на вашем компьютере, например MySQL Workbench, Eclipse SQL Explorer, mysql-admin, mysql-query-browser или локально установленный PHPMyAdmin.

Решение пригодно для postgresql и прочих подобных сервисов.

UNIX/Linux

Для этого, если у вас UNIX/Linux, выполните команду в консоли:

Эта команда откроет на вашем компьютере локально порт 3306 и перенаправит все запросы к этому порту на порт 3306 вашего сервера.

Синтаксис: ssh -L <localport>hostname<remoteport> <username>@<servername>

Учтите, что если на вашем компьютере работает демон mysql, то порт 3306 уже занят и команда работать не будет.

В этом случае вам надо использовать любой свободный порт, например:

Вы сможете подключаться к вашему серверу указывая именно этот порт, например:


Если вы используете MySQL Workbench, то там есть встроенные средства для подключения через SSH

Windows

Если у вас на компьютере Windows, то вы сможете использовать PuTTY. Это бесплатное программное обеспечение, скачать ее можно на официальном сайте.

В настроек Session в поле Имя хоста (Host Name) укажите адрес вашего сервера.


Перейдите в категорию настроек Connection > SSH > Tunnels и в поле Source port укажите значение 3306, в поле Destination — 127.0.0.1:3306.


Для соединения с базой данных в качестве адреса сервера указывайте 127.0.0.1 и порт 3306.

Favorite

Добавить в избранное

Главное меню » Базы данных » База данных MySQL » Как разрешить удаленные подключения к серверу базы данных MySQL

(1 оценок, среднее: 5,00 из 5)

Как разрешить удаленные подключения к серверу базы данных MySQL

П о умолчанию сервер MySQL прослушивает соединения только от localhost, что означает, что к нему могут обращаться только приложения, работающие на одном хосте.

Однако в некоторых ситуациях необходимо разрешить удаленные подключения. Например, когда вы хотите подключиться к удаленному серверу MySQL из вашей локальной системы, или когда вы используете многосерверное развертывание, когда приложение работает на компьютере, отличном от сервера базы данных.

В этой статье мы рассмотрим шаги, необходимые для разрешения удаленных подключений к серверу MySQL. То же самое относится и к MariaDB.

Настройка MySQL Server

Если сервер MySQL и клиенты могут взаимодействовать друг с другом через частную сеть, то лучшим вариантом будет настроить сервер MySQL на прослушивание только по частному IP. В противном случае, если вы хотите подключиться к серверу через общедоступную сеть, настройте сервер MySQL на прослушивание всех IP-адресов на компьютере.

Для этого вам нужно отредактировать файл конфигурации MySQL и добавить или изменить значение опции bind-address. Вы можете установить один IP-адрес и IP-диапазоны. Если адрес есть 0.0.0.0, сервер MySQL принимает соединения на всех интерфейсах IPv4 хоста. Если в вашей системе настроен IPv6 0.0.0.0, используйте вместо .

Расположение файла конфигурации 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

В 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, вы должны выполнить:

Настройка брандмауэра

Iptables

Если вы используете iptables в качестве брандмауэра, команда ниже разрешит доступ с любого IP-адреса в Интернете к порту MySQL. Это очень небезопасно.

Разрешить доступ с определенного IP-адреса:

Разрешить доступ с определенного IP-адреса:

FirewallD

FirewallD является инструментом управления брандмауэром по умолчанию в CentOS. Чтобы разрешить доступ с любого IP-адреса в Интернете (очень небезопасно), введите:

Чтобы разрешить доступ с определенного IP-адреса на конкретном порту, вы можете создать новую зону FirewallD или использовать расширенное правило. Хорошо создайте новую зону с именем mysqlzone:

Проверка изменений

Чтобы убедиться, что удаленный пользователь может подключиться к серверу MySQL, выполните следующую команду:

Где user_name имя пользователя, которому вы предоставили доступ и mysql_server_ip, IP-адрес хоста, на котором работает сервер MySQL.

Если все настроено правильно, вы сможете войти на удаленный сервер MySQL.

Приведенная ниже ошибка указывает на то, что пользователь, которому вы пытаетесь войти, не имеет прав доступа к удаленному серверу MySQL.

Заключение

MySQL, самый популярный сервер баз данных с открытым исходным кодом по умолчанию, прослушивает входящие соединения только на локальном хосте.

Чтобы разрешить удаленные подключения к серверу MySQL, вам необходимо выполнить следующие шаги:

  1. Настройте сервер MySQL для прослушивания всего или определенного интерфейса.
  2. Предоставьте доступ удаленному пользователю.
  3. Откройте порт MySQL в вашем брандмауэре.

Если у вас есть вопросы, не стесняйтесь оставлять комментарии ниже.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Как удаленно подключиться к MySQL

Подключаться к базам данных можно разными способами. Подключение, устанавливаемое с сервера, называется локальным. С помощью такого типа подключения можно работать с домашнего компьютера, при этом используя любые удобные приложения по управлению базами данных.

Я расскажу, как подключиться к удаленной базе данных MySQL, какие существуют способы, а также опишу некоторые типичные ошибки.

Подключение через панель управления TimeWeb

Чтобы подключиться удаленно к MySQL, необходимо для начала открыть сайт хостинга и авторизоваться в личном кабинете. В панели управления следует выбрать раздел «Базы данных MySQL», через него и будем проводить операции. В новом открывшемся окне находим ссылку «Добавить доступ» напротив того сервера, к которому планируется подключиться. Для разрешения доступа к подсети /24 меняем последний актет IP-адреса на знак %.

При установлении соединения используем имя сервера или его IP-адрес. Данная информация доступна на главной странице в разделе «Информация о сервере». Порт указываем 3306, имя пользователя будет тем же, что и название базы данных. Вводим пароль и устанавливаем соединение.

phpMyAdmin

phpMyAdmin – программное средство, предоставляющее веб-интерфейс для работы с сервером MySQL. Подключиться к базе можно, открыв раздел «Базы данных MySQL» в панели управления хостингом. Находим на странице ссылку «phpMyAdmin» и жмем по ней для подключения. Если она недоступна, значит, пользователем был превышен лимит доступных БД. Увеличить его можно сменой тарифа.

Соединение через SSH туннель

Данный тип подключения считается более безопасным, потому что все данные по SSH-туннелю передаются в зашифрованном виде, исключая возможность перехвата.

Подключение в Windows

В данной ОС соединение по SSH протоколу можно осуществить с помощью специальных программ для управления базами данных. Например, PuTTY (бесплатная программа) или SecureCRT (платное ПО, но с пробной версией на 30 дней).

Мы для работы выбрали PuTTY. Скачиваем установщик с официального сайта и устанавливаем приложение . Запускаем программу, затем переходим в раздел «Session». В поле «Host Name» вводим свой домен или указываем его IP-адрес.

Настройка туннеля SSH в приложении PuTTY

Далее переходим в категорию «Connection», открываем вкладку «SSH», затем «Tunnels». В поле «Source Port» указываем значение 3306, в «Destination» вбиваем localhost:3306, потом жмем на кнопку «Add» для добавления порта в список. И только потом жмем кнопку «Open» для установления соединения с хостом.

Создание SSH-туннеля с помощью программы PuTTY

Логин и пароль те же самые, которые используются для входа в панель управления. При подключении используем имя пользователя и пароль, выданные при создании базы данных. Адрес сервера - 127.0.0.1, порт для подключения 3306.

Предупреждаем, что если вы уже устанавливали сервер баз данных MySQL на своем компьютере, то соединение через порт 3306 будет недоступно. Надо будет указать другое значение, например 3307.

Подключение в Linux

В ОС Linux никакого дополнительного ПО устанавливать не придется, можно все провести через командную строку «Терминал». Перед тем как подключиться к MySQL удаленно, нужно создать SSH-туннель. Вводим вот такую команду:

Потом в конфигурационном файле MySQL потребуется изменить параметр, отвечающий за удаленное подключение. Открываем в «Терминале» файл, дав вот такую команду:

Далее комментируем нужную нам строку. В итоге она должна выглядеть вот таким образом:

Сохраняем изменения, потом перезапускаем MySQL вот такой командой:

Далее будет запрошен пароль для входа в панель управления хостингом, вводим его. Для подключения к удаленному серверу MySQL необходимо создать пользователя, и делается это вот такой командой:

Так мы создадим пользователя с неограниченным доступом ко всем базам на указанном сервере. Потом проверяем подключение утилитой telnet. Если сервер запрос не отклонил, значит, пора приступать к подключению. Для этого можно задать команды вот таких типов:

VDS Timeweb арендовать

Как проверить соединение с базой данных MySQL

Для проверки подключения к базе данных MySQL во всех ОС используем утилиту telnet. Нужно просто открыть командную строку и набрать в ней вот такую команду:

Если соединение установится, то настройка туннеля прошла успешно, можно приступать к подключению. Если нет, рекомендуем тщательно проверить все настройки.

Часовой пояс MySQL

MySQL и Java-приложение (docker)

Распространенные проблемы и ошибки при подключении к MySQL

Как подключиться к MySQL удаленно, если возникают какие-то ошибки? Трудности обычно возникают при наличии запрещающих правил. Проверить, существуют ли такие, можно вот таким запросом:

Если таковые обнаружатся, добавим разрешающее правило. Для этого надо ввести соответствующую команду, она должна выглядеть примерно вот так:

Есть еще возможность открыть доступ для определенного IP-адреса, и это куда более безопасный способ. Для этого потребуется ввести такой запрос:

Если же появляется ошибка типа «Client does not support autentification protocol request by server; consider upgrading MySQL client» , это значит, что установленный клиент не поддерживает требуемый сервером протокол.

Ошибка «1045 невозможно подключиться к серверу MySQL» возникает при попытке подключиться удаленно к базам данных через phpMyAdmin. Причиной тому может быть неправильно введенный логин или же отсутствие пароля у пользователя или его неправильная смена.

Заключение

MySQL – один из самых популярных серверов баз данных с открытым исходным кодом. Подключиться к нему можно разными способами, причем как локально, так и удаленно. Если в процессе соединения возникают нетипичные ошибки, рекомендуем связаться со службой технической поддержки.

Я пытаюсь запустить MySQL из XAMPP (под Windows Vista), но он говорит, что порт 3306 занят.

Как лучше всего проверить, какое приложение использует этот порт и как его освободить?

В командной оболочке запустите:

Первая команда выведет список, в котором вам нужно будет просмотреть строку, отображающую localhost:3306 во втором столбце. Ниже указано имя приложения, использующего порт.

Дополнительная команда найдет именно тот порт, который вы ищете, и выглядит примерно так:

Эта ошибка возникает, если вы установили mysql два раза. mysql по умолчанию использует порт 3306. Если вы установили его дважды, то на вашем порту 3306 уже есть mysql. Поэтому вам придется изменить свой порт.

Если вы используете xampp, вы можете легко изменить свой порт. Шаги по изменению порта: Шаг 1. Откройте xampp от имени администратора. Шаг 2: Нажмите «Конфигурация» в правом верхнем углу файла xampp. Шаг 3: Нажмите «Настройки службы и порта», а затем измените основной порт mysql с 3306 на 3307 и нажмите «Сохранить». Шаг 4: Затем нажмите «config», который находится перед mysql, и откройте файл «my.ini», который будет текстовым файлом. Шаг 5: Теперь везде, где в текстовом файле вы видите номер порта, указанный как 3306, измените его на 3307, а затем сохраните файл.

После этого снова запустите сервер mysql, и он начнет работать на порту 3307.

Это сработало для меня, и я надеюсь, что это сработает для всех, кто столкнется с той же проблемой.

Если вам не удалось найти какое-либо приложение или процесс, прослушивающий порт 3306 , возможно, вам потребуется проверить сетевые адаптеры .

Отключите адаптеры, которые вы не используете.

Также обратите внимание на сетевой адаптер, созданный Hyper-V , отключите его, если он вам не нужен. Иногда он может зарезервировать некоторые порты, и команды вроде netstat не смогут его обнаружить

Более простой способ решения этой проблемы в Windows: -

  1. Перейти в диспетчер задач
  2. Перейти к услугам
  3. Там будет служба с именем MySQl80, щелкните ее правой кнопкой мыши и выберите «Остановить».
  4. Попробуйте снова запустить модуль MySQl на сервере XAMPP.

У меня уже несколько часов проблемы с этой ошибкой. Через некоторое время я пытался запустить MySQL из XAMPP. Выдал ошибки, аналогичные вашим, в нем говорилось, что используется порт 3306. Если ты:

  • работают на Windows 10
  • избегают изменения номера порта MySQL с 3306
  • не видит никаких программ, использующих порт 3306 из netstat
  • переустановка и удаление всего, но все равно выдает ту же ошибку
  • включают и используют Hyper-V
  • все остальные решения не работали

Это решение, которое сработало для меня:

  • Перейдите в правую часть панели задач и щелкните правой кнопкой мыши значок подключения, затем нажмите Open Network & Internet settings
  • Нажмите Change adapter options
  • Щелкните правой кнопкой мыши и отключите все, что связано с Hyper-V

Я снова запустил MySQL, теперь он работает.

У меня была эта проблема (небольшая вариация, поскольку я использовал MAMP)

Я обнаружил, что эта проблема связана с установленным MySQL Workbench, MySQL Workbench запускает службу mySQL при загрузке, что, в свою очередь, не позволяет MAMP использовать порт.

  1. Удалите MySQL Workbench
  2. Откройте задачу, щелкните вкладку служб, убейте текущую службу MySQL.

Затем это позволило MAMP использовать порт 3306

Значок Windows -> Открыть cmd.exe .
Введите netstat -a -b .
Найдите, что его использует. В моем случае это было так:

Итак, я зашел в диспетчер задач . Так называемого процесса не было. Я зашел в службы и отключил эти два:

Image 2

Теперь все работает нормально.

Как упоминалось @Segun Emmanuel, выполните следующую команду:

Вы получите список приложений, использующих разные ПОРТЫ. Нажмите Ctrl + F и напишите 3306, чтобы узнать, какое приложение использует ПОРТ 3306.

enter image description here

После этого перейдите в диспетчер задач через панель поиска или нажав CTRL + ALT + DEL . Затем в разделе «Фоновые процессы» найдите mysqld.exe , щелкните его правой кнопкой мыши, и вы найдете вариант, чтобы закрыть его, а именно « End Task ».

enter image description here

Затем перейдите в панель управления Xampp и запустите службу MySQL.

enter image description here

В моем случае это был javaw.exe, который запускался на порту 3306. Этот exe не вызывает проблем, если я вошел в систему с использованием одного пользователя в моей Windows 10. Но если у меня несколько входов в систему, он запускает этот exe для каждого пользователя и блокирует MySQL запускается на порту 3306.

Переход к диспетчеру задач и удаление этого exe для другого пользователя устранили проблему, и MySQl мог запуститься.

Если mysql не запускается в xampp, это может быть проблема конфликта порта. Mysql запускается по умолчанию на порту 3306. Вам необходимо проверить, не занимает ли этот порт другое приложение. используйте следующую команду, чтобы проверить приложение, занимающее порт

Если вы обнаружите, что приложение занимает этот порт, остановите приложение и перезапустите xampp. В качестве альтернативы вы можете перейти в файл php.ini или нажать кнопку configure в xampp для mysql и изменить порт mysql на 3307

У меня была та же проблема, и я застрял в ней на день, и я нигде не мог найти идеального ответа. Так что я попробовал это самостоятельно, и это сработало. Это решение для пользователей Windows. Пользуюсь Windows 7.

Я пытаюсь запустить MySql из XAMPP (под Windows Vista), но он говорит, что порт 3306 занят.

каков был бы лучший способ проверить, какое приложение использует этот порт и как его освободить?

в командной консоли выполните:

и ищем строку localhost:3306 во втором столбце. Ниже приведено имя приложения, использующего порт.

У меня была та же проблема, и я застрял на этой вещи в течение дня, и я не мог найти идеального ответа нигде. Поэтому я попробовал сам, и это сработало. Это решение предназначено для пользователей Windows. Я использую Windows 7.

моя панель управления xampp отображала ошибку, что порт 3306 занят и используется каким-то файлом (было указано имя).. сказать "filename.de".

теперь выполните следующие шаги:

  1. пресс Ctrl + Alt + Дель и откройте Диспетчер задач.
  2. Откройте список " процессы "и проверьте" показать все процессы " в списке процессов. Если вы не видите такой возможности, не волнуйтесь! как иногда требуется разрешение администратора, чтобы показать некоторые процессы.
  3. теперь, когда вы нажимаете на кнопку" Показать все процессы", весь процесс будет отображаться. переходим на вкладку "Службы" в диспетчере задач, и список будут отображаться службы. Теперь ищите службу под названием "filename.de"
  4. когда вы найдете эту услугу, "щелкните правой кнопкой мыши", а затем выберите опцию.. Гото Процесс.
  5. вы будете перенаправлены на вкладку "Процессы" с акцентом на процесс, соответствующий этой службе. "Щелкните правой кнопкой мыши", а затем нажмите "Завершить дерево процессов".
  6. теперь проблема решена! Но, возможно, придется сделать то же самое снова. при перезагрузке компьютера. Поэтому лучше всего держать компьютер в спящем режиме.
  7. в противном случае, чтобы решить эту проблему навсегда, откройте "msconfig" и снимите этот конкретный процесс из списка служб и нажмите "Применить". и вы можете перезагрузить компьютер.

просто откройте Диспетчер задач и убейте службу MySql.

У меня была эта проблема (небольшое изменение, поскольку я использовал MAMP)

Я обнаружил, что эта проблема связана с установкой MySQL Workbench, MySQL Workbench запустил службу mySQL при загрузке, которая, в свою очередь, остановила MAMP, способную использовать порт.

  1. Удалить MySQL Workbench
  2. открыть задачу, перейдите на вкладку Службы, убейте текущую службу MySQL

Это позволило MAMP использовать порт 3306

надеюсь, что это может помочь кому-то!

в моем случае это был javaw.exe, который начинался с порта 3306. Этот exe не вызывает проблем, если я вошел в систему с помощью одного пользователя в моем Windows 10. Но если у меня есть несколько логинов, он запускает этот exe для каждого пользователя и блокирует MySQL для запуска на порту 3306.

переход к диспетчеру задач и убийство этого exe для другого пользователя Исправлена проблема, и MySQl может начаться.

Читайте также: