Содержание

Удаленное подключение к MySQL | firstvds.ru

По умолчанию подключиться к MySQL можно только с того же хоста. Чтобы получить доступ к серверу с другого IP-адреса, нужно настроить удалённое подключение.

 

Внимание! После ручной правки конфигураций MySQL — my.cnf требуется перезапустить сервер MySQL. 

ISPmanager5 — СлужбыMySQL/MariaDBРестарт или в консоли сервера:

systemctl restart mysql
systemctl restart mariadb

 

Создание удалённого подключения в ISPmanager 5

В панели ISPmanager — раздел Настройки Серверы баз данных выделите сервер MySQL и нажмите кнопку Изменить.

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

В панелях с версией ниже 5.95 опции Удаленный доступ нет. Необходимо выполнить настройки вручную.

В конфигурационном файле /etc/my.cnf (/etc/mysql/my.cnf для Debian) должна отсутствовать строка skip-networking, если она присутствует — следует её закомментировать:

#skip-networking

 

Также следует добавить/изменить:

bind-address = IP_сервера

 

Для удалённого подключения к базам данных требуется при создании базы отметить Удалённый доступ.

Если при создании базы вы не выбрали данную опцию, её можно указать в Управлении пользователями баз данных. Для этого перейдите в раздел Инструменты Базы данных — выделите нужную базу — нажмите кнопку Пользователи — затем кнопку

Изменить.

Пустое поле списка IP-адресов делает возможным подключение с любого IP.

Создание удалённого подключения в консоли

В конфигурационном файле /etc/my.cnf (/etc/mysql/my.cnf для Debian) должна отсутствовать строка skip-networking, если она присутствует — следует её закомментировать:

#skip-networking

 

Также следует добавить/изменить:

bind-address = IP_сервера

 

Подключитесь к сервер MySQL суперпользователем:

mysql -u root -p

 

Далее создайте пользователя, например, dbuser (если вместо % указать localhost, авторизация будет возможна только с текущего сервера):

create user 'dbuser'@'%' identified by 'password'

 

Можно проверить, что мы создали, командой, выводящей всех пользователей с их хостом и паролем:

select user,host,password from mysql. user;

 

Создайте базу, например, testdb:

create database testdb;

Предоставление прав пользователю

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

Наиболее часто назначаемые права:

  • ALL PRIVILEGES — пользователю предоставляется полный доступ к базе данных.
  • CREATE — пользователю разрешено создавать базы данных и таблицы.
  • DROP — пользователю разрешено удалять базы данных и таблицы.
  • DELETE — пользователю разрешено удалять строки из определенной таблицы.
  • INSERT — пользователю разрешено вставлять строки в определенную таблицы.
  • SELECT — пользователю разрешено читать базу данных.
  • UPDATE — пользователю разрешено обновлять строки таблицы.
  • GRANT OPTION — пользователю разрешено изменять права других пользователей.


Назначить привилегии пользователю можно, используя синтаксис:

GRAND permission ON database.table TO  'username'@'%';

где permission — вид предоставляемой привилегии.

 

Например, установите полные права на базу testdb пользователю dbuser:

GRAND ALL PRIVILEGES ON testdb.* TO 'dbuser'@'%';

 

Предоставить права на вставку:

GRANT INSERT ON *.* TO 'dbuser'@'%';

 

Предоставить несколько привилегий пользователю:

GRANT SELECT, INSERT, DELETE ON testdb.* TO 'dbuser'@'%';

 

Можно ограничить права пользователя на добавление данных в определенной базе, указав её перед точкой. Для ограничения прав на доступ к определенной таблице укажите нужную таблицу после точки:

GRANT INSERT *database_name.table_name* TO 'dbuser'@'%';

 

Отозвать все привилегии пользователя:

REVOKE ALL PRIVILEGES ON testdb.* FROM 'dbuser'@'%';

 

Посмотреть текущие привилегии пользователя:

SHOW GRANTS FOR 'dbuser'@'%';

 

Удалить пользователя:

DROP USER 'dbuser'@'%';

 

После завершения настройки прав необходимо перезагрузить привилегии:

FLUSH PRIVILEGES;

Удаленный доступ для MySQL-сервера — Документация ISPmanager 5 Lite

Поиск точной фразы

Для поиска контента, содержащего точную фразу «мел и сыр», введите:

"мел и сыр"

поиск с OR

Для поиска контента, содержащего одного из выражений «мел» или «сыр», введите:

"мел OR сыр"

поиск с AND

Для поиска контента, содержащего оба выражения «мел» и «сыр», введите:

"мел AND сыр"

поиск с NOT

Для поиска контента, который содержит «мел», но не содержит «сыр», введите:

"мел NOT сыр"

Исключение выражений из поиска

Аналогично поиску с NOT, для поиска контента, который содержит «мел» и «масло», но не содержит «сыр», введите:

мел масло -сыр

Группировка выражений поиска

Для поиска контента, который обязательно должен содержать «мел», и возможно содержит «сыр» или «масло», введите:

(сыр OR масло) AND мел

Поиск по Заголовку

Для поиска контента, в Заголовок которого входит «мел», используйте ключевое слово title:

title:мел

Одиночный символ

Для поиска контента, содержащего «лак» или «лук», можно использовать символ ? :

л?к

Для поиска контента, содержащего «хлеб» или «хлебный», можно использовать символ * :

хлеб*

Множественные символы

Для поиска «хлеб» или «хлебный»:

х*б*

Допускается комбинирование подстановочных символов, для уточнения условий. Например, поисковый запрос ниже позволит найти контент, содержащий «масло», но не «масленый»:

м*л?

Поиск меток

Используйте префикс «labelText:», чтобы искать содержимое с конкретной меткой.

labelText:шоколад

Поиск близких выражений

Следующее поисковое выражение позволяет найти все фразы, в которых указанные слова отстоят друг от друга на точно указанное количество слов.

"бутерброд сыром"~2

Фраза «будерброд с плавленым сыром» удовлетворяет условиям поиска.

Неточный поиск

Этот способ поиска позволяет искать слова, близкие по написанию. Для поиска «масленый», если есть неуверенность в написании:

