Настройка удаленного доступа MySQL и MariaDB в Linux Ubuntu
По умолчанию сервер MySQL настроен таким образом, что к нему разрешены подключения только с локальной машины, следовательно, подключиться из-вне (по интернет или локальной сети) не получится.
Убедиться в этом можно набрав на сервере команду:
sudo netstat -tlp
В результате получите что-то типа этого:
Активные соединения с интернетом (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 localhost:mysql *:* LISTEN 634/mysqld tcp 0 0 *:http *:* LISTEN 987/nginx -g daemon tcp 0 0 *:ssh *:* LISTEN 375/sshd tcp6 0 0 [::]:http [::]:* LISTEN 987/nginx -g daemon tcp6 0 0 [::]:ssh [::]:* LISTEN 375/sshd
Отсюда видно, что mysql слушает только интерфейс localhost (127.0.0.1). Это не всегда удобно, особенно когда есть необходимость выделить под сервер mysql отдельный сервер. А в рамках корпоративной локальной сети такое бывает очень часто.
Чтобы разрешить серверу MySQL принимать запросы из-вне необходимо предпринять несколько несложных шагов:
- Поменять одну строчку в конфигурационном файле MySQL;
- Создать сетевого пользователя с необходимыми правами.
Разрешаем MySQL слушать интерфейс, который смотрит во внешнюю сеть
Открываем конфигурационный файл любимы редактором, например nano, из под привилегированного пользователя:
sudo nano /etc/mysql/my.cnf
Если у вас установлен сервер mariaDB, то конфигурационный файл находится в другом месте:
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
# 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
и меняем 127.0.0.1 на 0.0.0.0 — тогда сервер будет слушать все интерфейсы компьютера, либо задаем конкретный ip-адрес локального интерфейса, который смотрит в локальную сеть. Например — 192.168.122.10.
# 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 service mysql restart
Теперь осталось только завести пользователя, которому разрешено обращаться к серверу MySQL извне.
Создание внешнего пользователя MySQL
Теперь нужной подключиться к MySql с паролем суперпользователя системы (системы. а не MySQL):
sudo mysql
После подключения к MySQL можно создать пользователя и дать привилегию, например:
mysql> GRANT ALL PRIVILEGES ON userdata.* TO 'user'@'%' IDENTIFIED BY 'password';
Здесь дается полный доступ к базе данных userdata пользователю с логином user и паролем password, подключающемуся с любого ip.
Можно ограничить права пользователя, разрешив ему подключаться к базе только с определенного ip. Для этого меняем % на конкретный ip-адрес, например 192.168.122.16
mysql> GRANT ALL PRIVILEGES ON userdata.* TO 'user'@'192.168.122.16' IDENTIFIED BY 'password';
А можно и разрешить пользователю всё — подключаться ко всем базам с любого ip-адреса
mysql> GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' IDENTIFIED BY 'password';
Это делать не желательно, если конечно вы не заводите себя.
Похожие статьи на сайте
- Шпаргалка основных команд mysql по работе с базой данных и таблицам
- Настройка удаленного доступа MySQL и MariaDB в Linux Ubuntu
- Процесс создания базы MySQL, нового пользователя и загрузки дампа
- Как посмотреть всех пользователей и привилегии в MySQL
- Проверка, восстановление и оптимизация баз MySQL
- Установка Nginx, MariaDB и PHP-FPM на Ubuntu 16.04
- Как полностью удалить MySQL из Ubuntu
- Удаление всех таблиц из базы MySQL
- Установка сервера percona
- Установка Nginx+php5-fpm+MariaDB на Ubuntu 14.04
- Дампы баз данных MySql — mysqldump
- Перенос баз данных MySQL
- Защита phpMyAdmin
Подключение приложений к Базе данных Azure для MariaDB
База данных Azure для MariaDB находится на пути выхода на пенсию. Настоятельно рекомендуется выполнить миграцию на База данных Azure для MySQL. Дополнительные сведения о миграции в База данных Azure для MySQL см. в статье «Что происходит с База данных Azure для MariaDB?»
В этой статье перечислены типы строк подключения, поддерживаемые базой данных Azure для MariaDB, а также шаблоны и примеры. Строка подключения может содержать различные параметры и настройки.
- Сведения о получении сертификата см. в статье Настройка SSL-подключений в приложении для безопасного подключения к базе данных Azure для MySQL.
- = [имя_сервера].mariadb.database.azure.com
- @ = формат userID для правильной аутентификации. Если использовать только userID, аутентификация завершится ошибкой.
ADO.NET
Server=; Port=3306; Database=; Uid=; Pwd=; SslMode=Preferred;
В этом примере имя сервера — mydemoserver , имя базы данных — wpdb , имя пользователя — WPAdmin , а пароль — mypassword!2 . В результате строка подключения будет следующей:
Server= "mydemoserver.mariadb.database.azure.com"; Port=3306; Database= "wpdb"; Uid= "WPAdmin@mydemoserver"; Pwd="mypassword!2"; SslMode=Required;
JDBC
String url ="jdbc:mariadb://:3306/?useSSL=true&trustServerCertificate=true"; myDbConn = DriverManager.getConnection(url, "", );
Node.js
var conn = mysql.createConnection(", user: "", password: , database: , port: 3306, ssl:)>>);
ODBC
DRIVER=; Server=""; Port=3306; Database=; Uid=""; Pwd=; sslca=; sslverify=1;
PHP
$con=mysqli_init(); mysqli_ssl_set($con, NULL, NULL, , NULL, NULL); mysqli_real_connect($con, "", "", , , 3306);
Python
cnx = mysql.connector.connect(user="", password=, host="", port=3306, database=, ssl_ca=, ssl_verify_cert=true)
Ruby
client = Mysql2::Client.new(username: "", password: , database: , host: "", port: 3306, sslca:, sslverify:false, sslcipher:'AES256-SHA')
Получение сведений о строке подключения на портале Azure

В портал Azure перейдите на сервер База данных Azure для MariaDB, а затем выберите строки Подключение ion, чтобы получить список строк для вашего экземпляра:
Строка содержит такие сведения, как драйвер, сервер и другие параметры подключения к базе данных. Измените эти примеры, чтобы использовать собственные параметры, такие как имя базы данных, пароль и т. д. Тогда вы сможете использовать эту строку для подключения к серверу из своего кода и приложений.
Yii2 Как установить подключение к базе данных MySQL/MariaDB

В сегодняшней статье мы поговорим о том как подключатся к базе данных Mysql или Mariadb в Yii2. Прежде чем подключается к базе данных у вас на сервере должно быть установлено расширения PDO и сам драйвер PDO. К примеру для подключения к базе данных Mysql у вас должен быть установлен драйвер pdo_mysql. За подключения к базе данных Mariadb драйвер pdo_mysql тоже подойдет.
В Yii2 за само подключения к базе данных отвечает файл db.php который находится в директории config/db.php

На изображении показано, где находится файл который, отвечает за подключения к базе данных.
За подключения к базе данных в Yii2 отвечает класс yii\db\Connection.

Данный файл будет возвращать массив с параметрами для подключения к базе данных.
return [ 'class' => 'yii\db\Connection', 'dsn' => 'mysql:host=192.168.4.10;dbname=inzhener', 'username' => 'root', 'password' => 'Qwerty123', 'charset' => 'utf8', ];
- class — класс коннектор подключения к БД.
- dsn — здесь нам нужно ip или hostname сервер, где установлена базы данных.
- username — учетная запись пользователя в базе данных.
- password — Пароль от учетной записи в базе данных.
- charset — кодировка, которая используется в базе данных.
Существует еще много параметров таких как префикс до имени базы данных или может быть мы хотим включить кеширования и так далее, но, для того чтобы установить подключения к базе данных то хватит и тех параметров которые я указал.
Всем спасибо, я надеюсь что вам моя статья хоть чем-то помогла.
Краткое руководство. База данных Azure для MariaDB: подключение и запрос данных с помощью MySQL Workbench
База данных Azure для MariaDB на пути прекращения поддержки. Настоятельно рекомендуется выполнить миграцию на База данных Azure для MySQL. Дополнительные сведения о переходе на База данных Azure для MySQL см. в статье Что происходит с База данных Azure для MariaDB?
В этом кратком руководстве показано, как подключиться к экземпляру Базы данных Azure для MariaDB с помощью MySQL Workbench.
Предварительные требования
В качестве отправной точки в этом кратком руководстве используются ресурсы, созданные в соответствии со следующими руководствами:
- Создание сервера Базы данных Azure для MariaDB с помощью портала Azure
- Создание сервера Базы данных Azure для MariaDB с помощью Azure CLI
Установка MySQL Workbench
Получение сведений о подключении
Получите сведения о подключении, необходимые для подключения к экземпляру Базы данных Azure для MariaDB. Вам потребуется полное имя сервера и учетные данные для входа.

- Войдите на портал Azure.
- На портале Azure в меню слева щелкните Все ресурсы. Затем найдите созданный сервер (например, mydemoserver).
- Выберите имя сервера.
- На странице Обзор сервера запишите значения Имя сервера и Имя для входа администратора сервера. Если вы забыли свой пароль, его можно сбросить на этой странице.
Подключение к серверу с помощью MySQL Workbench
Чтобы подключиться к серверу Базы данных Azure для MariaDB с помощью MySQL Workbench, выполните следующие действия:
- Откройте MySQL Workbench на компьютере.
- В диалоговом окне Настройка нового подключения на вкладке Параметры введите следующие сведения:
| Параметр | Рекомендуемое значение | Описание поля |
|---|---|---|
| Имя подключения | Подключение demo | Укажите метку для этого подключения. |
| Способ подключения | Standard (TCP/IP) (Стандартный способ (по протоколу TCP/IP)) | Стандартный способ (по протоколу TCP/IP) соответствует требованиям. |
| Имя узла | имя сервера | Укажите значение имени сервера, которое вы использовали при создании экземпляра Базы данных Azure для MariaDB. В нашем примере используется такое имя сервера — mydemoserver.mariadb.database.azure.com. Используйте полное доменное имя (*.mariadb.database.azure.com), как показано в примере. Если вы не помните имя своего сервера, выполните действия из предыдущего раздела, чтобы получить сведения о подключении. |
| Порт | 3306 | Всегда используйте порт 3306 при подключении к Базе данных Azure для MariaDB. |
| Имя пользователя | имя для входа администратора сервера | Имя для входа администратора сервера, которое вы использовали при создании экземпляра Базы данных Azure для MariaDB. В нашем примере имя пользователя — myadmin@mydemoserver. Если вы не помните имя для входа администратора сервера, выполните действия из предыдущего раздела, чтобы получить сведения о подключении. Формат: имя пользователя@имя сервера. |
| Пароль | ваш пароль | Чтобы сохранить пароль, щелкните Store in Vault (Сохранить в хранилище). |

Примечание По умолчанию защита SSL-подключения является обязательной и применяется к серверу Базы данных Azure для MariaDB. Обычно для подключения MySQL Workbench к вашему серверу не требуется никаких дополнительных настроек с использованием сертификатов SSL. Но мы рекомендуем привязать SSL-сертификат ЦС к MySQL Workbench. Чтобы отключить протокол SSL, на странице обзора сервера на портале Azure выберите Безопасность подключения в меню. Для параметра Принудительно использовать SSL-соединение выберите Отключено.
Создание таблиц, вставка, чтение, обновление и удаление данных
- Скопируйте и вставьте следующий пример кода SQL в пустую вкладку SQL для иллюстрации примера данных. Этот код создает пустую базу данных с именем quickstartdb. Затем он создает пример таблицы с именем inventory. Код добавляет несколько строк, а затем считывает эти строки. Он изменяет данные с помощью инструкции update, а затем еще раз считывает строки. Наконец, он удаляет одну строку и еще раз считывает строки.
-- Create a database -- DROP DATABASE IF EXISTS quickstartdb; CREATE DATABASE quickstartdb; USE quickstartdb; -- Create a table and insert rows DROP TABLE IF EXISTS inventory; CREATE TABLE inventory (id serial PRIMARY KEY, name VARCHAR(50), quantity INTEGER); INSERT INTO inventory (name, quantity) VALUES ('banana', 150); INSERT INTO inventory (name, quantity) VALUES ('orange', 154); INSERT INTO inventory (name, quantity) VALUES ('apple', 100); -- Read SELECT * FROM inventory; -- Update UPDATE inventory SET quantity = 200 WHERE SELECT * FROM inventory; -- Delete DELETE FROM inventory WHERE SELECT * FROM inventory;

На снимке экрана показан пример кода SQL в MySQL Workbench и выходные данные после его выполнения.
В этом кратком руководстве вы подключились к Базе данных Azure для MariaDB с помощью MySQL Workbench и запросили данные с помощью языка SQL.
[!div ] > [Migrate your database using Export and Import](./concepts-migrate-import-export.md) —>