mysql

mysql は MySQL / MariaDB に接続し、スキーマと行を確認して対象を絞った変更、表のエクスポート、ネイティブ SQL、SQL ダンプを扱います。

データベースバージョン 1.1.4安定版エイリアス: mariadb
lil-terminal

概要

mysql は MySQL と MariaDB の共通ドライバーです。パスワードは履歴に残らず、よく使うスキーマ・行操作は短いオプションで行え、: の後にはネイティブ SQL をそのまま使えます。

テーブル、行、ネイティブ SQL

MySQL と MariaDB はクライアント/サーバー型のリレーショナルデータベースです。「database → table → row/column → index/transaction」と考えると理解しやすく、table schema がデータの形を制約し、SQL はファイル編集手順ではなく行の集合を扱います。mysql ドライバーは MySQL と MariaDB の両方を扱い、固有の SQL は : の後で利用できます。

構文

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

リファレンス

mysql [options] · mysql : <sql>

Connect to MySQL or MariaDB, inspect and change tables, execute SQL, and export or back up server data.

用途

mysql はローカルの SQLite ファイルではなく MySQL / MariaDB サーバーに接続します。mariadb も同じドライバーです。

コマンド一覧

mysql [options] · mysql : <sql>

@more

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 オブジェクトから1行追加

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

一致する行を JSON オブジェクトで更新

-d <table> <field> <value>

一致する行を削除

-m [name]

現在の接続を .lil.key に保存。既定名はデータベース名

-M <name>

保存済み接続を削除

-k [name]

保存済み接続を一覧表示、またはパスワードを表示せずに1件確認

-K <name>

保存済み接続を使って接続

-e

切断して接続情報を消去

mysql : <sql>

ネイティブ SQL を実行

mysql load <file.sql>

ファイルの SQL を実行

mysql dump [file.sql] [-f]

スキーマとデータのダンプを作成

mariadb [options]

@mysql のエイリアス

操作手順

mysql -c localhost demo shop のパスワードは別の非表示入力欄で求められます。-n はパスワードなし、-p はポート、-s は socket、-charset は文字セットです。-t/-s/-n/-f で参照し、-o で書き出し、mysql : で SQL を実行、dump/load で SQL スクリプトを扱います。

制限と安全性

-a/-w/-d は実データを変更し、複数行に影響することがあります。権限を絞り、先にバックアップしてください。-m は認証情報を .lil.key に保存する場合があります。書き出しは10万行、load は32 MiBまで。MySQLi とサーバーへの接続が必要です。

インタラクティブな 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 オブジェクトから1行追加
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
保存済み接続を一覧表示、またはパスワードを表示せずに1件確認
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 ダンプを扱います。