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

Admin

Если вы работаете с База данных MySQL, значит, вы уже знаете, с какими проблемами вы сталкиваетесь при обеспечении безопасности своей базы данных. От попыток взлома базы данных с использованием SQL-инъекций до атак грубой силы - сложно обеспечить безопасность ваших данных, особенно если вы работаете с базой данных удаленно.

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

Оглавление

Прежде чем вы начнете

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

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

Также вероятно, что если вы вносите изменения на удаленный сервер, вам понадобится безопасный способ подключения и внесения изменений. SSH (безопасная оболочка) Часто это лучший способ сделать это, поскольку он позволяет подключиться к удаленному серверу. Вы также можете использовать SSH для подключения к серверам в вашей локальной сети, таким как размещен на Raspberry Pi.

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

Предположим, у вас нет удаленного доступа к вашему серверу через SSH (например). В этом случае вы не сможете настроить свою базу данных MySQL для разрешения удаленных подключений напрямую, если только ваша учетная запись root mySQL уже не разрешает удаленные подключения. Итак, вам нужно будет сначала установить это соединение, прежде чем вы сможете продолжить.

Редактирование файла конфигурации MySQL

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

Кроме того, вы можете настроить локальный сервер MySQL с помощью открытого терминала на Mac или Linux или текстового редактора в Windows.

  1. Для начала воспользуйтесь предпочитаемым текстовым редактором консоли, чтобы отредактировать файл базы данных MySQL. В Linux введите sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf в терминал или окно SSH, чтобы отредактировать этот файл, используя нано редактор (при условии, что ваша база данных MySQL находится в местоположении по умолчанию).
  1. Если вы работаете в Windows, откройте проводник и войдите в папку, содержащую вашу установку MySQL (например, C: / Программные файлы / MySQL / MySQL Server 8.0). Открой my.ini файл с помощью текстового редактора по умолчанию (например, Блокнот), дважды щелкнув запись. Если его там нет, сначала создайте файл.
  1. На Mac откройте окно терминала и введите судо нано /usr/local/etc/my.cnf. Это файл конфигурации по умолчанию для MySQL, если вы установили MySQL. используя домашнее пиво.

Указанные выше местоположения являются местоположениями по умолчанию для файлов конфигурации MySQL. Если эти команды не работают, вам нужно будет найти соответствующие файлы (my.cnf, mysqld.cnf, или my.ini) вручную, чтобы найти соответствующий путь к файлу.

Настройка диапазона IP-адресов безопасного связывания

  1. Открыв файл конфигурации MySQL для своего сервера, используйте клавишу со стрелкой на клавиатуре, чтобы перейти к адрес привязки раздел файла. Этот диапазон IP-адресов ограничивает подключения к вашей базе данных, которая обычно настроена так, чтобы разрешать подключения только с локального компьютера или сервера, использующего 127.0.0.1.
  1. Если вы хотите настроить базу данных MySQL, чтобы разрешить подключения с устройств, использующих ваше текущее подключение к Интернету, найдите свой общедоступный IP-адрес сначала, затем замените 127.0.0.1 с этим IP-адресом. Или замените его IP-адресом устройства или сервера, с которого вы хотите разрешить соединения.
  1. В некоторых случаях вы можете разрешить все удаленные подключения к базе данных MySQL. Это несет крайний риск и не должны использоваться на рабочем сервере. Однако, если вы хотите разрешить это, замените 127.0.0.1 с 0.0.0.0.
  1. Обратите внимание на порт ценность в Основные настройки раздел. Это потребуется в следующем разделе. Если он не отображается, будет использоваться значение по умолчанию, которым является порт. 3306. Вы можете добавить свой собственный порт, набрав порт = xxxx на новой строке, заменив хххх с подходящим значением порта.
  1. После настройки адрес привязки в файле конфигурации MySQL сохраните файл. Если вы работаете в Linux, выберите Ctrl + O и Ctrl + X сделать это. На Mac выберите Command + O и Command + X. Пользователи Windows могут сэкономить, выбрав Файл > Сохранить.
  1. Затем пользователи Linux и Mac могут перезапустить MySQL, набрав mysql.server stop && mysql.server start или перезапуск mysql.server. Возможно, вам потребуется поднять команду используя sudo (например. sudo mysql.server перезапуск) и используйте соответствующий путь к файлу mysql.server (например,. /usr/local/bin/mysql.server).
  1.  Если указанная выше команда не работает, попробуйте перезапуск службы sudo mysql вместо.
  1. Чтобы перезапустить MySQL в Windows, откройте новое окно PowerShell, щелкнув правой кнопкой мыши меню Пуск и выбрав Windows PowerShell (администратор). В окне PowerShell введите чистая остановка mysql80 с последующим чистый запуск mysql80, заменяя mysql80 с правильным названием службы на вашем ПК.

