MariaDB 中文社区

速查参考

常用 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

外部资源

本页目录