масленый~

Фраза «масляный» удовлетворяет условиям поиска.

Комбинированный поиск

Возможно комбинировать поисковые выражения:

масл?н* AND хлеб~ AND ("блог" AND "пост")

Как удаленно подключиться к MySQL – База знаний Timeweb Community

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

Я расскажу, как подключиться к удаленной базе данных 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-адрес.

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

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

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

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

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

ssh -L3306:localhost:3306 -n логин@site.com

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

sudo nano /etc/mysql/my.cnf

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

# bind-address = 127.0.0.1

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

sudo service mysql restart

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

GRANT ALL ON *.* TO имя_пользователя@127.0.0.1 IDENTIFIED BY 'пароль'

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

mysql -u имя_пользователя –h 127.0.0.1 –p

mysql -h наименование_хоста -u dbUser -p dbName

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

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

telnet 127.0.0.1 3306

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

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

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

iptables-save

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

/sbin/iptables -A INPUT -i eth0 -p tcp —destination-port 3306 -j ACCEPT

Если при подключении возникает ошибка «Can’t connect to Mysql Server on ‘IP_адрес'(10061)», соединение заблокировал брандмауэр, firewall, outpost, антивирус и прочие программы. Для UFW, инструмента брандмауэра в Ubuntu, можно задать вот такую команду, разрешающую доступ с любого IP-адреса:

sudo ufw allow 3306/tcp

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

sudo ufw allow from IP_адрес to any port 3306

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

Эту ошибку можно исправить, установив пароль старого формата:

SET PASSWORD FOR user@host = OLD_PASSWORD('password')

Если при проверке выходит ошибка формата «ERROR 2003 (HY000): Can’t connect to MySQL server», это значит, что порт 3306 не открыт. Либо сервер MySQL не прослушивает указанный IP-адрес.

В случае, когда выходит сообщение «ERROR 1130 (HY000): Host ‘10.8.0.5’ is not allowed to connect to this MySQL server», указывается отсутствие прав доступа к удаленному серверу у пользователя.

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

Заключение

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

Удалённый доступ к БД MySQL — Раздел помощи

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

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

Правила, определяющие возможность удалённой работы с MySQL, формируются в Панели управления услугой виртуального хостинга в разделе «Базы данных». После входа в раздел следует пройти по ссылке «настроить удалённый доступ». Ссылка находиться в меню , напротив имени базы данных. 

Правило для удалённого доступа создается для IP-адреса либо для подсети. 

  • Для IP-адреса следует полностью указать IP-адрес, с которого будет осуществляться работа с MySQL-сервером. Пример записи — 127.0.0.1. 
  • Для подсети указывается подсеть, включающая IP-адреса, с которых необходимо будет работать с MySQL-сервером. Либо подсеть /16 (/64 для IPv6) (доступ сразу для всех IP-адресов этой подсети), для которых будет разрешен удаленный доступ к базе. Пример записи — 127.0.%.%.
  • В том случае если подключение к базе данных производится через ssh-тунель, то необходимо дополнительно открыть доступ с IP-адреса — 127. 0.0.1.

Правило создается путём нажатия на кнопку «Создать доступ», указания нужного правила в открывшемся окне и нажатия на кнопку «Создать». Для каждой базы допускается создание до 30 правил для удалённого доступа. 

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

  • Имя сервера для удалённого подключения указывается в панели управления на странице «Открытие удалённого доступа».
  • Порт для подключения — 3306 .

Обращаем внимание, что возможность удалённого доступа к БД понижает уровень безопасности БД. Поэтому крайне рекомендуется устанавливать на БД в меру сложный пароль, а также оперативно удалять правила для удалённого доступа, которые потеряли актуальность.

Если при добавлении IP-адреса возникает ошибка «Ошибка создания нового правила удаленного доступа к базе данных MySql», то стоит обновить пароль на базу данных. Можно использовать тот же пароль. Он указан в конфигурационном файле сайта. Это требуется для обновления хэша.

Управление удалённым доступом к серверу MySQL

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

Что для этого нужно?

Сервер MySQL по-умолчанию в целях безопасности сконфигурирован таким образом, что может принимать только локальные соединения, поступающие через локальный сокет с той же самой машины, на которой работает и сам сервер. Эта настройка обслуживается опцией «bind-address» в конфигурационном файле MySQL-сервера

/etc/mysql/mysql.conf.d/mysqld.cnf. Изменив значение указанной опции и перезапустив сервер MySQL можно предоставить доступ для удалённых клиентов.
Кроме самой возможности удалённого подключения к серверу MySQL необходимо также и позаботиться о предоставлении соответствующих привилегий удалённым пользователям. Это также очень важно как для комфортной работы, так и для безопасности. Привилегии пользователей MySQL предоставляются как для подключений, так и для работы

непосредственно с БД. В первом случае для пользователя могут быть заданы привилегии, ограничивающие его действия для конкретного типа подключения. Например, удалённо пользователь не может удалять БД. При этом неважно, что сервер корректно настроен для удалённого доступа. Во втором случае у пользователя могут быть заданы ограничения на уровне самих БД, таблиц и процедур, действующие только при удалённом подключении и отсутствующие при локальном. Например, так бывает, когда системный администратор MySQL не хочет, чтобы БД, таблицы, данные можно было удалить работая с сервером через удалённое подключение, а только локально.

Таким образом, существует возможность задания привилегий, т. е. управления доступом не только для самих пользователей и групп. Но и для характера их подключения к серверу — удалённого или локального. Это необходимо учитывать при организации и управлении удалённым доступом к MySQL-серверу.

Настройка сервера MySQL

По-умолчанию для опции «bind-address» в файле /etc/mysql/mysql.conf.d/mysqld.cnf задано значение 127.0.0.1. И подключиться к серверу можно только локально:

. . .
lc-messages-dir = /usr/share/mysql
skip-external-locking
#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address = 127.0.0.1
. . .

Для того, чтобы иметь доступ к MySQL-серверу с любого IP-адреса, т. е. с любого компьютера в сети, нужно значение 127.0.0.1 изменить на 0.0.0.0:

. . .
lc-messages-dir = /usr/share/mysql
skip-external-locking
#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address = 0.0.0.0
. . .

Сделав изменения в и сохранив файл нужно перезапустить сам сервер MySQL:

$ sudo systemctl restart mysql

Далее можно проверить, что удалённое подключение возможно, выполнив его с другого компьютера в сети:

$ mysql -u user_name -h db_host -p

Здесь «db_host» – это адрес (IP или имя хоста) компьютера, на котором работает сервер MySQL. При удачном подключении пользователь будет переведён в интерфейс командной консоли MySQL.

Настройка привилегий БД

На сервере MySQL может быть несколько пользователей с одинаковым именем, но разным режимом доступа. Например, пользователь с именем john, которому доступно только локальные подключения. На самом деле распознается сервером MySQL как пользователь с именем «john@localhost». Для того, чтобы пользователь john мог подключаться ещё и удалённо с любого IP. На сервере должна быть создана ещё одна учётная запись с именем «john@%». Вот как выглядит создание такой учётной записи в веб-интерфейсе phpMyAdmin:

Как можно видеть, в системе управления доступом MySQL для учётной записи пользователя существует отдельный атрибут «имя хоста», регламентирующий режим подключения. Это сделано как для повышения самой безопасности, так и для более гибкого управления и администрирования. Тот случай, когда одно другому не только не мешает. Но в совокупности поднимает эффективность и безопасность всего сервиса.

Поскольку учётные записи john@localhost и john@% являются разными (хотя и принадлежат одному пользователю), то для них можно отдельно настраивать привилегии. Например, для учётной записи john@% в phpMyAdmin это выглядит следующим образом:

Как можно видеть, администратор запретил пользователю john удалять БД через удалённое подключение. Таким же образом можно устанавливать (или убирать) ограничения на уровне БД. Т. е. при работе с таблицами, а также на уровне таблиц — при работе непосредственно с данными.

Заключение

В заключение стоит ещё раз отметить, что предоставление удалённого доступа к БД путём изменения параметра bind-address в значение 0.0.0.0 должно проводиться с учётом принятых мер по обеспечению дополнительной безопасности сервера.

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

Как отркрыть доступ к mysql из-вне

Для доступа к MySQL из-вне должно быть выполнено 2 условия:

  1. MySQL должен слушать все адреса, а не только 127.0.0.1
  2. У пользователя должны быть пермишены для коннекта не только с localhost (с самого сервера где установлена БД), а и других адресов.

Слушать все адреса

Во-первых, изначально mysql слушает только localhost. Нужно исправить это в конфигурационном файле my. cnf (обычно в линуксах путь /etc/mysql/my.cnf). В my.cnf находим строку:

bind-address = 127.0.0.1

И заменяем её на:

bind-address = 0.0.0.0

Теперь после service mysql restart мы можем коннектиться к mysql с любого ip (если создан пользователь). При этом для супер-пользователя root доступ из-вне под пустым паролем остаётся закрыт.

bind-address 127.0.0.1 означает, что mysql слушает соединения только с текущего хоста.

Создание пользователя для коннекта к базе данных из-вне

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

CREATE USER 'username'@'%' IDENTIFIED BY 'password'; #создаём пользователя username с паролем password
GRANT ALL PRIVILEGES ON database.* TO 'username'@'%'; #даём пользователю username все права для работы с базой данных database
FLUSH PRIVILEGES; # применяем новые права (чтобы не делать restart)

В команде CREATE USER мы создали пользователя, который может коннектиться к mysql со всех ip. Мы можем разрешать коннектиться только с определённых ip, например:

#создаём пользователя user с паролем pass, который может подключаться только с ip '10.10.50.50
CREATE USER 'user'@'10.10.50.50' IDENTIFIED BY 'pass';

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

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

Узнать порт mysql:

mysql> show variables like 'port';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| port          | 3306  |
+---------------+-------+
1 row in set (0,05 sec)

После изменения bind-address в MySQL и создания пользователя с пермишенами (либо грант пермишенов текущим пользователям), к базе данных можно подключиться передавая параметр -h <host>. Хост — адрес машины, на которой установлен MySQL:

mysql -u -root -p -h <ip адрес>

Настройка удаленного доступа к базам данных MySQL в панелях ISPmanager и cPanel


Сервер MySQL работает на каждом локальном хост-сервере через стандартный TCP-порт 3306. Когда скрипты подключаются к MySQL, они могут сделать это, используя в качестве имени сервера localhost, поскольку большинство размещают файлы и базу данных на одном сервере. Однако во время работы с базами данных MySQL часто возникает необходимость подключения к базе используя стороннее программное обеспечение с внешнего хоста, такого как домашний компьютер или же другой сервер. 

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

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

Большинство  хостингов блокируют внешние подключения к базе данных в качестве меры безопасности, поэтому для доступа к базе данных пользователю необходимо добавить доменное имя  или же IP-адрес узла, для которого он хочет разрешить подключение к БД, в список удаленного доступа. Этот метод Вам отлично подойдет, если Вы имеете сторонние клиенты и инструменты, такие как HeidiSQL, phpMyAdmin, Sequel Pro и другие на своем компьютере, и хотите через них  подключаться и работать с БД. Согласитесь, это очень удобно. 

Сама настройка удаленного доступа выполняется в пару легких шагов чисто в панели управления хостингом.

 

        Как настроить удаленное подключение в панели cPanel

1)Заходим в cPanel.

2)C главной страницы переходим к блоку “Базы данных” выбираем пункт “Удаленный MySQL”.

3)Указываем в поле “Добавить узел доступа” хостнейм или IP-адрес (можно добавлять IPv4 или IPv6), для которого нужно открыть удаленное подключение. В Поле “Комментарий” (не обязательное для заполнения) вводим дополнительную информацию об узле, например для справки, что это за узел, откуда, для чего. Единственное условие описание ограничено 255 символами ASCII.

     Для сохранения всех настроек в конце жмем на кнопку “Добавить узел”.

Если ваш IP-адрес  динамический, то есть регулярно меняется, Вы можете использовать подстановочный знак (символ %). Это добавит все IP-адреса в нужном диапазоне. Например, нужно указать  диапазон IP-адресов от 185.880.789.1 до 185.880.789.176, можно записать этот интервал как 185.880.789.%.