Если вы не уверены в правильности названия службы в Windows, введите чистый старт найти это. Если вы не можете перезагрузить конфигурацию, перезапустите сервер и перезагрузите MySQL вручную (при необходимости).

Настройка ваших брандмауэров

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

Большинство серверов и ПК используют брандмауэр для блокировки соединений, если не предоставляется доступ к определенному порту. Действия по настройке зависят от того, используете ли вы MySQL в Windows или Linux. Брандмауэры Mac по умолчанию отключены, поэтому вам не нужно выполнять никаких дополнительных действий здесь.

Настроить брандмауэры Linux

Многие серверы Linux используют iptables в качестве служебной программы брандмауэра по умолчанию. Вы можете настроить его, выполнив следующие действия.

  1. Откройте терминал или SSH-соединение и введите sudo iptables -A INPUT -p tcp -s X.X.X.X –dport YYYY -j ACCEPT. Заменять X.X.X.X с IP-адресом для устройства, которое вы хотите разрешить MySQL-соединения изи заменить ГГГГ с соответствующим значением порта из вашего файла конфигурации MySQL (например, 3306).
  1. Это временно настроит брандмауэр. Если вы используете сервер Linux на базе Debian или Ubuntu, сделайте это изменение постоянным, набрав sudo netfilter-постоянное сохранение и sudo netfilter-постоянная перезагрузка в терминал или окно SSH.

Если iptables не является инструментом брандмауэра по умолчанию для вашего дистрибутива Linux, вам необходимо обратиться к руководству пользователя вашего дистрибутива для получения дополнительной информации. Если определенные пакеты (например, netfilter-постоянный) недоступны, используйте инструмент репозитория программного обеспечения вашего дистрибутива, чтобы установить его (например, sudo apt установить netfilter-persistent).

Настроить брандмауэры Windows

Если вы используете ПК или сервер Windows для размещения своей базы данных, вы можете настроить брандмауэр, выполнив следующие действия:

  1. Щелкните правой кнопкой мыши меню Пуск и выберите Запустить.
  1. в Запустить коробка, тип wf.msc и выберите хорошо.
  1. в Защитник Windows окно, выберите Входящие правила > Новое правило.
  1. в Мастер создания нового входящего правила окно, выберите Порт > Следующий.
  1. В следующем меню выберите TCP из вариантов введите 3306 (или любое другое значение порта, указанное в вашем файле конфигурации MySQL), затем выберите Следующий.
  1. На Действие меню, оставьте параметр по умолчанию Разрешить соединение включен, затем выберите Следующий.
  1. Подтвердите, что вы хотите, чтобы правило применялось ко всем типам сетей, затем выберите Следующий.
  1. Введите описательное имя для правила (например, MySQL) в предоставленном порту, затем выберите Заканчивать чтобы добавить его в список правил брандмауэра.

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

Подключение к удаленному серверу с помощью MySQL

После настройки базы данных MySQL для разрешения удаленных подключений вам нужно будет установить к ней подключение. Вы можете сделать это с помощью mysql команда (mysql.exe в Windows) из терминала или окна PowerShell.

