mariadb数据库管理三剑客-show、set、use
MariaDB 中的 SHOW、USE 和 SET 是常用的基础命令,用于数据库管理、上下文切换和参数配置。
1.SHOW命令
用于显示数据库、表、列、状态等信息。
常见用法:
- 显示所有数据库: SHOW DATABASES;
- 显示当前数据库中的表: SHOW TABLES;
- 显示表结构:
SHOW CREATE TABLE table_name; -- 显示建表语句
SHOW COLUMNS FROM table_name; -- 显示表的列信息(等同 DESC table_name)
- 显示存储引擎状态:
SHOW ENGINES; -- 所有支持的引擎
SHOW ENGINE InnoDB STATUS; -- 查看 InnoDB 状态
- 显示进程和连接:
SHOW PROCESSLIST; -- 查看当前连接的会话
SHOW FULL PROCESSLIST; -- 详细信息
- 显示权限:
SHOW GRANTS FOR 'user'@'host'; -- 查看用户权限
- 显示系统变量:
SHOW VARIABLES LIKE 'max_connections'; -- 查看指定变量
SHOW GLOBAL VARIABLES; -- 所有全局变量
- MariaDB 特有:
SHOW STATUS LIKE 'wsrep%'; -- Galera 集群状态(仅 Galera 集群)
SHOW SEQUENCES; -- 显示所有序列(SEQUENCE 引擎)
2.USE命令
切换当前操作的数据库。
语法:
USE database_name;
示例:
USE my_database; -- 切换到名为 `my_database` 的数据库
注意事项:
- 如果数据库不存在,会报错 ERROR 1049 (42000): Unknown database。
- 在脚本中建议显式指定数据库,或在查询中用 database.table 格式(如SELECT * FROM my_db.users)。
3.SET命令
用于配置系统变量、用户变量或会话参数。
常见用法:
- 设置会话变量(仅当前连接有效):
SET SESSION sql_mode = 'STRICT_TRANS_TABLES'; -- 设置 SQL 模式
SET autocommit = 0; -- 关闭自动提交
- 设置全局变量(需管理员权限,重启后可能失效):
SET GLOBAL max_connections = 200; -- 修改最大连接数
- 设置用户变量:
SET @my_var = 100; -- 定义变量
SELECT @my_var; -- 输出 100
- MariaDB 特有参数:
SET GLOBAL wsrep_on = 1; -- 启用 Galera 同步(Galera 集群)
SET sql_log_bin = 0; -- 临时禁用二进制日志(谨慎使用)
查看变量值:
SELECT @@GLOBAL.max_connections; -- 全局变量
SELECT @@SESSION.sql_mode; -- 会话变量
注意事项:
- SET GLOBAL 需要 SUPER 权限。
- 全局变量修改可能需重启服务才能永久生效(建议在配置文件中修改,如 my.cnf)。
- SHOW 命令的结果可通过 LIKE 或 WHERE 过滤(如SHOW VARIABLES WHERE Variable_name LIKE '%timeout%')。