Linux如何安全掌握MySQL命令行?

前期准备

  1. 安装MySQL

    # Ubuntu/Debian
    sudo apt update && sudo apt install mysql-server
    # CentOS/RHEL
    sudo yum install mysql-server
    sudo systemctl start mysqld
  2. 获取初始密码(仅首次安装)

    sudo grep 'temporary password' /var/log/mysqld.log  # CentOS
    sudo cat /etc/mysql/debian.cnf  # Ubuntu

连接MySQL服务器

场景 命令示例 参数说明
本地连接 mysql -u root -p -u:用户名,-p:密码输入提示
指定主机 mysql -h 192.168.1.100 -u admin -p -h:服务器IP,-P 3307:指定端口
无交互登录 mysql -u root -p'YourPassword' 警告:密码明文有泄露风险

基础数据库操作

-- 查看所有数据库
SHOW DATABASES;
-- 创建新数据库
CREATE DATABASE mydb;
-- 选择数据库
USE mydb;
-- 创建表
CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    email VARCHAR(100) UNIQUE
);
-- 插入数据
INSERT INTO users (name, email) VALUES ('Alice', 'alice@example.com');
-- 查询数据
SELECT * FROM users WHERE name LIKE 'A%';
-- 更新数据
UPDATE users SET email = 'new@example.com' WHERE id = 1;
-- 删除数据
DELETE FROM users WHERE id = 2;

用户与权限管理

-- 创建用户
CREATE USER 'dev'@'localhost' IDENTIFIED BY 'StrongPass123!';
-- 授权所有权限
GRANT ALL PRIVILEGES ON mydb.* TO 'dev'@'localhost';
-- 撤销权限
REVOKE DELETE ON mydb.* FROM 'dev'@'localhost';
-- 立即生效
FLUSH PRIVILEGES;

备份与恢复

  1. 备份整个数据库

    mysqldump -u root -p --all-databases > full_backup.sql
  2. 备份单库

    mysqldump -u root -p mydb > mydb_backup.sql
  3. 恢复数据库

    mysql -u root -p mydb < mydb_backup.sql

安全操作规范

  1. 避免密码暴露

    # 正确做法:使用提示输入
    mysql -u root -p
    # 错误做法:命令行明文密码
    mysql -u root -p'password'  # 可能被ps命令捕获
  2. 操作历史清理

    history -c  # 清除当前会话历史
    rm ~/.mysql_history  # 删除历史文件

故障排查

  • 连接拒绝

    # 检查服务状态
    sudo systemctl status mysql
    # 验证端口监听
    sudo netstat -tuln | grep 3306
  • 忘记root密码

    1. 编辑配置文件:sudo vi /etc/my.cnf
    2. 在[mysqld]段添加:skip-grant-tables
    3. 重启服务:sudo systemctl restart mysql
    4. 无密码登录重置:ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPass';

高级技巧

  • 批处理模式

    mysql -u user -p < script.sql
  • 输出结果到文件

    SELECT * INTO OUTFILE '/tmp/users.csv' 
    FIELDS TERMINATED BY ',' 
    FROM users;
  • 查看运行进程

    SHOW PROCESSLIST;

引用说明:
本文操作基于MySQL 8.0官方文档,遵循MySQL安全指南(MySQL Security Guidelines),命令行参数参考mysql --help及mysqldump手册页,权限管理部分符合最小权限原则(Principle of Least Privilege)。

通过系统化练习上述命令,您将高效管理Linux环境下的MySQL数据库,关键操作前务必验证备份有效性,生产环境避免直接使用root账户日常操作。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/6599.html

赞 (0)
酷番叔酷番叔
上一篇 2025年7月7日 16:13
下一篇 2025年7月8日 00:48

相关推荐

  • linux如何使用AT命令

    Linux 中,使用 at 命令安排任务需先确保 atd 服务运行,然后通过 `at [时间]

    2025年8月14日
    22300
  • Linux系统如何安装JDK并查看版本信息?

    在Linux系统中安装JDK(Java Development Kit)是进行Java开发和运行Java程序的基础步骤,不同Linux发行版可能采用不同的安装方式,但核心流程和配置逻辑相似,本文将详细介绍Linux系统安装JDK的完整步骤,包括安装前准备、多种安装方法(手动安装与包管理器安装)、环境变量配置、安……

    2025年9月23日
    28700
  • Linux中如何获取时间戳?命令有哪些?

    在Linux系统中,时间戳(Timestamp)通常指从1970年1月1日00:00:00 UTC(Unix纪元)开始经过的秒数、毫秒数或纳秒数,广泛应用于日志记录、文件时间标记、系统监控、数据同步等场景,获取时间戳的方法多样,既可通过命令行工具快速实现,也能通过编程语言灵活调用,本文将详细介绍Linux中获取……

    2025年10月5日
    30600
  • 为什么你越努力越穷

    在Linux系统中,消息队列(Message Queue)是进程间通信(IPC)的重要机制之一,分为System V消息队列和POSIX消息队列两类,查看当前消息队列中的消息数目需根据类型选择不同方法,以下是详细操作指南:System V消息队列通过ipcs命令查看,该工具是Linux内置的IPC状态报告工具……

    2025年7月13日
    24200
  • 如何查看/etc/os-release文件?

    在Linux系统中,”SP3″(Service Pack 3)这一概念通常与Windows系统相关,Linux本身并不使用”Service Pack”的版本机制,但根据技术背景推测,您可能想确认以下两种情况之一:SUSE Linux Enterprise Server (SLES) 的Service Pack版……

    2025年7月31日
    25000

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信