MySQL高效运维指南:从入门到精通的必备命令大全

内容分享1个月前发布 DunLing
0 2 0

本文将系统梳理MySQL日常开发与运维中的核心命令,涵盖数据库连接、表操作、数据管理、权限控制等关键场景,协助您快速提升数据库操作效率。

一、数据库连接管理

1.1 客户端连接命令

# 基础本地连接
mysql -u root -p

# 远程数据库连接
mysql -h 192.168.1.100 -P 3306 -u admin -p

# 快速执行单条查询
mysql -u root -p -e "SHOW DATABASES;"

1.2 连接参数详解

参数

说明

使用场景

-u

用户名

指定登录账户

-p

密码验证

安全交互式输入

-h

主机地址

连接远程服务器

-P

端口指定

非默认端口连接

-D

数据库选择

直接进入目标库

二、数据库操作命令

2.1 数据库查看与选择

-- 列出所有数据库
SHOW DATABASES;

-- 使用特定数据库
USE my_database;

-- 查看当前数据库
SELECT DATABASE();

2.2 数据库创建与删除

-- 创建数据库(推荐完整语法)
CREATE DATABASE IF NOT EXISTS my_app 
CHARACTER SET utf8mb4 
COLLATE utf8mb4_unicode_ci;

-- 安全删除数据库
DROP DATABASE IF EXISTS old_database;

三、数据表管理

3.1 表结构操作

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

-- 查看表结构信息
DESCRIBE users;
DESC products;  -- 简写形式

-- 查看建表语句
SHOW CREATE TABLE users;

3.2 表创建与修改

-- 创建数据表明例
CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50) NOT NULL UNIQUE,
    email VARCHAR(100) NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    INDEX idx_username (username)
);

-- 添加新列
ALTER TABLE users ADD COLUMN phone VARCHAR(20);

-- 修改列定义
ALTER TABLE users MODIFY COLUMN email VARCHAR(150);

四、数据操作命令(CRUD)

4.1 数据查询与过滤

-- 基础查询
SELECT * FROM products WHERE price > 100;

-- 排序和分页
SELECT * FROM orders 
ORDER BY order_date DESC 
LIMIT 10 OFFSET 20;

-- 数据统计
SELECT category, COUNT(*) as count 
FROM products 
GROUP BY category 
HAVING count > 5;

4.2 数据增删改操作

-- 插入单条数据
INSERT INTO users (username, email) 
VALUES ('john_doe', 'john@example.com');

-- 批量插入数据
INSERT INTO products (name, price) VALUES
('Laptop', 999.99),
('Phone', 599.99),
('Tablet', 299.99);

-- 更新数据(必须带WHERE条件)
UPDATE users SET email = 'new@example.com' WHERE id = 1;

-- 删除数据(谨慎使用)
DELETE FROM logs WHERE created_at < '2023-01-01';

五、用户权限管理

5.1 用户创建与授权

-- 创建本地用户
CREATE USER 'dev_user'@'localhost' IDENTIFIED BY 'password123';

-- 创建远程访问用户
CREATE USER 'app_user'@'%' IDENTIFIED BY 'securePass!';

-- 授予数据库权限
GRANT SELECT, INSERT, UPDATE ON shop_db.* TO 'dev_user'@'localhost';

-- 授予所有权限
GRANT ALL PRIVILEGES ON *.* TO 'admin_user'@'%';

5.2 权限回收与删除

-- 撤销特定权限
REVOKE DELETE ON shop_db.* FROM 'dev_user'@'localhost';

-- 删除用户
DROP USER 'old_user'@'localhost';

六、数据备份与恢复

6.1 使用mysqldump备份

# 备份整个数据库
mysqldump -u root -p my_database > backup_$(date +%Y%m%d).sql

# 只备份表结构
mysqldump -u root -p --no-data my_database > schema.sql

# 备份特定表
mysqldump -u root -p my_database users orders > tables_backup.sql

6.2 数据恢复操作

# 恢复整个数据库
mysql -u root -p my_database < backup.sql

# 从备份中恢复特定表
mysql -u root -p my_database < tables_backup.sql

七、系统监控与维护

7.1 进程监控与管理

-- 查看当前连接进程
SHOW FULL PROCESSLIST;

-- 终止特定查询
KILL 1234;

-- 查看系统状态
SHOW STATUS LIKE 'Threads_connected';

7.2 性能相关命令

-- 查看表索引信息
SHOW INDEX FROM users;

-- 分析查询执行计划
EXPLAIN SELECT * FROM users WHERE username = 'john';

-- 优化表结构
OPTIMIZE TABLE large_table;

八、最佳实践与安全提议

8.1 安全操作规范

  1. 生产环境操作:始终在操作前备份数据
  2. DELETE/UPDATE操作:必须使用WHERE条件限定范围
  3. 权限分配原则:遵循最小权限原则
  4. 密码安全:使用强密码并定期更换

8.2 效率提升技巧

  • 使用索引优化查询性能
  • 合理设计表结构避免数据冗余
  • 定期进行数据库维护和优化
  • 监控慢查询日志并针对性优化

通过掌握这些核心命令,您将能够高效地进行MySQL数据库的日常开发、运维和故障排查工作,显著提升工作效率和系统稳定性。

© 版权声明

相关文章

2 条评论

您必须登录才能参与评论!
立即登录
  • 头像
    巴黎夜雨 读者

    收藏了,感谢分享

    无记录
  • 头像
    松栗小菲饼 投稿者

    有帮助的话,麻烦关注下,谢谢

    无记录