Для выполнения удаленного подключения с любого IP адреса в поле “Узел” просто прописываем символ %.

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

Чтобы редактировать существующие узлы, просто напротив нужно узла кликаем для обновления комментария  кнопку “Обновление”.

Если нужно удалить узел — жмем на кнопку “Удалить”.

 

        Как настроить удаленный доступ к базам MySQL в панели ISPmanager.

Для этого следуем по шагом алгоритма: 

1)Логинимся в панель ISPmanager.

2)С главной страницы с блока “Главное” выбираем пункт “Базы данных”. На экране будет предоставлен список всех созданных БД, кликаем на базу  для которой нужно подключить удаленный доступ.И сверху жмем на иконку “Пользователи”.

3)Далее выбираем пользователя и сверху жмем на “Изменить”.

4)Чтобы подключить функцию удаленного доступа, напротив пункта “Удаленный доступ” ставим галочку. И в следующем поле также указываем узел доступа, если поле оставить пустым — будет открыт доступ со всех адресов. Для  сохранения отредактированных настроек в конце жмем на “Ok”.

Возникли вопросы или трудности при настройке удаленного доступа? Команда “ГиперХост” всегда готова помочь нашим клиентам с этим вопросом.

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

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

Задача: удаленный доступ к серверу MySQL

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

Шаг №1: Вход по SSH (если сервер находится за пределами вашего центра обработки данных)

Сначала войдите через ssh на удаленный сервер базы данных MySQL. Возможно, вам потребуется войти на свой сервер MySQL как пользователь root:

 ssh [email protected]
### войдите как root, используя su или sudo ##
вс
# или используйте sudo ##
судо -i 

ИЛИ напрямую войти в систему как пользователь root, если разрешено:

 ssh [email protected] 

Шаг № 2: Отредактируйте файл my.cnf

После подключения вам необходимо отредактировать файл конфигурации сервера MySQL my.cnf с помощью текстового редактора, например vi:

  • Если вы используете Debian / Ubuntu Linux, файл находится по адресу /etc/mysql/my.cnf .
  • Если вы используете Red Hat Linux / Fedora / Centos Linux, файл находится по адресу /etc/my.cnf .
  • Если вы используете FreeBSD , вам необходимо создать файл /var/db/mysql/my.cnf в месте.

Отредактируйте файл / etc / my.cnf, запустите:
# vi /etc/my.cnf

Шаг № 3: После открытия файла найдите строку, которая гласит:

 [mysqld] 

Убедитесь, что строка skip-network закомментирована (или удалите строку) и добавьте следующую строку

 адрес привязки = ВАШ-IP-СЕРВЕР 

Например, если IP вашего сервера MySQL 65.55.55.2, тогда весь блок должен выглядеть следующим образом:

 [mysqld]
пользователь = MySQL
pid-файл = /var/run/mysqld/mysqld.pid
сокет = / var / run / mysqld / mysqld.носок
порт = 3306
basedir = / usr
datadir = / вар / библиотека / mysql
tmpdir = / tmp
язык = / usr / share / mysql / английский
  адрес привязки = 65. 55.55.2 
# skip -etwork
....
..
.... 

Где,

  • bind-address : IP-адрес для привязки.
  • пропустить сеть : вообще не прослушивать TCP / IP-соединения. Все взаимодействие с mysqld должно осуществляться через сокеты Unix.Этот вариант настоятельно рекомендуется для систем, в которых разрешены только локальные запросы. Поскольку вам необходимо разрешить удаленное соединение, эту строку следует удалить из my.cnf или поместить в состояние комментария.

Шаг № 4 Сохраните и закройте файл

Если вы используете Debian / Ubuntu Linux, введите следующую команду для перезапуска сервера mysql:
# /etc/init.d/mysql restart
ИЛИ
# systemctl restart mysql
Если вы используете RHEL / CentOS / Fedora / Scientific Linux, введите следующую команду для перезапуска сервера mysql:
# / etc / init.d / mysqld restart
ИЛИ
# systemctl restart mysqld
Если вы используете FreeBSD, введите следующую команду для перезапуска сервера mysql:
# /usr/local/etc/rc. d/mysql-server restart
ИЛИ
# перезапуск службы mysql-server

Шаг № 5 Разрешить доступ к удаленному IP-адресу

Подключиться к серверу mysql:
$ mysql -u root -p mysql

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

Если вы хотите добавить новую базу данных с именем foo для пользовательской панели и удаленного IP 202.54.10.20, тогда вам нужно ввести следующие команды в mysql> prompt: mysql> CREATE DATABASE foo;
mysql> РАЗРЕШИТЬ ВСЕ НА foo. * TO bar@'202.54.10.20 'ИДЕНТИФИЦИРОВАНА ПАРОЛЕМ

Как мне предоставить доступ к существующей базе данных?

Предположим, что вы всегда устанавливаете соединение с удаленного IP-адреса с именем 202.54.10.20 для базы данных с именем webdb для пользователя webadmin. Чтобы предоставить доступ к этому IP-адресу, введите следующую команду. В запросе mysql> для существующей базы данных введите:
mysql> update db set Host = '202. 54.10.20 'где Db =' webdb ';
mysql> обновить набор пользователей Host = '202.54.10.20', где user = 'webadmin';

Шаг № 6: Выход из MySQL

Введите команду выхода для выхода из системы mysql: mysql> exit

Шаг № 7: Откройте порт 3306

Вам необходимо открыть TCP-порт 3306 с помощью iptables или брандмауэра BSD pf.

Пример правила iptables для открытия брандмауэра iptables Linux
 / sbin / iptables -A INPUT -i eth0 -p tcp --destination-port 3306 -j ACCEPT 

ИЛИ разрешить удаленное подключение только с вашего веб-сервера, расположенного по адресу 10.5.1.3:

 / sbin / iptables -A INPUT -i eth0 -s 10.5.1.3 -p tcp --destination-port 3306 -j ACCEPT 

