MySQL 是一款广泛使用的开源关系型数据库管理系统,其命令行工具是数据库管理员和开发人员进行数据库操作的核心接口,掌握 MySQL 命令手册中的常用命令,能够高效地完成数据库的创建、查询、更新、备份等任务,以下从连接数据库、用户管理、数据库操作、表操作、数据操作、权限管理、备份与恢复等方面详细介绍 MySQL 的常用命令。

连接数据库
要使用 MySQL 命令行工具,首先需要连接到 MySQL 服务器,基本命令为:
mysql -h 主机名 -u 用户名 -p
-h 指定主机名(默认为 localhost),-u 指定用户名,-p 表示需要输入密码,连接成功后,会出现 mysql> 提示符,若要连接到特定数据库,可添加 -D 数据库名 参数,或在连接后使用 USE 数据库名; 切换数据库。
用户管理
MySQL 的用户管理包括创建用户、修改密码、删除用户等操作,创建用户使用 CREATE USER 语句:
CREATE USER '用户名'@'主机' IDENTIFIED BY '密码';
创建本地用户 testuser 密码为 123456:

CREATE USER 'testuser'@'localhost' IDENTIFIED BY '123456';
修改用户密码使用 ALTER USER 或 SET PASSWORD:
ALTER USER '用户名'@'主机' IDENTIFIED BY '新密码';
删除用户使用 DROP USER:
DROP USER '用户名'@'主机';
数据库操作
数据库操作包括创建、删除、查看数据库等,创建数据库使用 CREATE DATABASE:
CREATE DATABASE 数据库名 [CHARSET 字符集];
创建使用 utf8mb4 字符集的数据库 mydb:

CREATE DATABASE mydb DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
删除数据库使用 DROP DATABASE(注意:此操作会删除数据库及所有数据):
DROP DATABASE 数据库名;
查看所有数据库使用 SHOW DATABASES;,查看当前数据库使用 SELECT DATABASE();。
表操作
表操作是数据库管理的核心,包括创建表、修改表结构、删除表等,创建表使用 CREATE TABLE,语法如下:
CREATE TABLE 表名 (
列名1 数据类型 [约束],
列名2 数据类型 [约束],
...
[表约束]
);
创建用户表 users:
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
email VARCHAR(100) UNIQUE,
age INT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
修改表结构使用 ALTER TABLE,如添加列:
ALTER TABLE 表名 ADD COLUMN 列名 数据类型;
修改列数据类型:
ALTER TABLE 表名 MODIFY COLUMN 列名 新数据类型;
删除列:
ALTER TABLE 表名 DROP COLUMN 列名;
删除表使用 DROP TABLE:
DROP TABLE 表名;
查看表结构使用 DESC 表名; 或 SHOW COLUMNS FROM 表名;。
数据操作
数据操作包括插入、查询、更新、删除数据,简称 CRUD,插入数据使用 INSERT INTO:
INSERT INTO 表名 (列名1, 列名2, ...) VALUES (值1, 值2, ...);
INSERT INTO users (username, email, age) VALUES ('Alice', 'alice@example.com', 25);
查询数据使用 SELECT,基本语法:
SELECT 列名 FROM 表名 [WHERE 条件] [ORDER BY 列名] [LIMIT 数量];
查询所有用户:
SELECT * FROM users;
查询年龄大于 30 的用户并按年龄降序排列:
SELECT * FROM users WHERE age > 30 ORDER BY age DESC;
更新数据使用 UPDATE:
UPDATE 表名 SET 列名1 = 值1, 列名2 = 值2 WHERE 条件;
更新用户 Alice 的年龄:
UPDATE users SET age = 26 WHERE username = 'Alice';
删除数据使用 DELETE:
DELETE FROM 表名 WHERE 条件;
删除年龄小于 20 的用户:
DELETE FROM users WHERE age < 20;
权限管理
MySQL 的权限管理通过 GRANT 和 REVOKE 实现,授予权限使用 GRANT:
GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机';
授予 testuser 用户对 mydb 数据库的所有权限:
GRANT ALL PRIVILEGES ON mydb.* TO 'testuser'@'localhost';
刷新权限使授权生效:
FLUSH PRIVILEGES;
撤销权限使用 REVOKE:
REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机';
备份与恢复
MySQL 的备份工具主要是 mysqldump,备份数据库使用:
mysqldump -u 用户名 -p 数据库名 > 备份文件.sql
备份 mydb 数据库:
mysqldump -u root -p mydb > mydb_backup.sql
备份所有数据库:
mysqldump -u root -p --all-databases > all_backup.sql
恢复数据库使用 mysql 命令:
mysql -u 用户名 -p 数据库名 < 备份文件.sql
恢复 mydb 数据库:
mysql -u root -p mydb < mydb_backup.sql
常用数据类型与约束
MySQL 的常用数据类型包括数值型(INT、DECIMAL)、字符串型(VARCHAR、TEXT)、日期时间型(DATE、TIMESTAMP)等,常见约束包括:
PRIMARY KEY:主键,唯一标识表中的每一行。UNIQUE:唯一约束,确保列值唯一。NOT NULL:非空约束,列值不能为空。DEFAULT:默认值,当未指定值时使用默认值。AUTO_INCREMENT:自增,通常用于主键。
相关问答FAQs
Q1:如何查看 MySQL 当前版本?
A1:可以通过以下命令查看 MySQL 版本:
SELECT VERSION();
或在命令行中使用:
mysql -V
Q2:忘记 MySQL root 密码如何重置?
A2:重置 root 密码的步骤如下:
- 停止 MySQL 服务(Linux 下使用
sudo systemctl stop mysql,Windows 下通过服务管理器停止)。 - 跳过权限表启动 MySQL:
sudo mysqld_safe --skip-grant-tables &
- 无密码登录 MySQL:
mysql -u root
- 执行以下命令重置密码(注意 MySQL 8.0+ 需使用
alter user):ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码'; FLUSH PRIVILEGES;
- 重启 MySQL 服务,使用新密码登录。
