Как подключиться к mysql linux
По умолчанию сервер MySQL прослушивает только localhost, что означает, что к нему могут получить доступ только приложения, работающие на том же хосте.
В этом руководстве мы объясним, как создать туннель SSH и подключиться к серверу MySQL с удаленных клиентов. Те же инструкции применимы и для MariaDB.
Подготовка
- Клиент SSH.
- SSH-доступ к системе, в которой работает сервер MySQL.
Создайте SSH-туннель в Linux и macOS
Клиент ssh предустановлен в большинстве систем на базе Linux и Unix.
Если вы используете Linux или macOS в качестве операционной системы, вы можете создать туннель SSH, используя следующую команду:
Используются следующие параметры:
После запуска команды вам будет предложено ввести пароль пользователя SSH. После его ввода вы войдете на сервер, и туннель SSH будет установлен. Рекомендуется настроить аутентификацию на основе ключей SSH и подключаться к серверу без ввода пароля.
Теперь вы можете указать клиенту MySQL на локальном компьютере адрес 127.0.0.1:3336 ввести учетные данные для входа в удаленную базу данных и получить доступ к серверу MySQL.
Например, чтобы подключиться к серверу MySQL с помощью клиента mysql из командной строки, вы должны ввести:
При появлении запроса введите пароль пользователя MySQL.
Чтобы завершить туннель SSH, введите CTRL+C в консоли, на которой работает клиент ssh.
Создайте туннель SSH в Windows
Выполните следующие шаги, чтобы создать SSH-туннель к серверу MySQL с помощью PuTTY:
Запустите Putty и введите IP-адрес сервера в поле Host name (or IP address) :
В меню « Connection разверните SSH и выберите « Tunnels . Введите 3306 в поле Source Port и 127.0.0.1:3306 в поле Destination :
Вернитесь на страницу Session чтобы сохранить настройки, чтобы не вводить их снова.
Введите имя сеанса в поле « Saved Session и нажмите кнопку « Save .
Выберите сохраненный сеанс и войдите на удаленный сервер, нажав кнопку « Open .
Появится новое окно с запросом вашего имени пользователя и пароля. После ввода имени пользователя и пароля вы войдете на сервер и создадите туннель SSH.
Настройка аутентификации с открытым ключом позволит вам подключаться к серверу без ввода пароля.
Теперь вы можете подключиться к удаленной базе данных с помощью локального клиента MySQL.
Например, если вы используете HeidiSQL, введите 127.0.0.1 в поле Hostname / IP а имя пользователя и пароль MySQL в поля User и Password :
Выводы
MySQL, самый популярный сервер баз данных с открытым исходным кодом, прослушивает входящие соединения только на localhost. Создание SSH-туннеля позволяет вам безопасно подключаться к удаленному серверу MySQL с вашего локального клиента.
MySQL - СУБД с открытым исходным кодом, которая часто устанавливается в качестве части сборки LAMP (Linux, Apache, MySQL, PHP/Python/Perl). Она использует реляционную базу данных и SQL для работы с данными.
Короткая установка простая - просто обновите индекс пакетов, установите пакет mysql-server и запустите скрипт безопасности:
Более развернутую инструкцию с нюансами, касающимися версий MySQL, читайте ниже.
Требования
На сервере должна быть установлена ОС Ubuntu 18.04, должен быть создан пользователь с sudo привилегиями и настроен фаервол.
Шаг 1: установка MySQL
Репозиторий Ubuntu 18.04 по умолчанию содержит только последнюю версию MySQL. На момент написания статьи это 5.7.
Для того, чтобы установить эту версию, сначала обновите индекс пакетов:
А затем выполните установку:
Выполнив эту команду, вы установите MySQL, однако запросов на установку пароля или других настроек не будет. Поэтому следующий шаг после установки - это настройка MySQL.
Шаг 2: настройка MySQL
Если вы установили одну из свежих версий MySQL, то вы можете просто запустить включенный в нее скрипт безопасности. Он позволит изменить некоторые базовые настройки (например, настройки для удаленного доступа). В более старых версиях вносить эти изменения приходилось вручную (в то время как сейчас они будут выполнены автоматически).
Запустите скрипт безопасности:
После этого вы сможете внести некоторые изменения в настройки безопасности MySQL.
Первый запрос - хотите ли вы использовать Validate Password Plugin, который используется для тестирования вашего пароля (плагин проверяет надежность пароля с точки зрения взлома).
Следующий запрос - установка пароля для суперпользователя. Введите и подтвердите выбор пароля.
Далее можно просто нажимать Y и затем Enter для того, чтобы внести необходимые изменения. В результате будут удалены некоторые анонимные пользователи и тестовая база данных, будет отключена удаленная авторизация для суперпользователя и будут внесены некоторые другие изменения.
Для того, чтобы создать каталог данных MySQL, вам нужно использовать:
- mysql_install_db - для версий до 5.7.6;
- mysqld --initialize - для версий 5.7.6 и более поздних.
Если вы следовали этой инструкции, то каталог данных был создан автоматически, и вам ничего делать не надо. И если вы введете команду, то увидите следующую ошибку:
Обратите внимание, что несмотря на то, что вы установите пароль для суперпользователя MySQL, для этого пользователя не включена авторизация с паролем при подключении к MySQL. Это можно изменить, выполнив следующие действия.
Шаг 3: настройка аутентификации и привилегий
В ОС Ubuntu c MySQL 5.7 (и более поздними версиями) аутентификация суперпользователя MySQL по умолчанию настроена на использование плагина auth_socket, а не пароля. С точки зрения безопасности это хороший вариант, однако могут быть некоторые проблемы, особенно в тех случаях, когда вам нужно дать другой программе (например, phpMyAdmin) доступ к пользователю.
Если вы хотите использовать пароль для подключения к MySQL в качестве суперпользователя, вам нужно изменить метод аутентификации с auth_socket на mysql_native_password. Для этого откройте консоль MySQL:
Далее проверьте, какой метод аутентификации используется для каждого из ваших пользовательских аккаунтов MySQL:
В этом примере вы видите, что аутентификация суперпользователя происходит с использованием плагина auth_socket. Чтобы поменять настройку на использование пароля, выполните команду ниже. Обязательно выберите хороший и сложный пароль.
Теперь нужно, чтобы изменения вступили в силу. Введите команду:
Еще раз запросите, какие аутентификационные методы используются:
Вывод должен выглядеть теперь вот так:
Теперь аутентификация суперпользователя будет происходит с использованием пароля. После этого можно выйти из консоли MySQL:
Если вам нужен отдельный пользователь для работы с MySQL, то создать его можно следующим способом. Снова откройте консоль MySQL:
Примечание: если вы выполнили действия выше, и теперь для аутентификации суперпользователя используется пароль, вам нужно использовать другую команду для доступа в консоль MySQL. Для того, чтобы авторизоваться с административными правами, введите:
Теперь создайте нового пользователя и задайте надежный пароль:
Теперь новому пользователю можно задать нужные вам права. Например, доступ ко всем таблицам в базе данных, а также возможность менять, добавлять и удалять права пользователей. Для этого введите следующую команду:
В данном случае использовать команду FLUSH PRIVILEGES не нужно - она используется только в тех случаях, когда вы изменяете таблицы представлений с использованием INSERT, UPDATE или DELETE.
Поэтому просто выйдите из консоли MySQL:
Теперь перейдем к тестированию MySQL.
Шаг 4: тестирование MySQL
Вне зависимости от того, как вы установили MySQL, СУБД должна запуститься автоматически.
Проверить статус можно следующей командой:
Вывод должен быть примерно вот таким:
Если же MySQL по какой-то причине не работает, ее можно запустить командой:
Дополнительно можно выполнить проверку, используя mysqladmin, который позволяет использовать административные команды. Например, при помощи команды ниже можно подключиться к MySQL в качестве суперпользователя (-u root), запросить пароль (-p) и показать версию:
Подключаться к базам данных можно разными способами. Подключение, устанавливаемое с сервера, называется локальным. С помощью такого типа подключения можно работать с домашнего компьютера, при этом используя любые удобные приложения по управлению базами данных.
Я расскажу, как подключиться к удаленной базе данных 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-туннель. Вводим вот такую команду:
Потом в конфигурационном файле MySQL потребуется изменить параметр, отвечающий за удаленное подключение. Открываем в «Терминале» файл, дав вот такую команду:
Далее комментируем нужную нам строку. В итоге она должна выглядеть вот таким образом:
Сохраняем изменения, потом перезапускаем MySQL вот такой командой:
Далее будет запрошен пароль для входа в панель управления хостингом, вводим его. Для подключения к удаленному серверу MySQL необходимо создать пользователя, и делается это вот такой командой:
Так мы создадим пользователя с неограниченным доступом ко всем базам на указанном сервере. Потом проверяем подключение утилитой telnet. Если сервер запрос не отклонил, значит, пора приступать к подключению. Для этого можно задать команды вот таких типов:
Как проверить соединение с базой данных MySQL
Для проверки подключения к базе данных MySQL во всех ОС используем утилиту telnet. Нужно просто открыть командную строку и набрать в ней вот такую команду:
Если соединение установится, то настройка туннеля прошла успешно, можно приступать к подключению. Если нет, рекомендуем тщательно проверить все настройки.
Распространенные проблемы и ошибки при подключении к MySQL
Как подключиться к MySQL удаленно, если возникают какие-то ошибки? Трудности обычно возникают при наличии запрещающих правил. Проверить, существуют ли такие, можно вот таким запросом:
Если таковые обнаружатся, добавим разрешающее правило. Для этого надо ввести соответствующую команду, она должна выглядеть примерно вот так:
Есть еще возможность открыть доступ для определенного IP-адреса, и это куда более безопасный способ. Для этого потребуется ввести такой запрос:
Если же появляется ошибка типа «Client does not support autentification protocol request by server; consider upgrading MySQL client» , это значит, что установленный клиент не поддерживает требуемый сервером протокол.
Ошибка «1045 невозможно подключиться к серверу MySQL» возникает при попытке подключиться удаленно к базам данных через phpMyAdmin. Причиной тому может быть неправильно введенный логин или же отсутствие пароля у пользователя или его неправильная смена.
Заключение
MySQL – один из самых популярных серверов баз данных с открытым исходным кодом. Подключиться к нему можно разными способами, причем как локально, так и удаленно. Если в процессе соединения возникают нетипичные ошибки, рекомендуем связаться со службой технической поддержки.
В современных реалиях сложно найти даже самое простое приложение, которое бы не требовало подключения базы данных – места для хранения электронной информации. Обычно для работы с такими хранилищами используется система управления базами данных. MySQL – самая распространенная и популярная СУБД в мире.
Давайте выясним, чем же она хороша и как с ней работать.
База данных MySQL: что это такое и в чем ее преимущества
MySQL – это реляционная система управления базами данных с открытым исходным кодом, написанная на языках программирования C и C++. Благодаря ей можно оптимизировать работу сайта или мобильного/десктопного приложения.
База данных – это место для структурированного хранения данных. Например, чтобы найти в смартфоне сохраненную картинку, мы используем для этого галерею. В данном случае картинки – это данные, а галерея – база данных.
Такой же подход используется и на многих сайтах, где подключены формы регистрации, системы оформления заказа и прочее. Когда вы регистрируетесь на сервисе, вся полученная от вас информация сохраняется в базе данных – благодаря этому вы можете повторно войти в свой аккаунт и получить доступ к внесенным ранее изменениям.
Если вести крупный ресурс без БД, то на это будет уходить очень много времени и средств. Базы данных группируют и упорядочивают информацию, упрощают получение доступа к ней. Чтобы администрировать такой большой поток данных, используются СУБД: MySQL, Microsoft SQL Server, PostgreSQL и другие.
MySQL хранит всю информацию в табличном виде. Извлечь данные из одной или нескольких таблиц можно с помощью запроса. Запросы в MySQL – это то, на чем все строится, с их помощью можно выполнять всевозможные операции с данным.
Столбцы таблицы всегда строго упорядочены, а расположение строк при необходимости может меняться в зависимости от информации в ячейках. Посмотрите на простую адресную книжку в виде таблицы:
Принцип работы с таблицами следующий: к серверу, на котором хранятся и обрабатываются структурированные данные, подключаются клиенты для получения необходимой информации, а для взаимодействия между пользователем и сервером используется специальное ПО. Заполнение подобных и более крупных таблиц происходит с помощью языка программирования SQL.
Исходя из пользовательского опыта, можно выделить следующие особенности MySQL:
- быстрая скорость доступа и обработки данных;
- надежная защита информации;
- простота использования;
- совместимость с Windows и Linux;
- бесплатность;
- возможность контролировать доступ к данным и учетным записям;
- шифрование паролей.
На этом с теоретической частью закончим.
Создание нового пользователя в MySQL
После установки MySQL в базе данных автоматически будет создан новый пользователь root. Работать под таким именем небезопасно, поэтому рекомендуется создавать нового пользователя и выполнять необходимые действия под ним. Давайте рассмотрим два способа создания нового пользователя в MySQL – через phpMyAdmin и через консоль.
Вариант 1: с помощью phpMyAdmin
Нам потребуется phpMyAdmin – приложение для работы с базой данных, которое обычно по умолчанию предустановлено на хостинге либо локальном сервере.
Чтобы добавить нового пользователя в phpMyAdmin, воспользуемся инструкцией:
Подробнее о правах доступа мы поговорим чуть позже, а пока давайте рассмотрим альтернативный метод добавления пользователя в БД.
Вариант 2: через консоль
Если вы подключаетесь к серверу по SSH, то этот способ для вас. Нам потребуется выполнить несколько команд:
Первым дело активируем сервер базы данных:
Создадим нового пользователя:
В кавычках потребуется изменить следующие данные: user – имя пользователя, pswrd – пароль.
Пока что пользователь не имеет разрешений, а значит, не может получить доступ к MySQL. Для решения такой проблемы пропишем еще одну строчку кода:
Мы выдали указанному пользователю все доступные права. Осталось сохранить внесенные изменения с помощью команды:
Готово! Теперь вы знаете, как создать нового пользователя в MySQL с правами доступа root.
Права доступа
В MySQL выделяют следующие права доступа:
- ALL PRIVILEGES – предоставляет полный доступ к выбранной БД;
- CREATE – разрешает пользователям создавать новые БД;
- SELECT – разрешает делать выборку данных;
- INSERT – позволяет вносить новые записи в таблицы;
- UPDATE – разрешает менять ранее созданные записи в таблицах;
- DELETE – разрешает удалять записи из таблиц;
- DROP – дает возможность удалять записи в БД;
- GRANT OPTION – позволяет пользователю предоставлять или отзывать права других пользователей.
Как изменить права доступа в MySQL
Чтобы предоставить те или иные права доступа, мы можем воспользоваться административной панелью или консолью.
Способ 1: через phpMyAdmin
Изменяем права доступа:
Таким образом, мы настроили права доступа для одного пользователя. Впоследствии вы сможете их изменить аналогичным способом.
Вариант 2: в терминале
В данном случае нам потребуется всего несколько команд. Если требуется изменить права доступа для выбранного пользователя MySQL, то необходимо выполнить следующее:
Значения внутри скобок необходимо заменить:
- наименование БД – указываем базу данных;
- наименование таблицы – указываем имена таблиц, к которым необходимо выдать доступ, прописываем .*, чтобы разрешить доступ ко всем таблицам;
- права — указываем тип прав, рассмотренный ранее;
- user – имя пользователя.
Если нужно указать несколько прав, то их необходимо прописать через запятую:
Если нужно удалить права у выбранного пользователя:
Забрать все права:
Полностью удалить пользователя можно командой:
Как посмотреть права доступа в MySQL
Для того чтобы посмотреть, какие права доступа выданы пользователю MySQL, достаточно в консоли прописать команду:
На этом моя статья подходит к концу. Надеюсь, что создать нового пользователя в MySQL для вас больше не проблема. Спасибо за внимание!
Читайте также: