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 --helpmysqldump手册页,权限管理部分符合最小权限原则(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系统如何正确关闭哨兵进程?

    在Linux系统中,“哨兵进程”通常指用于监控、守护或告警的后台任务,常见于数据库高可用(如Redis Sentinel)、业务监控脚本、自研守护服务等场景,关闭这类进程需根据其启动和管理方式采取不同方法,本文将结合常见场景详细说明操作步骤,并附注意事项总结及常见问题解答,明确哨兵进程的类型与启动方式关闭哨兵进……

    2025年10月1日
    13000
  • 如何快速找到Java可执行文件路径在哪

    在Windows系统中使用where java命令,在Linux/macOS系统中使用which java或command -v java命令,可快速定位Java可执行文件(如java.exe或java)的安装路径。

    2025年7月19日
    17400
  • 如何高效同时操作三个终端窗口?

    在Linux系统中,终端是用户与系统交互的核心工具,无论是系统管理、软件开发还是日常任务,同时打开多个终端窗口或标签页能显著提升效率,例如监控日志、并行执行命令或管理远程服务器,以下是多种经过验证的方法,适用于不同桌面环境和需求:图形界面(GUI)的快捷操作适用于主流桌面环境(GNOME、KDE、XFCE等……

    2025年7月26日
    17300
  • 修改前必须做哪些准备?

    在Linux系统中,内核引导参数是控制操作系统启动行为的关键配置项,它们用于调整硬件兼容性(如解决显卡驱动问题)、启用特定功能(如调试模式)、优化性能(如设置CPU调度策略)或修复启动故障,修改内核参数属于高级操作,错误修改可能导致系统无法启动,操作前务必备份重要数据,并谨慎执行每一步,查看当前引导参数系统启动……

    2025年7月16日
    14700
  • Linux虚拟机如何设置IP地址?静态IP配置方法步骤

    Linux虚拟机IP设置是搭建开发、测试环境的基础操作,正确的IP配置确保虚拟机能与宿主机、外部网络或其他虚拟机稳定通信,影响远程访问、服务部署、文件共享等场景,本文将详细讲解Linux虚拟机IP设置的全流程,涵盖网络模式选择、静态/动态IP配置、多发行版适配及问题排查,虚拟机网络模式简介在配置IP前,需先理解……

    2025年8月31日
    15100

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信