mysql

mysql подключается к MySQL или MariaDB, показывает структуру и строки, выполняет точечные изменения, экспортирует таблицы, запускает нативный SQL и создаёт SQL-дампы.

База данныхВерсия 1.1.3СтабильнаяАлиасы: mariadb
lil-terminal

Обзор

Используйте mysql и для MySQL, и для MariaDB: пароль не попадает в историю, частые операции со схемой и строками имеют короткие флаги, а после : всегда доступен нативный SQL.

Таблицы, строки и нативный SQL

MySQL и MariaDB — клиент-серверные реляционные базы данных. Удобная модель мышления: база таблицы строки и столбцы индексы и транзакции; схема таблицы задаёт форму данных, а SQL описывает наборы строк, а не последовательность правок файла. Драйвер mysql работает и с MySQL, и с MariaDB, а специфичный SQL движка остаётся доступен после :.

Синтаксис

lil-terminal
mysql [options] · mysql : <sql>

Справочник

mysql

показать текущее подключение MySQL / MariaDB

mysql -c <host> <user> [database] [-p <port>] [-s <socket>] [-charset <charset>] [-n] [-m [name]]

подключиться; пароль запрашивается отдельно, если не указан -n

-use <database>

выбрать другую базу данных

-l

показать базы данных

-t

показать таблицы и представления

-s <table>

показать столбцы и типы данных

-n <table> [rows]

показать несколько строк таблицы

-f <table> <text> [rows]

найти текст по столбцам таблицы

-o <table> [-j|-csv] [file] [-f]

выгрузить строки таблицы

-a <table> : <json>

добавить строку из JSON-объекта

-w <table> <field> <value> : <json>

изменить совпавшие строки из JSON-объекта

-d <table> <field> <value>

удалить совпавшие строки

-m [name]

сохранить текущее подключение в .lil.key; по умолчанию использовать имя базы

-M <name>

удалить сохранённое подключение

-k [name]

показать сохранённые подключения или сведения об одном без вывода пароля

-K <name>

подключиться через сохранённое подключение

-e

отключиться и удалить данные подключения

mysql : <sql>

выполнить нативный SQL

mysql load <file.sql>

выполнить SQL из файла

mysql dump [file.sql] [-f]

создать дамп схемы и данных

mariadb [options]

синоним @mysql

Просмотр

-l показывает базы данных, -t — таблицы и представления, -s — столбцы и типы, -n — несколько строк, -f ищет текст по столбцам. -o выгружает таблицу в JSON или CSV.

Изменение

-a добавляет строку из JSON-объекта. -w меняет строки, совпавшие по одной паре поле/значение. -d удаляет такие строки. Сложные изменения, транзакции и JOIN логичнее выполнять нативным SQL после :.

Дамп и восстановление

dump создаёт SQL-дамп схемы и данных без системной оболочки. load выполняет SQL-файл. Большие дампы пишутся напрямую в файл, а не проходят через вывод терминала.

Подключение

-c принимает имя хоста, пользователя и необязательную базу данных; пароль запрашивается отдельно. -n явно включает подключение без пароля, -p меняет порт, -s задаёт socket, -charset — кодировку соединения.

Безопасность

Команда может выполнять произвольный SQL с правами указанного пользователя. Для рабочего проекта используйте отдельную ограниченную учётную запись.

-charset выбирает кодировку соединения. Выгрузка таблицы больше 100000 строк отклоняется вместо записи неполного файла.

Сохранённые подключения

Без -m данные подключения остаются только в текущей PHP-сессии. -m [name] явно сохраняет профиль в защищённом файле .lil.key (0600), -K <name> подключается через него повторно, -k показывает список или сведения о профиле без вывода сохранённого пароля, а -M <name> удаляет профиль. kill удаляет .lil.key вместе с остальным состоянием ядра. Относитесь к файлу как к чувствительному: добровольно сохранённый профиль может содержать доступы к базе данных.

