Linux открыть порт mysql

Русские Блоги

Использование MySQL в среде Ubuntu / Linux: открыть / изменить порт 3306, открыть доступ

Операционная система: Ubuntu 17.04 64-bit

Версия MySQL: MySQL 5.7

1. Проверьте, открыт ли порт 3306

Если вы видите следующую картинку, это означает, что порт не открыт:

Во-вторых, измените права доступа

Введите каталог «etc / mysql / mysql.conf.d /», как показано ниже:

В этом каталоге находится файл конфигурации «mysqld.cnf», как показано ниже:

Откройте этот файл конфигурации:

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

Обратите внимание на красный комментарий в первой строке изображения выше:

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

Как показано ниже, эта конфигурация также стала комментарием:


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

В-третьих, измените номер порта

Тем не менее этот файл конфигурации, смотрите элементы конфигурации в средней части этого файла конфигурации:

Нам нужно добавить конфигурацию порта к нему:

После добавления весь файл конфигурации выглядит так:

Не забудьте сохранить после изменения файла.

4. Откройте доступ к учетной записи root

На третьем этапе мы просто сняли ограничения локального доступа, но все равно не установили права доступа к учетной записи.

Перезапустите службу MySQL и войдите в консоль MySQL:

service mysql stop

service mysql start

Переключитесь на системную базу данных «mysql»:


Просмотрите все таблицы в этой базе данных:


Мы хотим изменить последнюю таблицу «user» на рисунке выше и посмотреть, какие поля в этой таблице:


Есть так много полей, поэтому они не перечислены один за другим. Все, что нам нужно, это два поля «Host» и «User»:

В этой таблице мы видим, что пользователь root может обращаться к службе MySQL только локально, поэтому нам нужно изменить его на «%», что означает, что учетная запись root может обращаться к службе базы данных независимо от того, где она находится:


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

Последний параметр открывает все разрешения учетной записи root:

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

5. Подтвердите статус порта 3306 еще раз

Если вы видите следующую картинку, вы можете:

Источник

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

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

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

Читайте также:  Не могу позвонить с mac os

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

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

Первый шаг — настроить сервер MySQL на прослушивание определенного IP-адреса или всех IP-адресов на машине.

Если сервер 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 (прослушивается только на localhost).

В этом примере мы настроим сервер MySQL для прослушивания всех интерфейсов IPv4, изменив значение на 0.0.0.0

Если есть строка, содержащая skip-networking , удалите ее или закомментируйте, добавив # в начале строки.

В MySQL 8.0 и выше директива bind-address может отсутствовать. В этом случае добавьте его в раздел [mysqld] .

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

Чтобы перезапустить службу MySQL в Debian или Ubuntu, введите:

В дистрибутивах на основе RedHat, таких как CentOS, для перезапуска службы выполните:

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

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

Войдите на сервер MySQL как пользователь root, набрав:

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

Изнутри оболочки MySQL используйте оператор GRANT чтобы предоставить доступ удаленному пользователю.

  • database_name — это имя базы данных, к которой будет подключаться пользователь.
  • user_name — это имя пользователя MySQL.
  • ip_address — это IP-адрес, с которого пользователь будет подключаться. Используйте % чтобы разрешить пользователю подключаться с любого IP-адреса.
  • user_password — пароль пользователя.

Например, чтобы предоставить доступ к базе данных dbname пользователю с именем foo с паролем my_passwd с клиентского компьютера с IP 10.8.0.5 , вы должны запустить:

Настройка межсетевого экрана

Последний шаг — настроить брандмауэр, чтобы разрешить трафик на порт 3306 (порт по умолчанию MySQL) с удаленных машин.

Iptables

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

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

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

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

БрандмауэрD

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

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

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

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

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

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

Читайте также:  Qcad ��� mac os

Если вы получаете сообщение об ошибке, подобное приведенному ниже, то либо порт 3306 не открыт , либо сервер MySQL не прослушивает IP-адрес .

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

Выводы

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

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

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

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

Источник

Открытие порта 3306 (mysql) в VMBitrix и настройка удаленного доступа к БД

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

Показать скрытое содержимое

