MySQL命令行有哪些常用操作?

MySQL作为全球最受欢迎的开源关系型数据库管理系统之一,其命令行工具是数据库管理员和开发者日常工作中不可或缺的工具,通过命令行,用户可以高效地管理数据库、执行SQL语句、进行数据备份与恢复等操作,以下将详细介绍MySQL常用命令行操作,涵盖连接数据库、用户管理、数据库操作、表操作、数据操作、权限管理、备份与恢复以及实用技巧等多个方面。

mysql常用命令行
(图片来源网络,侵删)

连接与退出MySQL

要使用MySQL命令行工具,需要正确连接到MySQL服务器,在命令行终端中,输入以下命令并按回车:
mysql -h 主机名 -u 用户名 -p
-h指定主机名(本地可省略或使用localhost),-u指定用户名,-p表示需要输入密码,连接成功后,会显示MySQL版本信息和mysql>提示符,若要退出MySQL,可输入exit;quit;并按回车,或使用快捷键Ctrl+D

数据库操作

连接成功后,首先需要选择或创建数据库,常用命令包括:

  • SHOW DATABASES;:列出所有数据库。
  • CREATE DATABASE 数据库名;:创建新数据库,例如CREATE DATABASE mydb;
  • USE 数据库名;:切换到指定数据库,后续操作将在此数据库下执行,例如USE mydb;
  • DROP DATABASE 数据库名;:删除数据库,需谨慎使用,例如DROP DATABASE mydb;

表操作

在数据库中,表是存储数据的核心对象,表操作包括创建、查看、修改和删除等:

  • SHOW TABLES;:列出当前数据库中的所有表。
  • CREATE TABLE 表名 (列名1 数据类型1, 列名2 数据类型2, ...);:创建表,例如CREATE TABLE users (id INT PRIMARY KEY, name VARCHAR(50), age INT);
  • DESC 表名;SHOW COLUMNS FROM 表名;:查看表结构,包括列名、数据类型、是否允许NULL、键信息等。
  • ALTER TABLE 表名 ADD COLUMN 列名 数据类型;:添加列,例如ALTER TABLE users ADD COLUMN email VARCHAR(100);
  • ALTER TABLE 表名 MODIFY COLUMN 列名 新数据类型;:修改列的数据类型,例如ALTER TABLE users MODIFY COLUMN name VARCHAR(100);
  • ALTER TABLE 表名 DROP COLUMN 列名;:删除列,例如ALTER TABLE users DROP COLUMN age;
  • DROP TABLE 表名;:删除表,例如DROP TABLE users;

数据操作

数据操作主要指对表中数据的增删改查(CRUD):

mysql常用命令行
(图片来源网络,侵删)
  • 插入数据INSERT INTO 表名 (列名1, 列名2, ...) VALUES (值1, 值2, ...);,例如INSERT INTO users (id, name, email) VALUES (1, '张三', 'zhangsan@example.com');,若插入所有列,可省略列名,但值的顺序需与表结构一致。
  • 查询数据SELECT 列名1, 列名2, ... FROM 表名 WHERE 条件;,例如SELECT * FROM users WHERE age > 18;(表示所有列)。WHERE子句用于筛选数据,支持、、><BETWEENINLIKE等条件运算符,以及ANDORNOT等逻辑运算符。
  • 更新数据UPDATE 表名 SET 列名1 = 值1, 列名2 = 值2, ... WHERE 条件;,例如UPDATE users SET age = 20 WHERE name = '张三';注意WHERE子句不可省略,否则将更新所有行。
  • 删除数据DELETE FROM 表名 WHERE 条件;,例如DELETE FROM users WHERE id = 1;注意:同样需谨慎使用WHERE子句,避免误删所有数据。

用户与权限管理

MySQL的安全性依赖于用户权限管理,常用命令包括:

  • CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';:创建新用户,例如CREATE USER 'dev'@'localhost' IDENTIFIED BY 'password123';
  • GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名';:授权权限,权限列表如SELECT, INSERT, UPDATE,使用表示所有数据库和表,例如GRANT ALL PRIVILEGES ON mydb.* TO 'dev'@'localhost';
  • REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名';:撤销权限,例如REVOKE DELETE ON mydb.users FROM 'dev'@'localhost';
  • SHOW GRANTS FOR '用户名'@'主机名';:查看用户权限,例如SHOW GRANTS FOR 'dev'@'localhost';
  • DROP USER '用户名'@'主机名';:删除用户,例如DROP USER 'dev'@'localhost';

备份与恢复

数据备份是数据库管理的重要环节,MySQL提供了mysqldump工具进行备份:

  • 备份数据库mysqldump -u 用户名 -p 数据库名 > 备份文件.sql,例如mysqldump -u root -p mydb > mydb_backup.sql,若备份所有数据库,可使用--all-databases参数。
  • 恢复数据库:首先创建空数据库(若不存在),然后使用mysql命令导入备份文件:mysql -u 用户名 -p 数据库名 < 备份文件.sql,例如mysql -u root -p mydb < mydb_backup.sql

实用技巧

  • 命令编辑与历史:在MySQL命令行中,使用上下箭头键可浏览历史命令,使用Ctrl+R可搜索历史命令。
  • 执行外部SQL文件:在命令行中输入source 文件路径;可执行SQL脚本文件,例如source /path/to/script.sql;
  • 显示查询结果格式:使用\G替代分号可使查询结果以垂直格式显示,便于阅读宽表数据,例如SELECT * FROM users\G;
  • 自动补全:在MySQL配置文件(~/.my.cnf/etc/my.cnf)中添加auto-rehash,可实现命令和表名的自动补全(需重启MySQL或重新连接)。

