Сегодня базы данных используются практически в любых проектах. Взаимодействие с базами данных особенно хорошо знакомо системным администраторам, администраторам баз данных, DevOps/SRE и разработчикам программного обеспечения. И если администраторам, как правило, достаточно развернуть один или несколько инстансов СУБД и прописать необходимые данные для подключения базы данных к приложению или сервису, то разработчикам необходимо подключать базу данных непосредственно в самом коде разрабатываемого приложения. В сегодняшней статье мы подробно рассмотрим, как подключить базы данных в разных языках программирования.
Предварительные требования
В текущей статье мы рассмотрим примеры пяти баз данных — PostgreSQL, Redis, MongoDB, MySQL, ClickHouse, используя такие языки программирования как Python, Go и JavaScript.
-
Для подключения к базам данных нам понадобится один сервер или одна виртуальная машина с любым установленным дистрибутивом Linux. В данной статье будет использоваться дистрибутив Ubuntu 22.04. На сервер заранее нужно установить необходимую СУБД.
Инструкции по установке СУБД можно найти в наших туториалах:
PostgreSQL, Redis, MongoDB, MySQL, ClickHouse.
Также для развертывания СУБД можно воспользоваться сервисом Облачные базы данных (База данных как сервис (DBaaS)). В следующем разделе мы рассмотрим использование данного сервиса.
-
Также при необходимости для PostgreSQL можно использовать клиентскую утилиту для работу с оболочкой
psql. Для установки в ОС Ubuntu достаточно выполнить команды:apt update && apt -y install postgresql-client
-
По умолчанию на арендуемых облачных серверах уже предустановлен Python версии 3.10. Язык Go (Golang) необходимо установить отдельно.
-
Дополнительно для языка Python необходимо установить пакетный менеджер pip, чтобы скачивать сторонние пакеты.
-
Для языка JavaScript необходимо установить платформу Node.js и пакетный менеджер npm.
Развертывание облачной базы данных
Чтобы быстро развернуть необходимую СУБД можно воспользоваться сервисом облачного провайдера Timeweb Cloud под названием «Облачные базы данных» в котором достаточно выбрать необходимую СУБД, характеристики сервера и заполнить информацию о базе – название БД и пароль пользователя. Рассмотрим использование сервиса на примере создания базы PostgreSQL.
-
Проходим аутентификацию в личном кабинете по ссылке.
-
На панели слева выбираем раздел «Базы данных»:

-
Нажимаем на кнопку «Создать»:

-
В разделе «Тип база данных» выбираем PostgreSQL:

-
Выбираем регион в котором будет находиться сервер баз данных. Чем меньше пинг от дата-центра к вашей локации тем меньше будет задержка до сервера с СУБД:

-
В разделе «Конфигурация» выбираем необходимую конфигурацию для сервера. В качестве теста можно выбрать минимальную конфигурацию:

-
Если сервер с СУБД должен быть доступен из внешней сети, то в разделе «Сеть» можно арендовать публичный IPV4-адрес. В нашем случаем нам понадобится IPv4-адрес:

-
При необходимости можно задать свое имя для базы данных и свой пароль пользователя:

-
Для заказа сервиса СУБД необходимо нажать на кнопку «Заказать»:

DBaaS
оптимизируйте процессы DevOps и CI/CD.
-
После того как база данных будет создана, переходим в раздел «Подключение» где будет сгенерирована строка для подключения к базе данных. Строка подключения имеет следующий вид:
psql "postgresql://<имя_пользователя>:<пароль_пользователя>@адрес_базы_данных/<имя+базы данных>

Эти данные потребуются для подключения к соответствующим инстансам баз данных. Все остальные СУБД создаются по аналогии с примером для создания PostgreSQL.
Подключение к базам данных в Python
Для работы с MySQL существует официальный драйвер MySQL Connector.
1) Для начала установим драйвер при помощи менеджера пакетов pip:
pip install mysql-connector-python

