当前位置: 首页 > news >正文

MySQL常见命令

唯有热爱,恒常如新

一、连接与登录

# 本地登录
mysql -uroot -p

# 远程登录
mysql -h192.168.1.10 -P3306 -uuser -p

# 指定库直接登录
mysql -uroot -p db_name

注意:-p后面不能有空格,否则空格也算密码的一部分。


二、数据库(database)操作

-- 查看所有库
SHOW DATABASES;

-- 创建库并指定字符集
CREATE DATABASE IF NOT EXISTS app_db
DEFAULT CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;

-- 切换当前库
USE app_db;

-- 删除库(谨慎!)
DROP DATABASE IF EXISTS app_db;


三、表(table)操作

-- 查看当前库所有表
SHOW TABLES;

-- 查看表结构(三种方式)
DESC users;
SHOW CREATE TABLE users\G
EXPLAIN users;

-- 创建表
CREATE TABLE users (
id        INT AUTO_INCREMENT PRIMARY KEY,
username  VARCHAR(50) NOT NULL UNIQUE,
email     VARCHAR(100),
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- 删除表
DROP TABLE IF EXISTS users;

-- 重命名表
RENAME TABLE old_name TO new_name;

-- 清空表(自增 ID 归零)
TRUNCATE TABLE users;

注意:DELETE FROM users 会逐行删,可回滚;TRUNCATE 直接删文件,不可回滚。


四、索引操作

-- 创建普通索引
CREATE INDEX idx_username ON users(username);

-- 创建联合索引
CREATE INDEX idx_user_email ON users(username, email);

-- 查看索引
SHOW INDEX FROM users;

-- 删除索引
DROP INDEX idx_username ON users;

-- 强制使用索引(调优时)
SELECT * FROM users FORCE INDEX(idx_username) WHERE username='bob';


五、数据增删改查(CRUD)

-- 插入
INSERT INTO users(username, email)
VALUES ('alice','alice@a.com'), ('bob','bob@b.com');

-- 批量插入忽略重复
INSERT IGNORE INTO users(username) VALUES ('alice'), ('alice');

-- 更新
UPDATE users SET email='new@a.com' WHERE id=1;

-- 删除
DELETE FROM users WHERE id=1;

-- 查询
SELECT id, username FROM users
WHERE email LIKE '%@a.com'
ORDER BY id DESC
LIMIT 10 OFFSET 20;


六、事务控制

START TRANSACTION;

UPDATE account SET balance = balance - 100 WHERE id = 1;
UPDATE account SET balance = balance + 100 WHERE id = 2;

COMMIT;   -- 提交
-- ROLLBACK;  -- 回滚

注意:MyISAM 不支持事务,确保表是 InnoDB。


七、用户与权限

-- 创建用户并授权
CREATE USER 'app_user'@'%' IDENTIFIED BY 'StrongPass!';
GRANT SELECT, INSERT, UPDATE, DELETE ON app_db.* TO 'app_user'@'%';
FLUSH PRIVILEGES;

-- 查看权限
SHOW GRANTS FOR 'app_user'@'%';

-- 修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPass!';

-- 回收权限
REVOKE DELETE ON app_db.* FROM 'app_user'@'%';


八、备份与恢复

# 逻辑备份(全库)
mysqldump -uroot -p --single-transaction --routines --triggers --events app_db > app_db.sql

# 仅备份结构
mysqldump -uroot -p -d app_db > app_db_schema.sql

# 恢复
mysql -uroot -p app_db < app_db.sql

注意:--single-transaction 只在 InnoDB 一致性快照有效;MyISAM 会锁表。


九、性能&状态

-- 查看服务器状态
SHOW GLOBAL STATUS LIKE 'Threads_connected';

-- 查看慢查询是否开启
SHOW VARIABLES LIKE 'slow_query_log%';

-- 查看当前运行线程
SHOW PROCESSLIST;

-- 分析 SQL 执行计划
EXPLAIN SELECT * FROM users WHERE username='alice'\G

-- 查看 InnoDB 引擎状态
SHOW ENGINE INNODB STATUS\G


十、变量与调优

-- 查看最大连接数
SHOW VARIABLES LIKE 'max_connections';

-- 临时调大(重启失效)
SET GLOBAL max_connections = 500;

-- 永久修改需写 /etc/my.cnf
[mysqld]
max_connections = 500

十一、元数据&搜索

-- 模糊搜索表名
SHOW TABLES LIKE '%order%';

-- 查看字段注释
SELECT column_name, column_comment
FROM information_schema.columns
WHERE table_schema='app_db' AND table_name='users';

-- 查看库大小
SELECT table_schema,
ROUND(SUM(data_length+index_length)/1024/1024,2) AS 'MB'
FROM information_schema.tables
GROUP BY table_schema;


十二、实用单行命令

# 修改 root 密码免交互
mysqladmin -uroot -pOldPass password 'NewPass'

# 执行一条 SQL 并退出
mysql -uroot -p -e "SELECT NOW();"

# 把查询结果导出 CSV
mysql -uroot -p -e "SELECT * FROM users" app_db \
--batch --silent \
| sed 's/\t/","/g;s/^/"/;s/$/"/' > users.csv

http://www.dtcms.com/a/296271.html

相关文章:

  • 封装和使用自定义指令
  • Mysql大数据架构设计:当表中数据超过800万时,对数据表进行分表操作,以及分页查询优化详解
  • linux常见面试题/笔试收录(一)
  • 《云计算蓝皮书 2025 》发布:云计算加速成为智能时代核心引擎
  • Unity VS Unreal Engine ,“电影像游戏的时代” 新手如何抉择引擎?(结)
  • EVAL长度限制突破方法
  • FastGPT:企业级智能问答系统,让知识库触手可及
  • 使用Claude Code从零到一打造一个现代化的GitHub Star项目管理器
  • 密码学与加密货币:构建去中心化信任的技术基石与未来挑战
  • 离线环境下如何优雅地部署 Mentor Questa
  • 在Ubuntu上使用QEMU仿真运行ARM汇编
  • 【​I2S:芯片设计中的“音频桥梁”​】
  • 使用 eBPF 实时捕获 TCP 重传告警:精准定位网络抖动问题
  • 点击按钮滚动到底功能vue的v-on:scroll运用
  • 亚马逊云科技实战架构:构建可扩展、高效率、无服务器应用
  • MinIO Go 客户端使用详解:对象存储开发实战指南
  • 风波不断,“奶粉第一股”贝因美渡劫
  • nginx有几种日志
  • 【vector定义】vector f(k, vector<int>(k));
  • 第三章:掌握 Redis 存储与获取数据的核心命令
  • 阿里v1支付系列验证码逆向/百度成语点选vmp逆向
  • 基于深度学习的胸部 X 光图像肺炎分类系统(四)
  • 电脑录屏软件推荐:如何使用oCam录制游戏、教程视频
  • 视频二维码在产品设备说明书中的应用
  • Docker4-容器化企业级应用
  • C++map和set
  • leetcode101.对称二叉树树(递归练习题)
  • 基于20和28 nm FPGAs的实现多通道、低非线性时间到数字转换器
  • 安全插座项目规划书
  • 嵌入式软件--stm32 DAY 9 定时器