mysql

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

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

概要

mysqlMySQL と 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

現在の 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 [options] · mysql : <sql>

操作モデル

よく使う形式はローカルリファレンスにまとまっています。短縮操作は確認と小規模な変更を担当し、高度な操作では各データベースのネイティブ構文をそのまま使えます。

バックアップと復元

dump/load の形式はドライバーごとに異なります。エンジンの全機能を含む完全なバックアップが必要な場合は、サーバー側のネイティブツールを使ってください。

安全性

パスワードは非表示入力で受け取り、コマンド履歴には保存しません。可能な限り権限を限定したアカウントを利用してください。

-charset で接続文字セットを選択できます。100000 行を超えるテーブルは、不完全なファイルを書き出す代わりにエクスポートを拒否します。

保存済み接続

-m を使わない限り、接続データは現在の PHP セッションだけに保持されます。-m [name] はプロファイルを保護された .lil.key(0600)へ明示的に保存し、-K <name> はそれを使って再接続、-k は保存済みパスワードを表示せずに一覧または詳細を確認し、-M <name> は1件削除します。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 に追加し、一覧では保存済みパスワードを表示しません。