常用的 MySQL 命令手册

type
status
date
slug
summary
tags
category
icon
password

一、连接与退出 MySQL

命令
描述
示例
mysql -u [用户名] -p
使用密码连接本地 MySQL
mysql -u root -p
mysql -h [主机名] -u [用户] -p
连接远程 MySQL 服务器
mysql -h 192.168.1.100 -u root -p
mysql -u [用户] -p [数据库名]
连接并直接使用某个数据库
mysql -u root -p blog
exitquit\\q
退出 MySQL 命令行
exit

二、数据库操作

命令
描述
示例
SHOW DATABASES;
显示所有数据库
SHOW DATABASES;
CREATE DATABASE [库名];
创建新数据库
CREATE DATABASE mydb;
DROP DATABASE [库名];
删除数据库
DROP DATABASE old_db;
USE [数据库名];
选择/切换当前操作的数据库
USE blog;
SELECT DATABASE();
显示当前正在使用的数据库
SELECT DATABASE();

三、用户与权限管理

命令
描述
示例
SELECT User, Host FROM mysql.user;
查看所有用户
SELECT User, Host FROM mysql.user;
CREATE USER '[用户名]'@'[主机]' IDENTIFIED BY '[密码]';
创建新用户
CREATE USER 'john'@'localhost' IDENTIFIED BY 'secret';
DROP USER '[用户名]'@'[主机]';
删除用户
DROP USER 'john'@'localhost';
GRANT [权限] ON [数据库].[表] TO '[用户]'@'[主机]';
授予用户权限
GRANT ALL ON blog.* TO 'john'@'localhost';
REVOKE [权限] ON [数据库].[表] FROM '[用户]'@'[主机]';
撤销用户权限
REVOKE DELETE ON blog.* FROM 'john'@'localhost';
SHOW GRANTS FOR '[用户]'@'[主机]';
查看用户的权限
SHOW GRANTS FOR 'john'@'localhost';
FLUSH PRIVILEGES;
刷新权限(授权后必须执行)
FLUSH PRIVILEGES;
ALTER USER '[用户]'@'[主机]' IDENTIFIED BY '[新密码]';
修改用户密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpass';

四、表操作 (DDL)

命令
描述
示例
SHOW TABLES;
显示当前数据库中的所有表
SHOW TABLES;
DESCRIBE [表名];DESC [表名];
查看表的结构
DESCRIBE users;
CREATE TABLE [表名] (...);
创建新表
CREATE TABLE users (id INT, name VARCHAR(50));
DROP TABLE [表名];
删除表
DROP TABLE temp_table;
ALTER TABLE [表名] ADD [列名] [类型];
添加列
ALTER TABLE users ADD email VARCHAR(100);
ALTER TABLE [表名] DROP COLUMN [列名];
删除列
ALTER TABLE users DROP COLUMN email;
ALTER TABLE [表名] MODIFY COLUMN [列名] [新类型];
修改列的数据类型
ALTER TABLE users MODIFY COLUMN name VARCHAR(100);
ALTER TABLE [表名] RENAME TO [新表名];
重命名表
ALTER TABLE users RENAME TO customers;
SHOW CREATE TABLE [表名];
显示创建表的 SQL 语句
SHOW CREATE TABLE users;
TRUNCATE TABLE [表名];
清空表(删除所有数据,保留结构)
TRUNCATE TABLE log_data;

五、 数据操作 (DML) - 增删改查 (CRUD)

1. 查询 (SELECT)

命令
描述
SELECT * FROM [表名];
查询表中所有数据
SELECT [列1], [列2] FROM [表名];
查询指定列
SELECT * FROM [表名] WHERE [条件];
带条件的查询
SELECT * FROM [表名] ORDER BY [列名] ASC/DESC;
排序查询结果
SELECT * FROM [表名] LIMIT [数量];
限制返回的记录数
SELECT DISTINCT [列名] FROM [表名];
返回唯一不同的值
SELECT COUNT(*) FROM [表名];
统计行数
... GROUP BY [列名] ...
分组统计
... LIKE '%pattern%' ...
模糊查询

2. 插入 (INSERT)

命令
描述
示例
INSERT INTO [表名] VALUES (v1, v2, ...);
插入完整的一行数据
INSERT INTO users VALUES (1, 'Alice');
INSERT INTO [表名] (col1, col2) VALUES (v1, v2);
插入指定列的数据
INSERT INTO users (name) VALUES ('Bob');

3. 更新 (UPDATE)

命令
描述
示例
UPDATE [表名] SET [列名]=[新值] WHERE [条件];
谨慎! 更新数据
UPDATE users SET name='Charlie' WHERE id=1;

4. 删除 (DELETE)

命令
描述
示例
DELETE FROM [表名] WHERE [条件];
谨慎! 删除数据
DELETE FROM users WHERE id=1;

六、 高级查询与性能

命令
描述
EXPLAIN SELECT ...
非常重要! 分析查询的执行计划,用于优化
SHOW INDEX FROM [表名];
查看表的索引
CREATE INDEX [索引名] ON [表名] ([列名]);
创建索引以提高查询速度
SELECT ... JOIN ... ON ...
多表关联查询 (INNER, LEFT, RIGHT JOIN)

七、 事务处理

命令
描述
START TRANSACTION;
开始一个事务
COMMIT;
提交事务,确认更改
ROLLBACK;
回滚事务,撤销所有更改
SET autocommit=0;
关闭自动提交(此后需手动 COMMIT

八、 备份与恢复

命令 (在系统Shell中执行)
描述
示例
mysqldump -u [用户] -p [数据库名] > backup.sql
备份单个数据库到文件
mysqldump -u root -p blog > blog_backup.sql
mysqldump -u [用户] -p --all-databases > full_backup.sql
备份所有数据库
mysqldump -u root -p --all-databases > full_backup.sql
mysql -u [用户] -p [数据库名] < backup.sql
从文件恢复数据库
mysql -u root -p new_blog < blog_backup.sql

九、 服务器状态与信息

命令
描述
SHOW STATUS;
显示服务器状态变量
SHOW VARIABLES;
显示服务器系统变量
SHOW PROCESSLIST;
查看当前正在执行的所有连接/进程
KILL [process_id];
杀死某个查询进程

十、 主从复制相关

命令
描述
SHOW MASTER STATUS;
在主库执行,查看二进制日志状态
SHOW SLAVE STATUS\\G
在从库执行,查看复制状态(\\G 格式化输出)
STOP SLAVE;
停止复制
START SLAVE;
启动复制
RESET SLAVE ALL;
彻底重置从库复制信息
Loading...