ИЛИ разрешить удаленное подключение только из вашей локальной сети 192.168.1.0/24:

 / sbin / iptables -A INPUT -i eth0 -s 192.168.1.0/24 -p tcp --destination-port 3306 -j ACCEPT 

Наконец, сохраните все правила (специальная команда RHEL / CentOS):
# service iptables save

Пример правила брандмауэра FreeBSD / OpenBSD / NetBSD pf (/etc/pf.
conf)

Используйте следующее, чтобы открыть порт № 3306 в системах на основе BSD:

 передает протокол $ ext_if proto tcp с любого на любой порт 3306 

ИЛИ разрешить доступ только с вашего веб-сервера, расположенного по адресу 10.5.1.3:

 передает $ ext_if proto tcp из 10.5.1.3 на любой порт 3306, флаги S / SA состояния synproxy 

Шаг № 8: Протестируйте

В удаленной системе или на рабочем столе введите следующую команду:
$ mysql -u webadmin -h 65.55.55.2 -p
Где,

  • -u webadmin: webadmin — это имя пользователя MySQL
  • -h IP или имя хоста: 65.55.55.2 — это IP-адрес сервера MySQL или имя хоста (FQDN)
  • -p: запрос пароля

Вы также можете использовать команду telnet или nc для подключения к порту 3306 в целях тестирования:
$ echo X | telnet -e X 65.55.55.2 3306
OR
$ nc -z -w1 65.55.55.2 3306
Примеры выходных данных:

 Подключение к порту 65. 55.55.2 3306 [tcp / mysql] выполнено успешно! 



Как разрешить удаленный доступ к MySQL

Часть серии: Как решать проблемы в MySQL

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

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

Одна из наиболее распространенных проблем, с которыми сталкиваются пользователи при попытке настроить удаленную базу данных MySQL, заключается в том, что их экземпляр MySQL настроен только на прослушивание локальных подключений. Это настройка MySQL по умолчанию, но она не работает для удаленной настройки базы данных, поскольку MySQL должен иметь возможность прослушивать внешний IP-адрес , по которому можно связаться с сервером. Чтобы включить это, откройте файл mysqld.cnf :

  
  • sudo nano / etc / mysql / mysql.conf.d / mysqld.cnf

Перейдите к строке, которая начинается с директивы адреса привязки . Это будет выглядеть так:

/etc/mysql/mysql.conf.d/mysqld.cnf

 . . .
lc-сообщения-каталог = / USR / доля / MySQL
пропустить внешнюю блокировку
#
# Вместо пропуска сети по умолчанию теперь слушать только на
# localhost, который более совместим и не менее безопасен. 
привязка-адрес = 127.0.0.1
. . .
  

По умолчанию это значение установлено на 127.0.0.1 , что означает, что сервер будет искать только локальные соединения. Вам нужно будет изменить эту директиву, чтобы ссылаться на внешний IP-адрес. В целях устранения неполадок вы можете установить в этой директиве IP-адрес с подстановочными знаками: * , :: или 0.0.0.0 :

/etc/mysql/mysql.conf.d/mysqld.cnf

 . . .
lc-сообщения-каталог = / USR / доля / MySQL
пропустить внешнюю блокировку
#
# Вместо пропуска сети по умолчанию теперь слушать только на
# localhost, который более совместим и не менее безопасен.привязка-адрес = 0.0.0.0
. . .
  

Примечание. Если вы используете MySQL 8+, директива bind-address не будет по умолчанию в файле mysqld.cnf . В этом случае добавьте следующую выделенную строку в конец файла:

/etc/mysql/mysql.conf. d/mysqld.cnf

 . . .
[mysqld]
pid-файл = /var/run/mysqld/mysqld.pid
сокет = /var/run/mysqld/mysqld.sock
datadir = / вар / библиотека / mysql
журнал-ошибка = / var / log / mysql / error.бревно
привязка-адрес = 0.0.0.0
  

После изменения этой строки сохраните и закройте файл ( CTRL + X , Y , затем ENTER , если вы редактировали его с помощью nano ).

Затем перезапустите службу MySQL, чтобы изменения, внесенные в файл mysqld.cnf , вступили в силу:

  
  • sudo systemctl перезапустить mysql

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

  

Если вы включили аутентификацию по паролю для root , вам потребуется вместо этого использовать следующую команду для доступа к оболочке MySQL:

  

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

  ПЕРЕИМЕНОВАТЬ ПОЛЬЗОВАТЕЛЯ 'sammy' @ 'localhost' НА 'sammy' @ 'remote_server_ip';
  

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

  СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'sammy' @ 'remote_server_ip' ИДЕНТИФИЦИРОВАНО 'паролем';
  

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

Если вы планируете использовать эту базу данных с приложением PHP — например, phpMyAdmin — вы можете создать удаленного пользователя, который будет аутентифицироваться с помощью более старого, но все еще безопасного, mysql_native_password plugin вместо этого:

  СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'sammy' @ 'remote_server_ip' ИДЕНТИФИЦИРОВАННЫЙ С mysql_native_password ПО 'паролю';
  

Если вы не уверены, вы всегда можете создать пользователя, который аутентифицируется с помощью caching_sha2_plugin , а затем ALTER позже с помощью этой команды:

  ALTER USER 'sammy' @ 'remote_server_ip' ИДЕНТИФИКАЦИЯ mysql_native_password ПО 'паролю';
  

Затем предоставьте новому пользователю права, соответствующие вашим конкретным потребностям. В следующем примере пользователю предоставляются глобальные привилегии для баз данных, таблиц и пользователей CREATE , ALTER и DROP , а также возможность INSERT , UPDATE и DELETE данных из любой таблицы. на сервере. Он также предоставляет пользователю возможность запрашивать данные с помощью SELECT , создавать внешние ключи с помощью ключевого слова REFERENCES и выполнять операции FLUSH с привилегией RELOAD .Однако вы должны предоставлять пользователям только те разрешения, которые им необходимы, поэтому не стесняйтесь настраивать права своих пользователей по мере необходимости.

  GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES, RELOAD на *. * TO 'sammy' @ 'remote_server_ip' С ОПЦИЕЙ GRANT;
  

