MySQL常用命令实操指南:从建库到权限管理
本文详细梳理MySQL基础操作命令,包括数据库与数据表的创建删除、数据插入更新、SQL文件导入等高频任务,并针对默认账户安全隐患提供密码重置方案,同时解析各类权限指令的用法。
结果或目标
熟练掌握MySQL命令行工具的核心指令,能够独立执行数据库结构的搭建、数据的维护以及用户权限的安全分配,解决日常开发与运维中的常见管理需求。
准备条件
- 环境:已安装的MySQL服务器(Windows服务版或Linux守护进程版)。
- 连接:具备管理员权限(root)或通过命令行客户端访问服务器的能力。
- 安全前置:对于新安装或默认配置的MySQL,建议优先执行“隐藏匿名账户”和“设置root密码”操作,消除潜在的安全隐患。
真实操作顺序
第1步:启动MySQL服务
目的:确保数据库后台进程运行,接受客户端连接。
- Windows:若未自动启动,可在终端执行
net start mysql。 - Linux:需使用管理员权限执行
/etc/rc.d/init.d/mysqld start或使用 systemd 相关命令。
第2步:登录MySQL客户端
入口:系统终端或命令行窗口。
动作:使用以下格式登录,your_password为对应账户密码:
# 交互模式输入密码
mysql -uroot -p
# 直接指定密码登录(生产环境不建议明文暴露)
mysql -uroot -pyour_password
完成状态:命令行提示符变为 mysql>。
第3步:数据库与表的基础管理
入口:MySQL命令行客户端。
参数与动作:
- 查看现有资源:
- 列出所有数据库:
SHOW DATABASES; - 切换至指定库:
USE MYSQLDATA; - 查看当前库中所有表:
SHOW TABLES;
- 列出所有数据库:
- 新建数据库与表:
- 创建库:
CREATE DATABASE MYSQLDATA; - 创建表(示例):
CREATE TABLE MYTABLE (name VARCHAR(20), sex CHAR(1)); - 查看表结构:
DESCRIBE MYTABLE;
- 创建库:
- 删除与清空:
- 彻底删除表:
DROP TABLE MYTABLE; - 清空表中所有数据但保留结构:
DELETE FROM MYTABLE;
- 彻底删除表:
第4步:数据内容维护(DML)
目的:向表中写入、读取或修正数据。
动作:
- 插入记录:
INSERT INTO MYTABLE VALUES ('hyq', 'M'); - 更新数据:注意务必添加
WHERE子句防止误全表更新。UPDATE MYTABLE SET sex='F' WHERE name='hyq';
第5步:数据导入与批量加载
目的:将外部文本或脚本文件导入数据库。
- 导入SQL脚本:
1. 先选中数据库:USE database_name;
2. 执行源文件:SOURCE d:/mysql.sql;(路径需符合操作系统规范) - 本地数据文件导入:
将文本文件装入特定表:LOAD DATA LOCAL INFILE "D:/mysql.txt" INTO TABLE MYTABLE;
第6步:安全加固与权限分配
目的:清理默认高风险账户并赋予用户精确的操作权限。
操作:登录 mysql 数据库进行底层用户表修改:
- 清理匿名用户:
DELETE FROM User WHERE User=""; - 设置Root密码:
UPDATE User SET Password=PASSWORD('newpassword') WHERE User='root'; - 刷新权限:(若通过直接修改user表变更,通常需重启服务或执行
FLUSH PRIVILEGES;)
权限管理详解
使用 GRANT 命令为用户分配权限,语法格式为:GRANT 权限 ON 数据库对象 TO 用户名@主机 IDENTIFIED BY "密码";
1. 权限级别说明
- 全局管理权限:
-FILE: 在服务器上读写文件。
-PROCESS: 查看其他用户线程。
-RELOAD: 重载配置与日志。
-SHUTDOWN: 关闭服务。 - 数据库/表/列级权限:
-ALTER: 修改表结构。
-CREATE: 新建表或库。
-DELETE / DROP / INDEX / INSERT / SELECT / UPDATE: 对应的增删改查及索引操作权限。 - 特殊权限:
-ALL: 等同于ROOT的所有权限。
-USAGE: 仅允许登录,无其他实际操作权。
2. 授权示例
赋予对指定库所有表的完整权限:GRANT ALL ON mydb.* TO NewUserName@HostName IDENTIFIED BY "password";
赋予对指定单张表的部分读写权限:GRANT SELECT, INSERT, UPDATE ON mydb.TestTable TO NewUserName@HostName IDENTIFIED BY "password";
原文有依据的排错
- 中文引号问题:在编写SQL语句时,必须使用英文半角双引号
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









