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,重设密码后再正常启动;具体步骤以对应版本官方文档为准。

相关教程

相关文章

官方资料来源