После этого рекомендуется выполнить команду FLUSH PRIVILEGES . Это освободит всю память, кэшированную сервером в результате предыдущих операторов CREATE USER и GRANT :

  ПРИВИЛЕГИИ ПРОМЫВКИ;
  

Затем вы можете выйти из клиента MySQL:

  выход
  

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

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

  
  • sudo ufw разрешить от remote_IP_address к любому порту 3306

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

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

Предупреждение : Эта команда позволит любому получить доступ к вашей базе данных MySQL. Не запускайте , если ваша база данных содержит какие-либо конфиденциальные данные.

  

После этого попробуйте получить удаленный доступ к базе данных с другого компьютера:

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

  
  • mysql -u пользователь -h база_сервера_ip -p

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

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

Введение

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

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

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

Предварительные требования

  • Доступ к окну терминала / командной строке
  • Удаленный сервер MySQL
  • Sudo или root привилегии на локальных и удаленных машинах

Примечание: Если у вас нет прямого доступа к серверу MySQL, вам необходимо установить безопасное соединение SSH.Если вам нужна помощь, мы подготовили подробное руководство по использованию SSH для подключения к удаленному серверу. Эту статью необходимо прочитать всем, кто не знаком с этим процессом.

Удаленное подключение к серверу MySQL

Разрешение подключений к удаленному серверу MySQL настраивается в 3 этапа:

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

Шаг 1. Отредактировать файл конфигурации MySQL

1.1 Доступ к файлу mysqld.cnf

Воспользуйтесь предпочитаемым текстовым редактором, чтобы открыть файл mysqld.cnf . В этом примере используется текстовый редактор nano в Ubuntu 18.04. Введите следующую команду в интерфейсе командной строки для доступа к файлу конфигурации сервера MySQL:

  Судо нано /etc/mysql/mysql.conf.d/mysqld.cnf  

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

1.2 Изменить адрес привязки IP

Теперь у вас есть доступ к файлу конфигурации сервера MySQL. Прокрутите вниз до строки bind-address и измените IP-адрес. Текущий IP-адрес по умолчанию — 127.0.0.1 . Этот IP-адрес ограничивает подключения MySQL к локальному компьютеру.

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

После внесения необходимых изменений сохраните файл конфигурации и выйдите из него.

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

1.3 Перезапустить службу MySQL

Примените изменения, внесенные в файл конфигурации MySQL, перезапустив службу MySQL:

  sudo systemctl перезапустить mysql  

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

Шаг 2. Настройте брандмауэр для разрешения удаленного подключения к MySQL

При редактировании файла конфигурации вы, вероятно, заметили, что порт MySQL по умолчанию — 3306 .

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

Вариант 1: UFW (несложный межсетевой экран)

UFW — это брандмауэр по умолчанию в Ubuntu.В окне терминала введите следующую команду, чтобы разрешить трафик и сопоставить IP-адрес и порт:

  sudo ufw разрешить от remote_ip_address к любому порту 3306  

Система подтверждает, что правила были успешно обновлены.

Вариант 2: Межсетевой экран D

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

Создайте новую зону, чтобы установить правила для трафика сервера MySQL.Имя зоны в нашем примере — mysqlrule , и мы использовали IP-адрес из нашего предыдущего примера 133.155.44.103 :

  sudo firewall-cmd --new-zone = mysqlrule --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --permanent --zone = mysqlrule --add-source = 133.155.44.103
sudo firewall-cmd --permanent --zone = mysqlrule --add-port = 3306 / tcp
sudo firewall-cmd --reload  

Вы успешно открыли порт 3306 на брандмауэре.

Вариант 3. Откройте порт 3306 с помощью iptables

Утилита iptables по умолчанию доступна в большинстве дистрибутивов Linux.Введите следующую команду, чтобы открыть порт 3306 MySQL для неограниченного трафика:

  sudo iptables -A ВВОД -p tcp --dport 3306 -j ПРИНЯТЬ  

Чтобы ограничить доступ к определенному IP-адресу, используйте вместо этого следующую команду:

  sudo iptables -A INPUT -p tcp -s 133.155.44.103 --dport 3306 -j ПРИНЯТЬ  

Эта команда предоставляет доступ к 133.155.44.103. Вам нужно будет заменить его IP-адресом для удаленного подключения.

Необходимо сохранить изменения, внесенные в правила iptables.В дистрибутиве на основе Ubuntu следующие команды:

  sudo netfilter-постоянное сохранение
sudo netfilter-постоянная перезагрузка
  

Введите следующую команду, чтобы сохранить новые правила iptables в CentOS:

  сервис iptables за исключением  

Шаг 3. Подключение к удаленному серверу MySQL

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

  mysql -u имя пользователя -h mysql_server_ip -p  

-u имя пользователя в команде представляет ваше имя пользователя MySQL. -h mysql_server_ip — это IP-адрес или имя хоста вашего сервера MySQL. Параметр -p предлагает ввести пароль для имени пользователя MySQL.

Вы должны увидеть результат, аналогичный приведенному ниже:

  Подключение к  mysql_server_ip  3306 порт [tcp / mysql] успешно!  

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

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

  СОЗДАТЬ БАЗУ ДАННЫХ «yourDB»;  

Чтобы предоставить удаленному пользователю доступ к определенной базе данных:

  ПРЕДОСТАВЛЯЙТЕ ВСЕ ПРИВИЛЕГИИ НА yourDB.* ДЛЯ user1@’133.155.44.103 », ОПРЕДЕЛЕННОЙ« паролем1 »;  

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

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

Для предоставления пользователю удаленного доступа к существующей базе данных требуется набор из двух команд:

  update db set Host = ’133.155.44.103 ', где Db =' yourDB ';
обновить пользовательский набор Host = ’133.155.44.103 'где пользователь =' пользователь1 ';  

Пользователь 1 теперь может получить доступ к yourDB из удаленного местоположения, идентифицированного IP 133.155.44.103 .

Заключение

В этой статье вы получили ценное представление об общих принципах удаленного подключения к MySQL.

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

Подключиться к базе данных MySQL удаленно —

Удаленное подключение к базе данных MySQL

