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系统如何查看当前PHP版本?

    在Linux系统中查看PHP版本是开发运维中的常见需求,无论是排查兼容性问题、确认环境配置,还是升级PHP版本,准确获取当前PHP版本信息都是基础步骤,本文将详细介绍多种查看PHP版本的方法,涵盖命令行、Web环境、包管理器等不同场景,并对比各方法的适用性和注意事项,命令行直接查看(最常用)在Linux终端中……

    2025年8月25日
    15500
  • 如何实时掌控系统运行状态?

    确认系统是否为Linux通过终端执行:uname -a输出示例:Linux hostname 5.15.0-86-generic #96-Ubuntu SMP … x86_64 GNU/Linux若含 GNU/Linux 字样即为Linux系统,查看Linux发行版与版本通用方法(推荐)cat /etc/o……

    2025年7月10日
    15700
  • Linux命令cp如何用?使用方法疑问标题

    Linux命令中的cp(copy)是用于复制文件或目录的基础命令,其核心功能是将源文件或目录的内容复制到目标位置,是日常系统管理和文件操作中高频使用的工具,掌握cp命令的语法和选项,能高效完成文件备份、迁移、合并等任务,同时避免因误操作导致数据丢失,基本语法与核心逻辑cp命令的基本语法为:cp [选项] 源文件……

    2025年9月21日
    14400
  • linux 如何返回上级目录

    Linux 中,使用 `cd ..

    2025年8月18日
    14700
  • 如何找回误删的文件历史版本?

    安装坚果云Linux客户端1 官方安装(推荐)Debian/Ubuntu用户 wget https://www.jianguoyun.com/static/exe/installer/nutstore_linux_dist_x64.tar.gz -O /tmp/nutstore.tar.gztar -zxvf……

    2025年7月28日
    17000

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信