常用数据类型

在创建表时,选择合适的数据类型对性能和存储至关重要,以下是MySQL常用数据类型:

数据类型分类常用类型描述示例
数值类型INT整数,用于存储整数age INT
DECIMAL(M,D)精确小数,M为总位数,D为小数位数price DECIMAL(10,2)
FLOAT/DOUBLE浮点数,用于存储近似值score FLOAT
字符串类型VARCHAR(N)可变长度字符串,N为最大长度name VARCHAR(50)
CHAR(N)固定长度字符串,N为长度gender CHAR(1)
TEXT长文本字符串content TEXT
日期时间类型DATE日期,格式为’YYYY-MM-DD’birth_date DATE
DATETIME日期时间,格式为’YYYY-MM-DD HH:MM:SS’create_time DATETIME
TIMESTAMP时间戳,通常用于记录更新时间update_time TIMESTAMP
布尔类型TINYINT(1)布尔值,0表示假,1表示真is_active TINYINT(1)

相关问答FAQs

Q1: 如何忘记MySQL root密码并重置?
A1: 重置MySQL root密码的步骤如下(以Linux系统为例):

mysql常用命令行
(图片来源网络,侵删)
  1. 停止MySQL服务:sudo systemctl stop mysql(或sudo /etc/init.d/mysql stop)。
  2. 跳过权限表启动MySQL:sudo mysqld_safe --skip-grant-tables &
  3. 无密码登录MySQL:mysql -u root
  4. 执行以下命令重置密码(注意MySQL版本差异,5.7及以上版本需更新authentication_string字段):
    USE mysql;
    UPDATE user SET authentication_string=PASSWORD('新密码') WHERE User='root';
    FLUSH PRIVILEGES;
    EXIT;
  5. 重启MySQL服务:sudo systemctl start mysql

Q2: 如何优化MySQL查询性能?
A2: 优化MySQL查询性能可从以下几个方面入手:

  1. 索引优化:为经常用于查询条件(WHERE)、排序(ORDER BY)和连接(JOIN)的列创建索引,例如CREATE INDEX idx_name ON users(name);,但避免过多索引,否则会降低写入性能。
  2. SQL语句优化:避免使用SELECT *,只查询需要的列;避免在WHERE子句中对列进行函数操作或表达式计算(如WHERE SUBSTRING(name,1,3)='张'),这会导致索引失效;使用LIMIT分页查询,避免一次性返回大量数据。
  3. 表结构优化:选择合适的数据类型,例如用INT而非VARCHAR存储数字;对大表进行分区或分表,提高查询效率。
  4. 配置优化:调整MySQL配置文件(my.cnf)中的参数,如innodb_buffer_pool_size(InnoDB缓冲池大小)、max_connections(最大连接数)等,根据服务器资源合理设置。
  5. 使用EXPLAIN分析查询:通过EXPLAIN SELECT ...;查看查询执行计划,判断是否使用了索引、全扫描等,针对性优化。

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/386533.html<

(0)
运维的头像运维
上一篇2025-10-07 16:03
下一篇 2025-10-07 16:09

相关推荐

  • WordPress如何开启他人注册功能?

    要让访客能够在WordPress网站上注册账户,需要通过一系列设置和配置来实现,以下是详细的操作步骤和注意事项,帮助您完成WordPress用户注册功能的开启与管理,启用WordPress自带注册功能WordPress默认自带用户注册功能,但需要手动启用,首先登录WordPress后台,进入“设置”>“常……

    2025-11-20
    0
  • PostgreSQL数据库常用命令有哪些?

    PostgreSQL 是一款功能强大的开源关系型数据库管理系统,以其丰富的功能、高可靠性和良好的扩展性著称,掌握其常用命令是高效管理和操作数据库的基础,以下从数据库连接、用户与权限管理、数据库与对象操作、数据操作与查询、备份与恢复等方面详细介绍 PostgreSQL 的核心命令,数据库连接与退出连接 Postg……

    2025-11-16
    0
  • Serv-U FTP命令有哪些常用操作?

    Serv-U FTP 是一款功能强大的 FTP 服务器软件,支持多种 FTP 命令,用户可以通过命令行或客户端工具与服务器进行交互,实现文件上传、下载、目录管理等操作,以下是 Serv-U FTP 常用命令的详细介绍及使用方法,帮助用户更好地掌握 FTP 服务的操作技巧,连接与登录相关命令在使用 Serv-U……

    2025-11-16
    0
  • MySQL 客户端命令有哪些常用操作?

    MySQL 客户端命令是数据库管理员和开发人员与 MySQL 数据库交互的核心工具,通过命令行界面可以高效地执行数据库操作、管理数据以及进行系统维护,以下是常用 MySQL 客户端命令的详细介绍,涵盖连接、数据库操作、表管理、数据查询与维护等核心功能,连接与退出 MySQL 服务器要使用 MySQL 客户端,首……

    2025-11-15
    0
  • MySQL命令行工具有哪些核心操作?

    MySQL命令行工具是数据库管理员和开发人员日常工作中不可或缺的强大工具,它提供了直接与MySQL服务器交互的方式,通过简单的命令即可完成数据库的创建、表的管理、数据的查询与修改等复杂操作,与图形化界面工具相比,命令行工具具有轻量化、高效、跨平台以及脚本化自动化等优势,尤其适用于服务器环境或需要批量处理任务的场……

    2025-11-13
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注