MySQL 常用命令手册
更新于 2026年8月14日
适用人群:在服务器上管理 MySQL / MariaDB 数据库的站长与开发者。
核心概念
登录与连接
mysql -u root -p # 本机登录
mysql -h 127.0.0.1 -P 3306 -u user -p dbname # 指定主机 / 端口 / 库
库与表
| 操作 | 命令 |
|---|---|
| 查看所有库 | SHOW DATABASES; |
| 创建库(utf8mb4) | CREATE DATABASE app DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci; |
| 切换库 | USE app; |
| 查看所有表 | SHOW TABLES; |
| 查看表结构 | DESC users; 或 SHOW CREATE TABLE users; |
| 删除库 / 表 | DROP DATABASE app; / DROP TABLE users; |
实际示例
用户与授权
-- 创建用户(限制来源主机)
CREATE USER 'app'@'127.0.0.1' IDENTIFIED BY '强密码';
-- 只授予某个库的必要权限(最小授权)
GRANT SELECT, INSERT, UPDATE, DELETE ON app.* TO 'app'@'127.0.0.1';
FLUSH PRIVILEGES;
-- 查看某用户权限 / 修改密码
SHOW GRANTS FOR 'app'@'127.0.0.1';
ALTER USER 'app'@'127.0.0.1' IDENTIFIED BY '新密码';
导入导出
# 导出单个库
mysqldump -u root -p app > app.sql
# 导入
mysql -u root -p app < app.sql
状态排查
SHOW PROCESSLIST; -- 当前连接与执行中的语句
SHOW VARIABLES LIKE 'max_connections';
SHOW STATUS LIKE 'Threads_connected';
常见错误
- ⚠️用 root 账号直连业务,出问题影响面大——应按库创建最小授权账号
- ⚠️授权时用 `'user'@'%'` 允许任意主机连接,扩大了暴露面
- ⚠️建库不指定字符集,默认可能为 latin1 导致中文乱码(应指定 utf8mb4)
对应工具
常见问题
GRANT 后为什么权限没生效?
多数情况下 `GRANT` 会立即生效;若改的是通过 INSERT 直接写权限表,则需要执行 `FLUSH PRIVILEGES;` 重新加载权限。
忘记 root 密码怎么办?
通常需以 `--skip-grant-tables` 安全模式启动 MySQL,重设密码后再正常启动;具体步骤以对应版本官方文档为准。
相关教程
相关文章
官方资料来源