VMBitrix представляет собой образ линукса под VMWare с хорошо настроенным веб-сервером для оптимальной работы Битрикса, и она очень удобна как для разработки, так и для работы локальных сайтов (например корпоративного портала). Поэтому часто разработчикам требуется прямой доступ к mysql, особенно если они занимаются интеграцией проектов или разработкой своих модулей.

Для прямой работы с базой данных в арсенале Битрикса есть /bitrix/admin/sql.php. Многие для этой цели ставят phpmyadmin. Однако есть админ-клиенты, на мой взгляд, на порядок удобнее (особенно когда речь идет об innoDB с внешними ключами). Для их работы требуется подключение к mysql-серверу, которое по умолчанию (в конфигурации VMBitrix) закрыто.

(Примечание: «#» перед командой означает приглашение shell, «>» — mysql).

    Заходим в консоль, а оттуда — в mysql

# mysql
> use mysql;

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

> insert into user set Host=’%’,User=’remote’,Password=PASSWORD(‘пароль’);
> grant all on *.* to ‘remote’@’%’;

Меняем пустой пароль root в mysql (по желанию, мера безопасности).

> update user set password=PASSWORD(‘пароль рута’) where user=’root’;
Если на виртуальной машине установлен Битрикс, который ходит в базу под рутом, то необходимо проставить в /bitrix/php_interface/dbconn.php новый пароль.

Выходим из mysql.

Открываем порт 3306 (mysql)
# iptables -I ufw-user-input 1 -p tcp —dport 3306 -j ACCEPT

Позволяем mysql принимать внешние соединения

# mc
Переходим в /etc/mysql/ , открываем my.cnf (F4)
Комментируем 68-ю строку решеткой: # bind-address = 127.0.0.1
Сохраняем (F10)

Выходим из mc и перегружаем демона mysql.

# exit
# /etc/init.d/mysql restart

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

    Источник

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

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

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

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

    Настройка MySQL Server

    Первый шаг – настроить сервер MySQL на прослушивание определенного IP-адреса или всех IP-адресов на компьютере.

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

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

    Читайте также:  Навител для windows ce net

    Расположение файла конфигурации MySQL зависит от дистрибутива. В Ubuntu и Debian файл находится по адресу /etc/mysql/mysql.conf.d/mysqld.cnf, в то время как в дистрибутивах на основе Red Hat, таких как CentOS, файл находится по адресу /etc/my.cnf.

    Откройте файл в текстовом редакторе :

    Найдите строку, которая начинается с bind-address и установите в качестве значения IP-адрес, который должен прослушивать сервер MySQL.

    По умолчанию установлено значение 127.0.0.1 (прослушивается только на локальном хосте).

    В этом примере мы настроим сервер MySQL на прослушивание всех интерфейсов IPv4, изменив значение на 0.0.0.0
    mysqld.cnf

    Если есть строка, содержащая skip-networking, удалите ее или закомментируйте, добавив # в начале строки.

    В MySQL 8.0 и выше директива bind-address может отсутствовать. В этом случае добавьте ее в разделе [mysqld].

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

    Чтобы перезапустить службу MySQL в Debian или Ubuntu, введите:

    В дистрибутивах на основе RedHat, таких как CentOS, для перезапуска службы выполните:

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

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

    Войдите на сервер MySQL от имени пользователя root, введя:

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

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

    • database_name – Имя базы данных, к которой будет подключаться пользователь.
    • user_name – это имя пользователя MySQL.
    • ip_address – это IP – адрес , с которого пользователь будет подключаться. Используйте, %чтобы позволить пользователю подключаться с любого IP-адреса.
    • user_password – это пароль пользователя.

    Например, чтобы предоставить доступ к базе данных dbname пользователю с именем andreyex с паролем my_passwd с клиентского компьютера с IP 10.8.0.5, вы должны выполнить:

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

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

    Iptables

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

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

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

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

    FirewallD

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

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

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

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

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

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

    Если вы получаете сообщение об ошибке, как показано ниже, либо порт 3306 не открыт, либо сервер MySQL не прослушивает IP-адрес.

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

    Заключение

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

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

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

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

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

    Источник

    Оцените статью