速查参考
常用 SQL、系统变量、命令行工具的快速查找
常用命令行
| 命令 | 用途 |
|---|---|
mariadb | 客户端(旧名 mysql,两者都可用) |
mariadb-dump | 逻辑备份(旧名 mysqldump) |
mariabackup | 物理热备份 |
mariadb-admin | 管理(重启、刷新、状态) |
mariadb-upgrade | 跨版本升级后必跑 |
mariadb-check | 检查/修复表 |
mariadb-secure-installation | 首次安装后跑一次 |
常用 SQL 速查
-- 看版本与编译信息
SELECT VERSION(), @@version_comment;
-- 列出库
SHOW DATABASES;
-- 列出表
SHOW TABLES;
SHOW FULL TABLES FROM mydb;
-- 看建表语句
SHOW CREATE TABLE orders;
-- 看表结构
DESC orders;
SHOW FULL COLUMNS FROM orders;
-- 看索引
SHOW INDEXES FROM orders;
-- 看表大小
SELECT table_schema, table_name,
ROUND(data_length/1024/1024, 2) AS data_mb,
ROUND(index_length/1024/1024, 2) AS idx_mb,
table_rows
FROM information_schema.tables
WHERE table_schema NOT IN ('mysql','information_schema','performance_schema','sys')
ORDER BY data_length + index_length DESC;
-- 看正在跑的连接
SHOW FULL PROCESSLIST;
-- 杀掉某个连接
KILL 12345;
-- 看变量
SHOW VARIABLES LIKE 'innodb%';
SHOW GLOBAL STATUS LIKE 'Threads%';
-- 看用户和权限
SELECT user, host FROM mysql.user;
SHOW GRANTS FOR 'alice'@'%';重要系统变量
-- 缓冲池
SHOW VARIABLES LIKE 'innodb_buffer_pool_size';
-- 连接数
SHOW VARIABLES LIKE 'max_connections';
-- 字符集
SHOW VARIABLES LIKE 'character_set%';
SHOW VARIABLES LIKE 'collation%';
-- 时区
SHOW VARIABLES LIKE 'time_zone';
SHOW VARIABLES LIKE 'system_time_zone';
-- SQL 模式(影响 DDL/DML 严格程度)
SELECT @@sql_mode;用户与权限模板
-- 只读用户(给 BI / Agent 用)
CREATE USER 'readonly'@'%' IDENTIFIED BY 'strong-pass';
GRANT SELECT, SHOW VIEW ON appdb.* TO 'readonly'@'%';
-- 应用账号(最小权限)
CREATE USER 'app'@'10.%' IDENTIFIED BY 'strong-pass';
GRANT SELECT, INSERT, UPDATE, DELETE ON appdb.* TO 'app'@'10.%';
-- 备份账号
CREATE USER 'backup'@'localhost' IDENTIFIED BY 'strong-pass';
GRANT RELOAD, PROCESS, LOCK TABLES, REPLICATION CLIENT, SHOW VIEW, EVENT, TRIGGER
ON *.* TO 'backup'@'localhost';
GRANT BACKUP_ADMIN ON *.* TO 'backup'@'localhost'; -- MariaDB 10.5+
FLUSH PRIVILEGES;连接 URI 模板
# 通用
mysql://USER:PASS@HOST:3306/DBNAME?charset=utf8mb4
# Python (mysqlclient / PyMySQL)
mysql+pymysql://app:pass@host:3306/appdb?charset=utf8mb4
# Node.js (mysql2)
const url = 'mysql://app:pass@host:3306/appdb?charset=utf8mb4';
# Go (go-sql-driver/mysql)
app:pass@tcp(host:3306)/appdb?charset=utf8mb4&parseTime=true&loc=Local
# JDBC
jdbc:mariadb://host:3306/appdb?useUnicode=true&characterEncoding=utf8端口与协议
- 默认端口:3306(与 MySQL 一致)
- 协议层:兼容 MySQL,所有 MySQL 驱动可直连
- TLS:
--ssl或 URI 加?sslmode=required