Последнее обновление: 2018-12-19

Автор: Rackspace Support


В этой статье объясняется, как настроить пользователя на сервере MySQL®, чтобы для подключения к базе данных MySQL удаленно.

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

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

Получите ваш IP-адрес

Вам необходимо знать IP-адрес компьютера, с которого вы подключаетесь. Вы можете получить эту информацию, посетив один из следующих сайтов:

Разрешить доступ

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

  1. Войдите на свой сервер MySQL локально как пользователь root , используя следующая команда:

      # mysql -u корень -p
      

    Вам будет предложено ввести пароль root для MySQL.

    Примечание : Если вы получаете доступ к MySQL без ввода пароля, рассмотрите возможность запуска сценария mysql_secure_installation , который устанавливает Пароль root MySQL и обновления других настроек для увеличения безопасность. Управляемый Microsoft SQL Server Службы могут помочь вам управлять экземплярами SQL-сервера.

  2. Используйте команду GRANT в следующем формате, чтобы разрешить доступ для удаленный пользователь. Убедитесь, что вы изменили 1.2.3.4 на IP-адрес, который вы полученный ранее, и my_password к паролю, который вы хотите, чтобы fooUser использовал:

      mysql> РАЗРЕШИТЬ ВСЕ НА fooDatabase.* TO fooUser@'1.2.3.4 'ИДЕНТИФИЦИРОВАН' my_password ';
      

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

Проверить соединение удаленно

Чтобы проверить соединение удаленно, подключитесь к серверу MySQL с другого Сервер Linux®. В следующем примере в качестве IP-адреса используется 44.55.66.77 . сервера MySQL:

  # mysql -u fooUser -p -h 44.55,66,77
Введите пароль:
Добро пожаловать в монитор MySQL. Команды заканчиваются на; или \ g.
Ваш идентификатор подключения к MySQL - 17
Версия сервера: 5.0.45 Исходный код

Введите "помощь"; или '\ h' для помощи. Введите '\ c', чтобы очистить буфер.

mysql> _
  

Соображения

При настройке удаленного пользователя учитывайте следующую информацию:

  • Локальный пользователь отличается от удаленного пользователя. Например, fooUser @ localhost не то же самое, что fooUser @ 1.2.3.4 . Если ты хочешь чтобы у обоих пользователей были одинаковые разрешения, вам необходимо дублировать разрешения.

  • Мы не рекомендуем предоставлять ALL разрешений. Для стандартных пользователей мы рекомендую предоставить разрешения GRANT SELECT, INSERT, UPDATE, DELETE .

  • Чтобы предоставить доступ только к определенной таблице, вы можете использовать базу данных . Таблица команда. Например, на предыдущем шаге вы могли использовать fooDatabase.fooTable вместо fooDatabase .

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

© 2020 Rackspace US, Inc.

Если не указано иное, контент на этом сайте находится под лицензией Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License

См. Особенности лицензии и ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ

Настройка удаленного подключения к базе данных MySQL

Когда устанавливать подключение к удаленной базе данных

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

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

Предварительные требования

Перед тем, как начать, вы должны:

Высокая доступность

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

  • Необходимо настроить соединение для каждого узла веб-сервера
  • Обычно вы настраиваете соединение базы данных с балансировщиком нагрузки базы данных; однако кластеризация базы данных может быть сложной, и ее настройка зависит от вас.Magento не дает конкретных рекомендаций по кластеризации баз данных.

    Для получения дополнительной информации см. Документацию MySQL.

Устранение проблем с подключением

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

Создание удаленного подключения

Для создания удаленного подключения:

  1. На сервере базы данных, как пользователь с привилегиями root , откройте файл конфигурации MySQL.

    Чтобы найти его, введите следующую команду:

    Местоположение отображается примерно так:

      
     1
    2
     
     Параметры по умолчанию считываются из следующих файлов в указанном порядке:
    /etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~ / .my.cnf
     

    В Ubuntu 16 обычно используется путь /etc/mysql/mysql.conf.d/mysqld.cnf .

  2. Найдите в файле конфигурации адрес привязки .

    Если он существует, измените значение следующим образом.

    Если его не существует, добавьте его где угодно, кроме раздела [mysqld] .

      
     1
     
     bind-address = 
     

    См. Документацию MySQL, особенно если у вас кластерный веб-сервер.

  3. Сохраните изменения в файле конфигурации и выйдите из текстового редактора.
  4. Перезапустите службу MySQL:

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

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

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

Этот пример предоставляет пользователю базы данных root полный доступ к базе данных на удаленном хосте.

Для предоставления доступа пользователю базы данных:

  1. Войдите на сервер базы данных.
  2. Подключитесь к базе данных MySQL как пользователь root .
  3. Введите следующую команду:

      
     1
     
     GRANT ALL ON <имя локальной базы данных>. * TO <имя пользователя удаленного веб-узла> @  IDENTIFIED BY '<пароль пользователя базы данных>';
     

    Например,

      
     1
     
     ПРЕДОСТАВИТЬ ВСЕ НА magento_remote.* TO [email protected] ОПРЕДЕЛЕННЫЙ 'dbuserpassword';
     

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

Проверить доступ к базе данных

На хосте веб-узла введите следующую команду, чтобы убедиться, что соединение работает:

  
 1
 
 mysql -u <имя пользователя локальной базы данных> -h  -p
 

Если монитор MySQL отображает следующее, база данных готова для программного обеспечения Magento:

  
 1
2
3
4
5
6
7
8
 
 Добро пожаловать в монитор MySQL.Команды заканчиваются на; или \ g.
Ваш идентификатор подключения к MySQL - 213 Версия сервера: 5.6.26 Сервер сообщества MySQL (GPL)

Авторские права (c) 2000, 2015, Oracle и / или ее дочерние компании. Все права защищены.

Oracle является зарегистрированным товарным знаком Oracle Corporation и / или ее дочерних компаний. Другие наименования могут быть торговыми марками их владельцев.

Введите "помощь"; или '\ h' для помощи. Введите '\ c', чтобы очистить текущий оператор ввода.
 

Если ваш веб-сервер кластерный, введите команду на каждом хосте веб-сервера.

