MySQL数据库通过CMD命令行进行操作是数据库管理和开发中的基础技能,尤其在服务器环境或无图形界面的场景下尤为重要,以下将详细介绍MySQL在CMD中的常用命令,涵盖连接数据库、数据操作、表管理、用户权限等核心功能,并结合表格整理关键命令格式,帮助用户系统掌握。

连接与退出MySQL数据库
在CMD中操作MySQL的第一步是建立与数据库服务器的连接,需确保MySQL服务已启动,且系统环境变量中包含MySQL的bin目录路径。
- 连接本地MySQL:
命令格式:mysql -u 用户名 -p
示例:mysql -u root -p
执行后需输入密码,成功后进入MySQL命令行界面,提示符为mysql>
。 - 连接远程MySQL:
命令格式:mysql -h 主机地址 -P 端口号 -u 用户名 -p
示例:mysql -h 192.168.1.100 -P 3306 -u admin -p
需确保远程服务器允许IP访问,并防火墙开放对应端口。 - 退出MySQL:
输入exit;
或quit;
并回车,或使用快捷键Ctrl+C
强制退出。
数据库操作
数据库是存储数据的容器,常用操作包括创建、查看、选择和删除。
- 创建数据库:
命令:CREATE DATABASE 数据库名 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
示例:CREATE DATABASE mydb CHARACTER SET utf8mb4;
utf8mb4
支持emoji和特殊字符,推荐使用。 - 查看所有数据库:
命令:SHOW DATABASES;
- 选择数据库:
命令:USE 数据库名;
示例:USE mydb;
执行后后续命令将在该数据库下生效。 - 删除数据库:
命令:DROP DATABASE 数据库名;
警告:此操作不可逆,将删除数据库及所有数据。
数据表操作
数据表是数据库的核心结构,涉及创建、修改、查看和删除。
- 创建数据表:
命令:CREATE TABLE 表名 ( 列名1 数据类型 [约束], 列名2 数据类型 [约束], ... );
示例:
(图片来源网络,侵删)CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL, email VARCHAR(100) UNIQUE, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
常用数据类型:
INT
(整数)、VARCHAR
(字符串)、TEXT
(长文本)、TIMESTAMP
(时间戳)。
常用约束:PRIMARY KEY
(主键)、NOT NULL
(非空)、UNIQUE
(唯一)、DEFAULT
(默认值)。 - 查看表结构:
命令:DESC 表名;
或SHOW COLUMNS FROM 表名;
- 修改表结构:
- 添加列:
ALTER TABLE 表名 ADD COLUMN 列名 数据类型;
- 修改列:
ALTER TABLE 表名 MODIFY COLUMN 列名 新数据类型;
- 删除列:
ALTER TABLE 表名 DROP COLUMN 列名;
- 添加列:
- 删除表:
命令:DROP TABLE 表名;
数据操作(CRUD)
- 插入数据(Create):
命令:INSERT INTO 表名 (列1, 列2) VALUES (值1, 值2);
示例:INSERT INTO users (username, email) VALUES ('john', 'john@example.com');
- 查询数据(Read):
- 全表查询:
SELECT * FROM 表名;
- 条件查询:
SELECT 列名 FROM 表名 WHERE 条件;
示例:SELECT username FROM users WHERE id = 1;
- 排序与分页:
SELECT * FROM 表名 ORDER BY 列名 ASC/DESC LIMIT 起始位置, 数量;
- 全表查询:
- 更新数据(Update):
命令:UPDATE 表名 SET 列名=新值 WHERE 条件;
示例:UPDATE users SET email='new@example.com' WHERE id=1;
注意:务必添加WHERE
条件,否则将更新全表数据。 - 删除数据(Delete):
命令:DELETE FROM 表名 WHERE 条件;
示例:DELETE FROM users WHERE id=1;
用户与权限管理
- 创建用户:
命令:CREATE USER '用户名'@'主机' IDENTIFIED BY '密码';
示例:CREATE USER 'dev'@'localhost' IDENTIFIED BY 'DevPass123!';
- 授权:
命令:GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机';
示例:GRANT SELECT, INSERT ON mydb.* TO 'dev'@'localhost';
权限类型:SELECT
(查询)、INSERT
(插入)、UPDATE
(更新)、DELETE
(删除)、ALL
(所有权限)。 - 刷新权限:
命令:FLUSH PRIVILEGES;
- 撤销权限:
命令:REVOKE 权限 ON 数据库名.表名 FROM '用户名'@'主机';
常用命令速查表
功能分类 | 命令格式 | 说明 |
---|---|---|
连接数据库 | mysql -u 用户名 -p |
本地连接,需输入密码 |
创建数据库 | CREATE DATABASE 数据库名; |
默认字符集latin1,建议指定utf8mb4 |
选择数据库 | USE 数据库名; |
后续操作基于该数据库 |
查看表结构 | DESC 表名; |
显示列名、类型、约束等信息 |
插入数据 | INSERT INTO 表名 VALUES (值1, 值2); |
值顺序需与列顺序一致 |
条件查询 | SELECT * FROM 表名 WHERE 列名='值'; |
支持, > , < , LIKE 等条件运算符 |
更新数据 | UPDATE 表名 SET 列名='新值' WHERE 条件; |
无WHERE条件将更新全表 |
删除数据 | DELETE FROM 表名 WHERE 条件; |
无WHERE条件将清空表数据 |
创建用户 | CREATE USER '用户名'@'主机' IDENTIFIED BY '密码'; |
主机可指定为localhost 或(任意主机) |
授权 | GRANT ALL ON 数据库名.* TO '用户名'@'主机'; |
授予指定数据库的所有权限 |
相关问答FAQs
问题1:CMD连接MySQL时提示“Access denied for user 'root'@'localhost'”如何解决?
解答:该错误通常由密码错误或用户权限不足导致,解决步骤:
- 确认密码输入是否正确,注意大小写和特殊字符。
- 若忘记密码,可通过跳过权限表的方式重置:
- 停止MySQL服务:
net stop mysql
- 以安全模式启动:
mysqld --skip-grant-tables
- 另开CMD窗口登录MySQL(无需密码),执行:
USE mysql; UPDATE user SET password=PASSWORD('新密码') WHERE user='root'; FLUSH PRIVILEGES;
- 重启MySQL服务,使用新密码登录。
- 停止MySQL服务:
问题2:如何通过CMD导出和导入MySQL数据库?
解答:
- 导出数据库(使用
mysqldump
工具):- 导出整个数据库:
mysqldump -u 用户名 -p 数据库名 > 文件名.sql
示例:mysqldump -u root -p mydb > mydb_backup.sql
- 导出特定表:
mysqldump -u 用户名 -p 数据库名 表名1 表名2 > 文件名.sql
- 导出整个数据库:
- 导入数据库:
- 先创建空数据库:
mysql -u 用户名 -p -e "CREATE DATABASE 数据库名;"
- 导入数据:
mysql -u 用户名 -p 数据库名 < 文件名.sql
注意:导入前确保目标数据库不存在或为空,避免数据冲突。
- 先创建空数据库:
通过以上命令和操作指南,用户可高效完成MySQL数据库的基础管理任务,实际操作中需注意数据备份与权限控制,确保数据库安全稳定运行。
