MySQL 5.6作为一款广泛使用的关系型数据库管理系统,其命令行工具是数据库管理员和开发人员进行日常操作的核心手段,掌握MySQL 5.6的命令不仅能够高效地管理数据库,还能确保数据的安全性和完整性,以下将详细介绍MySQL 5.6中常用的命令,涵盖数据库的连接、管理、表操作、数据操作、用户权限管理等多个方面,并通过表格形式对比部分命令的参数和功能,最后附上相关问答。

MySQL 5.6命令行连接与基础操作
要使用MySQL 5.6命令行工具,首先需要连接到MySQL服务器,常用的连接命令如下:
mysql -h [主机名] -u [用户名] -p[密码] -P [端口号] -D [数据库名]
-h
指定主机名(默认为localhost),-u
指定用户名,-p
后直接跟密码(注意无空格)或提示输入密码,-P
指定端口号(默认为3306),-D
指定连接后默认操作的数据库,连接到本地MySQL服务器的test数据库,用户名为root,密码为123456,命令为:
mysql -h localhost -u root -p123456 -D test
连接成功后,会显示MySQL的提示符mysql>
,此时可以输入SQL命令进行操作,基础命令包括:
SHOW DATABASES;
:列出所有数据库。USE [数据库名];
:切换到指定数据库。SHOW TABLES;
:列出当前数据库的所有表。DESC [表名];
:查看表结构(字段名、数据类型、是否为空、键信息等)。EXIT;
或QUIT;
:退出MySQL命令行。
数据库与表的管理命令
-
数据库管理
创建数据库:CREATE DATABASE [数据库名] [CHARACTER SET utf8mb4];
删除数据库:DROP DATABASE [数据库名];
修改数据库字符集:ALTER DATABASE [数据库名] CHARACTER SET utf8mb4;
(图片来源网络,侵删) -
表管理
创建表:CREATE TABLE [表名] ( [字段名1] [数据类型] [约束], [字段名2] [数据类型] [约束], ... PRIMARY KEY ([主键字段]) ) [表选项];
创建一个用户表(users),包含id(自增主键)、username(唯一)、password、email字段:
CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL UNIQUE, password VARCHAR(100) NOT NULL, email VARCHAR(100), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
删除表:
DROP TABLE [表名];
修改表结构(如添加字段):ALTER TABLE [表名] ADD COLUMN [字段名] [数据类型];
修改字段类型:ALTER TABLE [表名] MODIFY [字段名] [新数据类型];
删除字段:ALTER TABLE [表名] DROP COLUMN [字段名];
数据操作命令(CRUD)
-
插入数据(INSERT)
单行插入:INSERT INTO [表名] ([字段1], [字段2]) VALUES ('值1', '值2');
多行插入:INSERT INTO [表名] VALUES ('值1', '值2'), ('值3', '值4');
插入查询结果:INSERT INTO [表1] SELECT * FROM [表2] WHERE [条件];
(图片来源网络,侵删) -
查询数据(SELECT)
基础查询:SELECT * FROM [表名] WHERE [条件] ORDER BY [字段] LIMIT [数量];
条件查询:SELECT * FROM users WHERE age > 18 AND gender = '男';
模糊查询:SELECT * FROM users WHERE username LIKE '张%';
(%表示任意多个字符,_表示单个字符)
聚合函数:SELECT COUNT(*) AS total, AVG(age) AS avg_age FROM users;
-
更新数据(UPDATE)
UPDATE [表名] SET [字段1] = '新值' WHERE [条件];
更新用户名为“admin”的密码:UPDATE users SET password = 'newpass' WHERE username = 'admin';
-
删除数据(DELETE)
DELETE FROM [表名] WHERE [条件];
注意:不带WHERE条件的DELETE会删除表中所有数据,需谨慎使用。
用户与权限管理命令
MySQL 5.6通过GRANT和REVOKE命令管理用户权限。
-
创建用户
CREATE USER '[用户名]'@'[主机]' IDENTIFIED BY '[密码]';
创建本地用户testuser,密码为testpass:CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'testpass';
-
授权
GRANT [权限列表] ON [数据库名].[表名] TO '[用户名]'@'[主机]';
权限列表包括SELECT、INSERT、UPDATE、DELETE、ALL PRIVILEGES等,授予testuser对test数据库所有表的查询和插入权限:
GRANT SELECT, INSERT ON test.* TO 'testuser'@'localhost';
-
刷新权限
FLUSH PRIVILEGES;
(修改权限后需执行此命令使权限生效) -
撤销权限
REVOKE [权限列表] ON [数据库名].[表名] FROM '[用户名]'@'[主机]';
-
删除用户
DROP USER '[用户名]'@'[主机]';
常用命令参数与功能对比
以下表格列举了部分MySQL 5.6命令的参数和功能对比:
命令类型 | 命令格式 | 功能说明 |
---|---|---|
数据库连接 | mysql -u root -p | 以root用户连接本地MySQL服务器,提示输入密码 |
数据库连接 | mysql -h 192.168.1.100 -P 3306 -u test -p123 | 连接指定IP和端口的MySQL服务器,用户名为test,密码为123 |
数据库查看 | SHOW DATABASES; | 列出所有数据库 |
表结构查看 | DESCRIBE users; | 查看users表的结构 |
索引创建 | CREATE INDEX idx_username ON users(username); | 为users表的username字段创建索引 |
事务操作 | START TRANSACTION; COMMIT; ROLLBACK; | 开始事务、提交事务、回滚事务 |
数据导出 | mysqldump -u root -p test > test.sql | 导出test数据库到test.sql文件 |
数据导入 | mysql -u root -p test < test.sql | 从test.sql文件导入数据到test数据库 |
相关问答FAQs
问题1:MySQL 5.6中如何修改root用户的密码?
解答:可以通过以下步骤修改root密码:
- 停止MySQL服务:
sudo service mysql stop
(Linux系统)或通过任务管理器停止(Windows系统)。 - 以安全模式启动MySQL:
sudo mysqld_safe --skip-grant-tables
(Linux)或在命令行中跳过权限表启动。 - 连接MySQL并更新密码:
mysql -u root
,然后执行:UPDATE mysql.user SET password=PASSWORD('新密码') WHERE User='root'; FLUSH PRIVILEGES;
- 重启MySQL服务使密码生效。
问题2:MySQL 5.6中如何备份和恢复单个表?
解答:
- 备份单个表:使用
mysqldump
命令指定数据库名和表名,例如备份test数据库中的users表:mysqldump -u root -p test users > users_backup.sql
- 恢复单个表:使用
mysql
命令导入备份文件,例如将users_backup.sql恢复到test数据库:mysql -u root -p test < users_backup.sql
注意:恢复时目标表必须存在,若不存在需先创建表结构。