Интерактивный пример из `/sandbox/`

Запускайте подготовленные примеры прямо на странице. Результат заранее сформирован и показывается в браузере; команды терминала на сервере не выполняются.

Посмотреть таблицу MySQL / MariaDB

Установка и управление

Устанавливайте актуальную совместимую версию. Для полного набора возможностей выбирайте Base, для сокращённого — Minimum; уже установленный модуль обновляет команда upgrade.

Base и Minimum — два пакета одного текущего релиза модуля, а не разные версии команды.

Пакет Base

Установить полный пакет с локальной справкой и всеми опубликованными режимами.

install mysql
Пакет Minimum

Установить сокращённый пакет без локальной справки; help <cmd> -i открывает актуальную серверную справку.

install mysql -m
Точная публичная версия

Установить именно эту опубликованную версию.

install mysql -v 1.1.3
Проверить или обновить

Поручить upgrade проверить совместимость и заменить установленный блок только при необходимости.

upgrade mysql
Удалить модуль

Удалить блок расширения, не затрагивая ядро и остальные модули.

install mysql -u

Примеры

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

Посмотреть таблицу MySQL / MariaDB
mysql -use shop | mysql -t | mysql -n products 5
Database  shop

products
orders

id	sku	name	category	price	active
1	SHOE-1	City shoe	shoes	79.90	1
2	SHOE-2	Trail shoe	shoes	109.00	1
3	BAG-1	Canvas bag	bags	44.50	1
Mysql · localhost
mysql -c localhost app shop
Status    connected
Server    MySQL / MariaDB
Host      localhost:3306
User      app
Database  shop
Charset   utf8mb4
Mysql · -l
mysql -l
information_schema
shop
Mysql · products
mysql -s products
Field     Type          Null  Key
id        bigint        NO    PRI
sku       varchar(64)   NO    UNI
name      varchar(180)  NO
category  varchar(80)   NO
price     decimal(10,2) NO
active    tinyint(1)    NO
Mysql · products
mysql -f products "shoe" 20
id	sku	name	category	price
1	SHOE-1	City shoe	shoes	79.90
2	SHOE-2	Trail shoe	shoes	109.00
Mysql · products
mysql -o products -j products.json
Saved  products.json
Mysql · products
mysql -a products : {"sku":"BAG-1","name":"Travel bag","price":49.90}
Inserted  1
Mysql · products
mysql -w products sku BAG-1 : {"price":44.90}
Updated  1
Mysql · products
mysql -d products sku BAG-1
Deleted  1
Mysql · select
mysql : SELECT COUNT(*) AS products FROM products
products
4
Mysql · dump
mysql dump shop.sql
Saved   shop.sql
Tables  2
Views   0
Mysql · load
mysql load \sandbox\db\mysql.sql
Affected  1
Affected  0
Affected  0
Affected  2
Time      2 ms
Mysql · -e
mysql -e
+
Обработать отсутствующую таблицу
mysql -s missing_table
Таблица не найдена: missing_table

Файл из примера: sandbox/db/mysql.sql

Пример использует файл или каталог из защищённой учебной папки /sandbox/.

CREATE DATABASE IF NOT EXISTS shop CHARACTER SET utf8mb4;
USE shop;
CREATE TABLE products (id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY, sku VARCHAR(64) UNIQUE NOT NULL, name VARCHAR(180) NOT NULL, category VARCHAR(80) NOT NULL, price DECIMAL(10,2) NOT NULL, active TINYINT(1) NOT NULL DEFAULT 1);
INSERT INTO products(sku,name,category,price,active) VALUES ('SHOE-1','City shoe','shoes',79.90,1),('BAG-1','Canvas bag','bags',44.50,1);

Связанная документация

Текущая публичная версия

v1.1.32026-08-14

Сохранённые подключения

Добавлены явные профили -m/-M/-k/-K в .lil.key; списки никогда не показывают сохранённый пароль.