在数据库管理中,MySQL 是一款广泛使用的开源关系型数据库管理系统,而命令行操作是其核心功能之一,通过 mysqldos
命令(通常指在 Windows 环境下通过命令提示符或 PowerShell 运行 MySQL 命令),管理员可以高效地执行数据库的连接、查询、备份、权限管理等操作,本文将详细介绍 mysqldos
命令的使用方法、常见场景及注意事项,帮助用户掌握这一实用工具。

MySQL 命令行连接与基础操作
在 Windows 环境下,用户可以通过 mysql
命令(需确保 MySQL 的 bin
目录已添加到系统环境变量)连接到 MySQL 服务器,基本语法为:
mysql -h [主机名] -u [用户名] -p[密码] [数据库名]
连接到本地 MySQL 服务器的 test
数据库:
mysql -h localhost -u root -ptest123 test
连接成功后,会显示 mysql>
提示符,此时可输入 SQL 语句执行操作,查看当前数据库的所有表:
SHOW TABLES;
若需退出命令行界面,可输入 EXIT;
或 QUIT;
。

数据库与表的创建与管理
创建数据库与表
使用 CREATE DATABASE
语句创建数据库,
CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
创建表时需定义字段名、数据类型及约束,
USE mydb; CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL, email VARCHAR(100) UNIQUE, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
数据操作(增删改查)
- 插入数据:
INSERT INTO users (username, email) VALUES ('john_doe', 'john@example.com');
- 查询数据:
SELECT * FROM users WHERE username = 'john_doe';
- 更新数据:
UPDATE users SET email = 'john_new@example.com' WHERE id = 1;
- 删除数据:
DELETE FROM users WHERE id = 1;
数据库备份与恢复
备份数据库
使用 mysqldump
命令(常被误称为 mysqldos
)备份整个数据库或特定表:
mysqldump -u [用户名] -p[密码] [数据库名] > backup.sql
备份 mydb
数据库到文件 backup.sql
:

mysqldump -u root -ptest123 mydb > backup.sql
若需备份多个数据库,可使用 --databases
参数;备份所有数据库则使用 --all-databases
。
恢复数据库
通过 mysql
命令将备份文件导入数据库:
mysql -u [用户名] -p[密码] [数据库名] < backup.sql
将 backup.sql
恢复到 mydb
数据库:
mysql -u root -ptest123 mydb < backup.sql
用户权限管理
MySQL 的权限管理通过 GRANT
和 REVOKE
语句实现,创建新用户并授予特定权限:
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password'; GRANT SELECT, INSERT ON mydb.* TO 'newuser'@'localhost'; FLUSH PRIVILEGES; -- 刷新权限使配置生效
撤销权限时使用 REVOKE
语句:
REVOKE INSERT ON mydb.* FROM 'newuser'@'localhost';
常见问题与解决方案
忘记 MySQL root 密码
- 停止 MySQL 服务(
net stop mysql
)。 - 跳过权限表启动 MySQL:
mysqld --skip-grant-tables
- 无密码登录后执行以下命令重置密码:
UPDATE mysql.user SET authentication_string=PASSWORD('newpassword') WHERE User='root'; FLUSH PRIVILEGES;
- 重启 MySQL 服务并测试新密码。
中文乱码问题
通常因字符集不匹配导致,可通过以下步骤解决:
- 检查数据库和表的字符集:
SHOW VARIABLES LIKE 'character_set_%';
- 创建数据库或表时明确指定字符集为
utf8mb4
:CREATE DATABASE mydb CHARACTER SET utf8mb4;
相关操作技巧
- 批量执行 SQL 文件:
mysql -u root -ptest123 mydb < script.sql
- 导出查询结果:
mysql -u root -ptest123 -e "SELECT * FROM users;" mydb > output.txt
- 查看 MySQL 版本:
mysql --version
相关问答 FAQs
Q1: 如何在命令行中查看 MySQL 的运行状态?
A1: 可通过以下命令查看 MySQL 服务状态:
net start | findstr mysql # Windows systemctl status mysql # Linux
或登录 MySQL 后执行:
SHOW STATUS;
Q2: 备份数据库时如何排除特定表?
A2: 使用 --ignore-table
参数指定需排除的表,
mysqldump -u root -ptest123 mydb --ignore-table=mydb.users > backup.sql
此命令将备份 mydb
数据库的所有表,但排除 users
表。