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如何安装Flash?详细操作步骤与方法是什么?

    在Linux系统中安装Adobe Flash Player已不再是主流需求,主要原因在于Adobe已于2020年12月停止支持Flash Player,并推荐用户转向HTML5等现代Web标准,对于仍需访问依赖Flash的旧网站或特定应用的用户,以下将详细介绍几种在Linux中安装Flash Player的方法……

    2025年8月28日
    1200
  • linux管理员如何运行命令

    nux管理员可通过终端输入命令并回车运行,也可将命令写入脚本执行,还能利用远程

    2025年8月16日
    1500
  • 如何快速掌握基础操作流程?

    在Linux系统中,vi(及增强版vim)是预装率最高的文本编辑器,尤其适用于服务器管理、配置文件修改和编程任务,以下为符合E-A-T原则(专业性、权威性、可信度)的完整操作指南,内容基于Linux标准文档(如man vi)及开源社区最佳实践,打开/创建文件vi filename # 打开文件(不存在则创建)模……

    2025年7月9日
    3100
  • linux如何安装mpi

    Linux上安装MPI,可以使用包管理器如apt或yum,sudo apt

    2025年8月16日
    1200
  • Linux如何暴露PHP服务到外网?

    配置Web服务器安装并启动Web服务器Apache:sudo apt update && sudo apt install apache2 php libapache2-mod-php # 安装Apache与PHP模块sudo systemctl start apache2 &&amp……

    2025年7月12日
    3400

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信