Если вы работаете в Windows, убедитесь, что MySQL установлен локально прежде чем вы начнете. Пользователи Mac могут установить MySQL используя домашнее пиво с терминала (варить установить mysql), в то время как пользователи Linux могут использовать свой локальный репозиторий приложений (например,. sudo apt установить mysql) для установки необходимых пакетов.

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

  1. Чтобы подключиться к удаленному серверу MySQL на Mac или Linux, откройте новое окно терминала и введите mysql -u имя пользователя -h X.X.X.X: XXXX -p. Заменять X.X.X.X: XXXX с IP-адресом вашего удаленного сервера и номером порта (например, 100.200.100.200:3306) и имя пользователя с вашим именем пользователя MySQL.
  1. При появлении запроса подтвердите свой пароль. В случае успешного подключения в терминале появится сообщение об успешном подключении.

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

  1. Чтобы подключиться к удаленному серверу MySQL в Windows, откройте новое окно PowerShell, щелкнув правой кнопкой мыши меню «Пуск» и выбрав Windows PowerShell (администратор).
  1. В новом окне PowerShell введите cd «C: \ Program Files \ MySQL \ MySQL Workbench 8.0 \», Чтобы войти в правильную папку, заменив ее на правильный установочный каталог на вашем ПК. Например, если у вас версия MySQL 8.0.1, используйте MySQL Workbench 8.0.1 папку вместо этого.
  1. Оттуда введите . \ mysql.exe -u имя пользователя -h X.X.X.X: XXXX -p. Заменять X.X.X.X: XXXX с IP-адресом вашего удаленного сервера и номером порта (например, 100.200.100.200:3306) и имя пользователя с именем пользователя MySQL, которое разрешает удаленный доступ (например, корень). Следуйте любым дополнительным инструкциям на экране.
  2. При появлении запроса укажите свой пароль, чтобы завершить процесс входа и получить удаленный доступ к базе данных MySQL.

Если это не сработает, подключитесь к серверу или ПК, на котором размещен ваш сервер MySQL, с помощью SSH (или получите к нему прямой доступ), выполнив следующие действия и используя -h локальный аргумент. Затем вы можете создать подходящую учетную запись пользователя, выполнив следующие действия.

Разрешение удаленного доступа пользователей к базе данных MySQL

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

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

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

  1. В вашей удаленной оболочке MySQL (используя mysql инструмент), введите СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ «имя пользователя» @ «x.x.x.x», ОПРЕДЕЛЕННОЕ «паролем»; и выберите Войти. Заменять имя пользователя с именем пользователя, которое вы хотите создать, x.x.x.x с IP-адресом, с которого вы хотите подключиться, и пароль с подходящим паролем.
  1. Вам нужно будет предоставить вашей новой учетной записи необходимые разрешения. Для этого введите ПРЕДОСТАВИТЬ ВСЕ НА имя базы данных. * TO имя пользователя @ ”x.x.x.x”; и заменить имя базы данных, имя пользователя, и x.x.x.x  с правильными деталями. Если хотите, замените имя базы данных с * чтобы предоставить ему доступ ко всем базам данных.

Если доступ предоставлен, выполните действия, описанные в разделе выше, для удаленного подключения к серверу с помощью новой учетной записи (например, mysql -u имя пользователя -h X.X.X.X: XXXX -p).

Защита данных вашей базы данных

Независимо от того, работаете ли вы с MySQL или с другим типом базы данных SQL, важно обеспечить безопасность ваших подключений, чтобы обеспечить безопасность данных. Хороший способ сделать это - генерировать ключи SSH для удаленного доступа к вашему серверу, а не полагаться на устаревшие (и легко угадываемые) пароли.

Если вы беспокоитесь о потере данных, вы можете легко сделайте резервную копию вашей базы данных онлайн. Большинство баз данных работают с использованием серверов Linux - вы можете легко автоматизировать резервное копирование файлов Linux. Если вы используете MySQL в Windows, вы можете настроить аналогичный система автоматического резервного копирования для Windows, позволяя восстановить ваши данные в экстренной ситуации.

Добро пожаловать в Help Desk Geek - блог, полный технических советов от проверенных технических экспертов. У нас есть тысячи статей и руководств, которые помогут вам устранить любую проблему. С момента запуска в 2008 году наши статьи были прочитаны более 150 миллионов раз.

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

Как использовать NVIDIA Shadowplay для записи и публикации игрового видео
Как использовать NVIDIA Shadowplay для записи и публикации игрового видео

Если у вас есть компьютер с Видеокарта NVIDIA, вы могли видеть уведомление наложения NVIDIA всяки...

Создайте приложение Gmail для ПК с помощью этих трех почтовых клиентов
Создайте приложение Gmail для ПК с помощью этих трех почтовых клиентов

Несмотря на массовый бум социальных сетей, будь то работа или отдых, электронная почта по-прежнем...

Как активировать неактивный менеджер аккаунтов Google
Как активировать неактивный менеджер аккаунтов Google

Как гласит веселая старая пословица, есть только две вещи. уверен в жизни - смерть и налоги. И ст...