Установите программное обеспечение Magento

При установке программного обеспечения Magento необходимо указать следующее:

  • Базовый URL-адрес (также называемый адресом магазина ) указывает имя хоста или IP-адрес веб-узла
  • Хост базы данных - это удаленный сервер базы данных , IP-адрес (или балансировщик нагрузки, если сервер базы данных кластеризован)
  • Имя пользователя базы данных - это локальный веб-узел , пользователь базы данных, которому вы предоставили доступ
  • Пароль базы данных - это пароль пользователя локального веб-узла.
  • Имя базы данных - это имя базы данных на удаленном сервере

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

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

Для получения инструкций щелкните по ссылкам ниже.


Как включить компьютер в качестве узла доступа

По умолчанию все IP-адреса заблокированы и должны быть добавлены в список для доступа к серверу. Таким образом, перед подключением к MySQL с другого компьютера подключенный компьютер должен быть включен как Access Host .

Динамические IP-адреса

Наличие динамического IP-адреса означает, что подключаемый IP-адрес может периодически меняться в зависимости от интернет-провайдера (ISP).Вы должны обновлять подключаемый IP-адрес в Remote MySQL каждый раз, когда он изменяется.

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

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


через cPanel

К добавьте ваш компьютер в качестве узла доступа, как показано на видео выше:

  1. Войдите в cPanel .
  2. В разделе Базы данных щелкните Remote MySQL® .

  3. Введите IP-адрес подключения, затем нажмите Добавить .

По удалить хост из доступа к базам данных на вашем сервере:

  1. Щелкните значок Remote MySQL® в разделе cPanel Databases .
  2. Найдите IP-адрес, который вы хотите удалить.
  3. Щелкните значок Удалить справа от выбранного IP-адреса.

через Plesk

Если у вас Windows-хостинг, вам нужно будет внести свой IP в белый список. Следуйте инструкциям в следующих статьях:


Каковы параметры конфигурации

Используйте следующие параметры конфигурации для подключения к базе данных.

Имя хоста Используйте IP-адрес или имя сервера.Пожалуйста, обратитесь к этой статье, чтобы узнать, где найти адрес вашего сервера: Что такое адрес моего сервера?
Имя базы данных Используйте первые 8 символов вашего cpanelUsername_databaseName.

Пример :
Имя пользователя cPanel: snappygator
Имя базы данных: exampledatabase

Вывод:
snappyga_exampledatabase
Имя пользователя базы данных Используйте первые 8 символов вашего cpanelUsername__databaseUsername.

Пример:
Имя пользователя cPanel: snappygator
Имя пользователя базы данных: exampleuser

Вывод:
snappyga_exampleuser

Пароль базы данных Пароль, который вы ввели для этого пользователя базы данных.
MySQL Connection Port 3306
TCP или UDP Любой из двух вариантов подходит.

Чтобы узнать больше о добавлении строки подключения в ваш код Perl или PHP с помощью этих параметров конфигурации, см. Следующую статью:


Как получить доступ к вашим базам данных

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

Дополнительные примеры распространенных ошибок MySQL см. В соответствующей статье:


Связанные темы:

Что такое сервер базы данных MySQL?

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

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

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

Как разрешить удаленный доступ к серверу MySQL?

Сервер MySQL по умолчанию обменивается данными только с «localhost», что означает, что к нему могут получить доступ только приложения, работающие на том же хосте. Удаленный доступ необходим, если вы хотите получить доступ к базе данных из приложения, запущенного на другом компьютере или хосте.

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

Как найти имя хоста MySQL?

Имя хоста MySQL - это местоположение вашего сервера MySQL и базы данных. Эта информация нужна всякий раз, когда вам нужно подключиться к серверу MySQL. Localhost используется по умолчанию в качестве имени хоста при условии, что вы обращаетесь к своей базе данных на том же сервере, где находится ваше приложение, например WordPress. Для сайта WordPress ваше имя хоста находится в корневом каталоге wp-config.php файл.

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

Как восстановить базу данных MySQL?

В cPanel есть функция, которая позволяет восстанавливать резервную копию базы данных MySQL. Инструкции по восстановлению резервной копии MySQL приведены в этой статье «Загрузка и восстановление резервной копии базы данных MySQL».

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


Статьи по теме:

Устранение проблем с подключением к базе данных MySQL
Строки подключения к MySQL

Настройка подключения к удаленной базе данных | Поддержка Bluehost

Примечание: При подключении с домашнего компьютера вам понадобится клиент MySQL, например Navicat, phpMyAdmin, Workbench или Dreamweaver.

Параметры конфигурации:

Используйте следующие параметры конфигурации для подключения к базе данных

Имя хоста = (использовать IP-адрес сервера)
Имя базы данных = (cpanelUsername_databaseName)
Имя пользователя базы данных = (cpanelUsername_databaseUsername)
Пароль базы данных = (пароль, который вы ввели для этого пользователя базы данных)
MySQL Connection Port = 3306
TCP или UDP, либо в порядке.

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

Перед подключением к MySQL с другого компьютера, подключенный компьютер должен быть активирован как Access Host .

  1. Войдите в cPanel и щелкните значок Remote MySQL в разделе «Базы данных».
  2. Введите IP-адрес подключения и нажмите Добавить хост .
    • Примечание: Вы можете найти и добавить свой IP-адрес прямо из этого инструмента.Найдите Ваш IP: 123.123.12.123 [Добавить] . Щелкнув ссылку [Добавить] , вы введете ваш IP-адрес в поле ниже.
  3. Щелкните Добавить , и теперь вы сможете удаленно подключиться к своей базе данных.

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

Чтобы удалить хост из доступа к базам данных на вашем сервере:

  1. Щелкните значок X рядом с IP-адресом.
  2. Если вы уверены, что хотите запретить серверу доступ к вашим базам данных, нажмите Да.

Динамические IP-адреса

Наличие динамического IP-адреса означает, что подключаемый IP-адрес может периодически меняться в зависимости от интернет-провайдера (ISP). Вы должны обновлять подключаемый IP-адрес в Remote MySQL каждый раз, когда он изменяется.

Управление базами данных

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