Разделы
Начало работы
Быстрый стартCLI-флаги и конфиг
SQL
Диалект FileDB SQLDDLDMLSELECTФункции и выраженияТранзакции
Клиенты
HTTP APIНативные драйверыPostgreSQL / MySQL wire-протоколБинарный RPC
Возможности
RBAC (multi-user)Эмбеддинги (семантический поиск)Импорт файловБэкапыДемо-режим-витрина и управление .fdb
Эксплуатация
ДеплойАрхитектураFileDB на Windows: трей и автозагрузка
Справка
Сравнение с PostgreSQL / MySQL
AI
AI-функции: обзорAI-чат и AI-агентУмный экспорт и AI-маппинг импортаЭмбеддинги и гибридный поискНастройка AI: провайдеры и пресеты
Дашборды
Дашборды: обзорДатасеты и чартыNo-Code конструктор запросовAI-ассистент дашбордовВиджеты, сетка и фильтрыПубличные ссылки и экспортРаскладка, текстовые карточки и KPI-сравнение

PostgreSQL / MySQL wire-протокол

FileDB реализует бинарные wire-протоколы PostgreSQL v3 и MySQL — достаточно сменить порт в строке подключения, и приложение работает с FileDB как с настоящей PostgreSQL/MySQL: psql, mysql, psycopg2/libpq, mysql-connector, JDBC и т.п. подключаются напрямую.

Включение

./filedb -data ./databases -pg-addr :5432 -mysql-addr :3306

psql  "host=127.0.0.1 port=5432 user=alice dbname=shop sslmode=disable"
mysql -h 127.0.0.1 -P 3306 -u alice -p shop

Оба порта работают с одним и тем же набором .fdb-файлов: запись через MySQL читается через PostgreSQL и наоборот.

Что проверено реальными клиентами

CREATE TABLE (SERIAL/AUTO_INCREMENT), одиночный и многострочный INSERT, INSERT … RETURNING, SELECT с WHERE/ORDER BY/COUNT(*), параметризованные запросы, version()/VERSION(), аутентификация по паролю и роли. Числовые колонки приходят драйверу как int/float, а не строки; текст с ведущими нулями ('00123') остаётся строкой без потерь.

Экранирование строк по диалектам

Строковые литералы декодируются по семантике того протокола, по которому пришёл запрос: PostgreSQL — только ''', обратный слеш — обычный символ; MySQL — полный набор бэкслеш-эскейпов (для кавычек, перевода строки, табуляции, нуля, backspace и т.д.) плюс ''. С v2.44 это гарантированно единообразно для одиночного и многострочного INSERT ... VALUES (...), (...) и для литералов в ON DUPLICATE KEY UPDATE — до этого multi-row INSERT по MySQL-протоколу мог терять экранирующие бэкслеши.

Ограничения wire-слоя

  • TLS не поддерживаетсяSSLRequest получает отказ, соединение продолжается без шифрования. Используйте sslmode=disable и туннель/VPN/доверенную сеть.
  • Подготовленные выражения по бинарному протоколу обрабатываются, но результат возвращается в текстовом представлении.
  • Поддерживается то подмножество SQL, что понимает движок — например, голый SELECT 1 без FROM и INSERT … DEFAULT VALUES не реализованы.

Аутентификация

Использует ту же модель пользователей, что и HTTP (см. страницу RBAC). MySQL поддерживает mysql_native_password без дополнительных флагов клиента; старые учётки без поля mysql_native авторизуются через mysql_clear_password (клиент должен разрешить плагин: mysql --enable-cleartext-plugin).

Похожие страницы
← Назад
Нативные драйверы
Далее →
Бинарный RPC