MySQL介绍和安装

一、MySQL 介绍

  1. 开源特性
    MySQL 是一款开源、免费的关系型数据库,源代码开放,可从 GitHub 下载并进行二次开发。
  2. 发展历程
    (1)最初由瑞典 MySQL AB 公司开发。
    (2)2008 年 Sun Microsystems 收购 MySQL AB。
    (3)随后 Oracle 收购 Sun,MySQL 归入 Oracle 旗下。
  3. 相关数据库对比
    数据库 特点
    Oracle 闭源、收费高、功能强大稳定,支持多平台(Linux/Windows/iOS),常用于金融、银行等核心系统
    MariaDB 与 MySQL 同源,功能基本一致(存在差异),开源免费,是当前流行的关系型数据库
    MySQL 开源免费,在中小型项目中广泛使用(如阿里会基于它做二次开发)
    SQL Server 主要用于 Windows 平台
    SQLite 轻量级数据库,适合开发测试阶段(如 Django 项目)
  4. 关系型与非关系型数据库
    关系型数据库:数据之间存在关联,一个 Excel Sheet 类似数据库中的一张表。
    非关系型数据库:
    (1)Key-value 型:Redis(缓存,提升并发能力)
    (2)文档型:MongoDB(存储灵活的 JSON 格式文档)
    (3)分布式存储:HBase(适用于大数据存储与分析)
    注:分布式指数据会分布在多台机器上协同工作。

二、软件安装

  1. 安装方式
    (1)yum 安装(一键安装):便捷快速,依赖软件可自动安装。
    (2)源码安装(自定义安装):可定制化,但需要手动搭建编译环境。
    推荐:企业内部可搭建统一源码包,配合自动化脚本实现版本统一部署。
  2. yum 安装前置操作
    #查找包含 MySQL 的软件包
    yum list | grep mysql
    #查找包含 mysql 命令的软件包
    yum provides "mysql"
    # 若已安装 MariaDB/MySQL,先卸载
    yum uninstall mariadb -y
    yum uninstall mysql -y
    # 检查卸载是否彻底
    rpm -qa | grep mysql
    rpm -qa | grep mariadb
    # 安装 MySQL 8.4
    yum install mysql8.4-server -y
    # 启动服务
    systemctl start mysqld
    # 服务状态管理
    systemctl start|stop|restart|enable|disable mysqld
    # 检查服务状态
    ps aux | grep mysql
    netstat -tlnp
    lsof -i:33065 # CentOS 10 + MySQL 8.4 默认端口
  3. 登录与密码查看
    # 登录 MySQL
    mysql -uroot -p
    # 查看初始密码(日志文件)
    cat /var/log/mysql/mysqld.log | grep pass
  4. 依赖工具安装
    # 安装 netstat(若未安装)
    yum install net-tools -y
    # 安装 lsof(若未安装)
    yum install lsof -y
    # 查看 yum 仓库配置
    cat /etc/yum.repos.d/

三、MySQL 管理

  1. 服务状态检查
    # 查看进程
    ps aux | grep mysql
    # 查看端口
    netstat -tlnp | grep mysql

  2. 常见连接报错处理
    ERROR 1045 (28000): Access denied for user 'root'@'localhost' #用户名或密码错误
    ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' #服务未启动,或套接字文件路径错误
    ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.100.172:3306' #端口未启动,或防火墙 / 网络限制

  3. 连接方式
    IP + 端口:远程连接,需注意防火墙与 SELinux 配置。
    Socket 套接字:本地连接,通过 /var/lib/mysql/mysql.sock 通信。

四、安装后文件结构

  1. 核心文件路径
    类型 路径
    二进制文件 /usr/bin/mysql* |
    数据文件 /var/lib/mysql/ |
    日志文件
    - 错误日志:/var/log/mysql/mysqld.log
    - 二进制日志:/var/lib/mysql/binlog.* |
    配置文件
    - 主配置:/etc/my.cnf
    - 包含目录:/etc/my.cnf.d/ |

  2. 数据路径迁移(以 /data/mysql 为例)#可选
    # 创建新目录
    mkdir -p /data/mysql
    # 授权
    chown mysql:mysql /data/mysql
    # 备份原配置
    cp /etc/my.cnf /etc/my.cnf.bak
    # 修改配置文件
    vim /etc/my.cnf.d/mysql-server.cnf
    配置文件示例:
    [mysqld]
    datadir=/data/mysql
    socket=/data/mysql/mysql.sock
    log-error=/data/mysql/mysqld.log
    pid-file=/run/mysqld/mysqld.pid
    port=3307
    slow-query-log-file=/data/mysql/mysql_query.log
    long-query-time=1
    bind-address=0.0.0.0

五、故障分析及处理

  1. SELinux 关闭
    # 临时关闭
    setenforce 0
    # 永久关闭(需重启)
    vim /etc/selinux/config
    # 修改为:SELINUX=disabled
    # 检查状态
    getenforce
  2. 套接字连接异常处理
    方法一:手动指定套接字文件
    mysql -uroot -S /data/mysql/mysql.sock
    方法二:修改客户端配置(无需重启服务)
    vim /etc/my.cnf.d/client.cnf
    配置文件示例:
    [client]
    socket=/data/mysql/mysql.sock
    prompt="\u@\d \R:\m>"
  3. 排错思路
    检查 /data/mysql 目录的属主和属组是否正确。
    使用 getenforce 确认 SELinux 状态。
    采用最小化配置文件,逐步排查问题。
    回顾操作历史,通过日志定位问题。

六.思维导图如下:(可能比较模糊)
微信图片_20260119172809_158_38

posted @ 2026-01-19 17:29  bx_xr  阅读(1)  评论(0)    收藏  举报