mysql

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

База данныхВерсия 1.1.4СтабильнаяАлиасы: 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

Зачем нужна команда

mysql работает с сервером MySQL или MariaDB — например, когда сайт хранит заказы, товары или учётные записи в таблицах. В отличие от sqlite, эта команда не открывает файл базы данных. Синоним mariadb вызывает тот же драйвер.

Как пользоваться

Команда mysql -c localhost demo shop подключается к серверу; пароль вводится отдельно в скрытом поле и не записывается в историю. -n используют только для подключения без пароля, -p задаёт порт, -s — socket, -charset — кодировку. Затем -t покажет таблицы, -s products — столбцы, -n products 2 — несколько строк, -f найдёт текст, -o выгрузит JSON/CSV. Через mysql : SELECT ... запускается обычный SQL. dump создаёт SQL-копию, load выполняет SQL из файла.

Ограничения и безопасность

Точечные операции -a, -w, -d соответственно вставляют, обновляют и удаляют строки, причём совпадений при изменении и удалении может быть несколько. Сначала проверяйте выборку и делайте резервную копию; используйте учётную запись с ограниченными правами. Сохранённый через -m профиль в .lil.key может содержать пароль. Экспорт ограничен 100 000 строками, load — файлом до 32 МиБ. Нужны PHP MySQLi и доступ к серверу; результаты примеров подготовлены по учебному SQL, без реального подключения.

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

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

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

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

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

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

Пакет Base

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

install mysql
Пакет Minimum

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

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

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

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

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

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

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

install mysql -u

Примеры

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

Посмотреть таблицу MySQL / MariaDB
mysql -c localhost demo shop
Status    connected
Server    MySQL / MariaDB
Host      localhost:3306
User      demo
Database  shop
Charset   utf8mb4
Подключиться; пароль запрашивается отдельно, если не указан -n
mysql -c localhost demo shop -n
Status    connected
Server    MySQL / MariaDB
Host      localhost:3306
User      demo
Database  shop
Charset   utf8mb4
Подключиться; пароль запрашивается отдельно, если не указан -n
mysql -c localhost demo shop -p 3307 -charset utf8mb4
Status    connected
Server    MySQL / MariaDB
Host      localhost:3307
User      demo
Database  shop
Charset   utf8mb4
Подключиться; пароль запрашивается отдельно, если не указан -n
mysql -c localhost demo shop -s /tmp/mysql.sock -n
Status    connected
Server    MySQL / MariaDB
Host      localhost:3306
User      demo
Database  shop
Charset   utf8mb4
Показать текущее подключение MySQL / MariaDB
mysql
Status    connected
Database  shop
Charset   utf8mb4
Выбрать другую базу данных
mysql -use shop
Status    connected
Database  shop
Показать базы данных
mysql -l
shop
Показать таблицы и представления
mysql -t
products	BASE TABLE
Показать столбцы и типы данных
mysql -s products
Field	Type	Null	Key	Default	Extra
id	bigint unsigned	NO	PRI	NULL	auto_increment
sku	varchar(64)	NO	UNI	NULL	
name	varchar(180)	NO		NULL	
category	varchar(80)	NO		NULL	
price	decimal(10,2)	NO		NULL	
active	tinyint(1)	NO		1	
Показать несколько строк таблицы
mysql -n products 2
id	sku	name	category	price	active
1	SHOE-1	City shoe	shoes	79.90	1
2	BAG-1	Canvas bag	bags	44.50	1
Найти текст по столбцам таблицы
mysql -f products "shoe"
id	sku	name	category	price	active
1	SHOE-1	City shoe	shoes	79.90	1
Выгрузить строки таблицы
mysql -o products -j
[
  {
    "id": 1,
    "sku": "SHOE-1",
    "name": "City shoe",
    "category": "shoes",
    "price": "79.90",
    "active": 1
  },
  {
    "id": 2,
    "sku": "BAG-1",
    "name": "Canvas bag",
    "category": "bags",
    "price": "44.50",
    "active": 1
  }
]
Выгрузить строки таблицы
mysql -o products -csv tmp/products.csv
Saved  sandbox/tmp/products.csv
Обработать отсутствующую таблицу
mysql -o products -j tmp/products.json -f
Saved  sandbox/tmp/products.json
Добавить строку из JSON-объекта
mysql -a products : {"sku":"NEW-1","name":"Sample","category":"test","price":5,"active":1}
Inserted  1
ID        3
Изменить совпавшие строки из JSON-объекта
mysql -w products sku SHOE-1 : {"price":75}
Updated  1
Удалить совпавшие строки
mysql -d products sku SHOE-1
Deleted  1
Выполнить нативный SQL
mysql : SELECT COUNT(*) AS total FROM products
total
2
Time  (varies) ms
Создать дамп схемы и данных
mysql dump tmp/shop.sql
Saved   sandbox/tmp/shop.sql
Tables  1
Views   0
Выполнить SQL из файла
mysql load db/mysql.sql
MySQL error 1050: Table 'products' already exists
Сохранить текущее подключение в .lil.key; по умолчанию использовать имя базы
mysql -m demo
Saved  demo
Показать сохранённые подключения или сведения об одном без вывода пароля
mysql -k
No saved connections
Подключиться через сохранённое подключение
mysql -K missing
Saved connection not found: missing
Удалить сохранённое подключение
mysql -M missing
Saved connection not found: missing
Отключиться и удалить данные подключения
mysql -e
+
Синоним @mysql
mariadb -t
products	BASE TABLE
Подключиться; пароль запрашивается отдельно, если не указан -n
mysql -c localhost demo shop -p 99999
Invalid database port

Файл из примера: 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.42026-11-01

Производственная доработка

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