2) Далее инициализируем новое соединение к серверу MySQL. Импортируем библиотеку mysql.connector и отдельно класс Error который в случае проблем с подключением будет выводить конкретную ошибку.
Создаем функцию с именем create_connection в которую передадим значения адреса БД (host), имени пользователя (user) и пароля пользователя (password). Чтобы произвести соединение создадим класс create_connection в который передадим имена переменных в которых хранятся данные для подключения к баз данных:
import mysql.connector
from mysql.connector import Error
def create_connection(host_name, user_name, user_password):
connection = None
try:
connection = mysql.connector.connect(
host="194.87.190.137",
user="gen_user",
password="m-EE6Wm}z@wCKe"
)
print("Successfully connected to MySQL Server!")
except Error as e:
print(f"The error '{e}' occurred")
return connection
def execute_query(connection, query):
cursor = connection.cursor()
try:
cursor.execute(query)
connection.commit()
print("Query executed successfully")
except Error as e:
print(f"The error '{e}' occurred")
connection = create_connection("194.87.190.137", "gen_user", "m-EE6Wm}z@wCKe")
3) Запускаем скрипт. При успешном соединение с MySQL будет выведено сообщение «Successfully connected to MySQL Server!».
При наличие ошибок будет выведен код и описание ошибки.
4) Создадим новую таблицу. Подключаемся к базе данных используя класс connection.database в котором указываем имя базы данных. БД должна уже быть предварительно создана.
Для создания таблицы инициализируем переменную create_table_query в которой указываем SQL запрос CREATE TABLE. Для вставки данных инициализируем другую переменную insert_data_query в которой будет указан SQL запрос INSERT INTO. Для выполнения каждого запроса используется класс execute_query который принимает строку с соединением к БД и имя переменной с SQL запросом:
connection.database = 'test_db'
create_table_query = """
CREATE TABLE IF NOT EXISTS users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
age INT NOT NULL
)
"""
execute_query(connection, create_table_query)
insert_data_query = """
INSERT INTO users (name, age) VALUES
('Alice', 30),
('Bob', 25)
"""
execute_query(connection, insert_data_query)
if connection.is_connected():
connection.close()
print("Connection closed")
5) Запускаем скрипт:

Как можно увидеть данные были успешно созданы.
Подключение к базам данных в Go
Язык программирования Go является одним из самых молодых языков — он был разработан в 2009 году компанией Google. Go широко используется при разработке микросервисной архитектуры, а также для написания сетевых утилит. В частности, на Go написаны такие сервисы, как Docker и Kubernetes.
Go поддерживает интеграцию со всеми популярными СУБД, включая PostgreSQL, Redis, MongoDB, MySQL, ClickHouse и многие другие.
Для работы с СУБД MySQL в Go используется драйвер go-sql-driver/mysql.
1) Создаем новый каталог, в котором будут храниться файлы проекта, и переходим в него:
mkdirmysql-connect && cd mysql-connect
2) Создаем файл go.mod, в котором будут храниться зависимости:
go mod init golang-connect-mysql
3) Скачиваем драйвер mysql при помощи команды go get:
go get -u github.com/go-sql-driver/mysql
4) Создаем новый файл с именем main.go Данные для подключения к СУБД указаны в переменной dsn:
package main
import (
"database/sql"
"fmt"
"log"
_ "github.com/go-sql-driver/mysql"
)
func main() {
dsn := "root:password@tcp(localhost:3306)/testdb"
db, err := sql.Open("mysql", dsn)
if err != nil {
log.Fatal(err)
}
defer db.Close()
if err := db.Ping(); err != nil {
log.Fatal(err)
}
fmt.Println("Successfully connected to the database!")
query := "INSERT INTO users (name, age) VALUES (?, ?)"
result, err := db.Exec(query, "Alex", 25)
if err != nil {
log.Fatal(err)
}
lastInsertID, err := result.LastInsertId()
if err != nil {
log.Fatal(err)
}
fmt.Printf("Inserted data with ID: %d\n", lastInsertID)
}
Подключение к базам данных в JavaScript
Язык JavaScript активно используется для создания динамических веб-сайтов. Стоит отметить что все подключения к сторонним сервисам включая СУБД осуществляются при помощи платформы Node.js. Убедитесь что на вашем устройстве установлен Node.js и пакетный менеджер npm.
Для работы с MySQL используется драйвер mysql2.
1) Создаем директорию в которой будем хранить файлы проекта:
mkdir js-mysql-connect && cd js-mysql-connect
2) Инициализируем проект:
npm init -y
3) Устанавливаем библиотеку mysql2:
npm install mysql2
4) Для подключения к СУБД MySQL используем следующий код:
const mysql = require('mysql2');
const connection_to_mysql = mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'PasswordForRoot74463',
database: db1,
});
connection_to_mysql.connect((err) => {
if (err) {
console.error('Error connecting to MySQL:', err.message);
return;
}
console.log('Successfully connected to MySQL Server!');
connection_to_mysql.end((endErr) => {
if (endErr) {
console.error('Error closing the connection_to_mysql:', endErr.message);
} else {
console.log('Connection closed.');
}
});
});
Разверните базу данных в облаке
Timeweb Cloud
447 ₽/мес
711 ₽/мес
Заключение
В сегодняшней статье мы подробно ознакомились с подключением к базам данных PostgreSQL, Redis, MongoDB, MySQL и ClickHouse в различных языках программирования — Python, Go и JavaScript, с помощью которых можно создавать как веб-приложения, так и микросервисы, использующие базы данных в своей работе.
