云计算百科
云计算领域专业知识百科平台

CE(MySql服务)

1 什么是数据库

1.1 数据

数据是描述事物的符号记录,其表现形式多样,包括但不限于数字、文字、图形、图像、声音、语言等。无论哪种形式,都可通过数字化处理后存储到计算机中,是数据库存储的核心对象。

1.2 数据库

数据库(Database,DB)是长期存储在计算机内、有组织、可共享的大量数据的集合。其核心特征如下:

特征详细说明
数据结构化 数据按照统一的逻辑结构(如关系模型的表结构)组织,不同数据之间存在明确关联,而非杂乱无章的堆积
共享性高、冗余度低、易扩充 多个用户 / 应用可同时访问数据库;数据重复存储的比例极低,节省存储空间;新增 / 修改数据结构时,对现有应用影响小,易于扩展
数据独立性高 分为物理独立性(数据存储位置 / 方式改变,不影响应用程序)和逻辑独立性(数据逻辑结构改变,应用程序无需修改)
统一管理与控制 由数据库管理系统(DBMS)负责,核心管控能力包括:1. 安全性:防止未授权访问 / 篡改数据2. 完整性:保证数据的准确性、一致性(如字段非空、唯一约束)3. 并发控制:解决多用户同时操作数据的冲突问题4. 故障恢复:数据异常时(如断电)可恢复到正常状态

2 MySQL 概述

2.1 发展历程

  • 最初由瑞典 MySQL AB 公司开发,是一款开源的关系型数据库管理系统(RDBMS);
  • 2008 年 1 月,Sun 公司以 10 亿美金收购 MySQL AB;
  • 2009 年,Oracle 公司以 74 亿美金收购 Sun 公司,MySQL 正式归入 Oracle 旗下。

2.2 核心优势与应用场景

  • 优势:体积小巧、运行速度快、部署 / 使用成本低、完全开源(社区版)、跨平台(支持 Linux/Windows/Mac 等);
  • 应用场景:广泛用于 Internet 中小型网站、轻量级企业应用、个人开发项目,是 LAMP(Linux+Apache+MySQL+PHP)/LNMP(Linux+Nginx+MySQL+PHP)架构的核心组件。

3 版本及下载

3.1 版本分类

MySQL 主要分为社区版(MySQL Community Server)和商业版(MySQL Enterprise Edition):

  • 社区版:免费开源,满足绝大部分中小型应用需求;
  • 商业版:收费,提供官方技术支持、高级功能(如企业级监控、安全加固)。

3.2 下载地址与教程

  • 官方下载地址:https://dev.mysql.com/downloads/mysql/(可选择对应系统 / 版本);
  • 版本安装教程(以 5.7 为例):https://dev.mysql.com/doc/refman/5.7/en/installing.html;
  • 注意:下载时需匹配操作系统版本(如 CentOS 8/EulerOS 22 对应 RedHat 8 系列)、CPU 架构(x86_64/arm64 等)。

4 Yum 仓库安装(CentOS/RHEL/EulerOS)

4.1 添加 Yum 源

步骤 1:访问官方源页面
  • 打开 MySQL 官网:https://www.mysql.com/;
  • 进入下载指引页:https://dev.mysql.com/doc/refman/8.0/en/linux-installation-yum-repo.html;
  • 点击「MySQL Community (GPL) Downloads »」:https://dev.mysql.com/downloads/;
  • 选择「MySQL Yum Repository」:https://dev.mysql.com/downloads/repo/yum/;
  • 根据系统版本选择 Yum 源包(关键:Euler22=CentOS8=RedHat8)。
  • 步骤 2:下载并安装 Yum 源

    # 下载MySQL 8.0 Yum源包(以el8版本为例)
    [root@server ~]# wget https://dev.mysql.com/get/mysql80-community-release-el8-9.noarch.rpm

    # 安装Yum源包(安装后会在/etc/yum.repos.d/生成mysql相关repo文件)
    [root@server ~]# rpm -ivh mysql80-community-release-el8-9.noarch.rpm

    # 验证Yum源是否生效(列出所有mysql相关包)
    [root@server ~]# yum list | grep mysql

    4.2 安装 MySQL 服务

    步骤 1:安装核心包

    # 安装MySQL社区版服务端(自动依赖安装客户端、公共库等)
    [root@server ~]# yum install mysql-community-server.x86_64 -y

    步骤 2:启动并检查服务状态

    # 启动mysqld服务(注意服务名带d,代表daemon守护进程)
    [root@server ~]# systemctl start mysqld

    # 查看服务状态(active (running) 表示启动成功)
    [root@server ~]# systemctl status mysqld

    # 可选:设置开机自启
    [root@server ~]# systemctl enable mysqld

    步骤 3:获取初始临时密码

    MySQL 首次启动会自动为 root@localhost生成临时密码,存储在日志文件中:

    [root@server ~]# grep 'temporary password' /var/log/mysqld.log
    # 示例输出:2023-07-09T02:38:36.368700Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: qQ6OmpD?8_.f
    # 上述输出中「qQ6OmpD?8_.f」即为初始密码,需复制保存

    步骤 4:登录并修改密码

    # 以root身份登录MySQL(输入临时密码)
    [root@server ~]# mysql -u root -p
    Enter password: # 粘贴上述临时密码

    # 修改root密码(需符合默认密码规则)
    mysql> alter user 'root'@'localhost' identified by 'Admin123!';

    步骤 5:密码规则详解与调整
    查看默认密码规则

    mysql> show variables like 'validate_password.%';
    # 输出解析:
    # +————————————–+——–+
    # | Variable_name | Value |
    # +————————————–+——–+
    # | validate_password.check_user_name | ON | # 禁止密码与用户名相同
    # | validate_password.dictionary_file | | # 密码字典文件(空则不校验)
    # | validate_password.length | 8 | # 密码最小长度
    # | validate_password.mixed_case_count | 1 | # 至少1个大小写字母
    # | validate_password.number_count | 1 | # 至少1个数字
    # | validate_password.policy | MEDIUM | # 验证策略(LOW/MEDIUM/STRONG)
    # | validate_password.special_char_count | 1 | # 至少1个特殊字符
    # +————————————–+——–+

    调整密码规则(测试环境可选,生产不推荐)

    # 降低验证策略为LOW(仅校验长度)
    mysql> set global validate_password.policy=low;

    # 缩短密码最小长度为6位
    mysql> set global validate_password.length=6;

    # 设置简单密码(如123456)
    mysql> alter user 'root'@'localhost' identified by '123456';

    # 退出MySQL
    mysql> exit
    Bye

    步骤 6:验证登录与基础操作

    # 重新登录(输入新密码123456)
    [root@server ~]# mysql -u root -p
    Enter password: 123456

    # 查看所有数据库(注意结尾分号,s不可省略)
    mysql> show databases;
    # 示例输出:
    # +——————–+
    # | Database |
    # +——————–+
    # | information_schema | # 元数据信息库
    # | mysql | # 系统核心库(存储用户、权限等)
    # | performance_schema | # 性能监控库
    # | sys | # 简化性能监控的视图库
    # +——————–+

    # 查看MySQL默认端口(默认3306)
    mysql> show global variables like 'port';

    # 退出MySQL
    mysql> quit
    Bye

    5 本地 RPM 包安装(无网络环境适用)

    5.1 下载 RPM 集合包

  • 下载地址:https://downloads.mysql.com/archives/community/;
  • 选择对应版本(如 8.0.32)、系统(el9)、架构(x86_64)的「RPM Bundle」集合包;
  • 推荐使用迅雷等工具下载(速度更快)。
  • 5.2 上传安装包

    使用 XFTP/SCP 等工具将下载的 RPM 集合包上传到 Linux 服务器(如 /root 目录)。

    5.3 安装步骤

    步骤 1:解压 RPM 集合包

    # 切换到根目录(或上传包所在目录)
    [root@server ~]# cd /

    # 解压集合包(生成多个单独的RPM包)
    [root@server /]# tar -xvf mysql-8.0.32-1.el9.x86_64.rpm-bundle.tar

    步骤 2:安装核心 RPM

    # 本地安装(–nogpgcheck可选,跳过GPG校验)
    [root@server /]# yum localinstall -y \\
    mysql-community-server-8.0.32-1.el9.x86_64.rpm \\ # 服务端(必装)
    mysql-community-client-8.0.32-1.el9.x86_64.rpm \\ # 客户端(必装)
    mysql-community-common-8.0.32-1.el9.x86_64.rpm \\ # 公共库(必装)
    mysql-community-icu-data-files-8.0.32-1.el9.x86_64.rpm \\ # ICU数据文件(必装)
    mysql-community-client-plugins-8.0.32-1.el9.x86_64.rpm \\ # 客户端插件(必装)
    mysql-community-libs-8.0.32-1.el9.x86_64.rpm # 开发库(可选,C/C++开发用)

    步骤 3:启动服务并获取临时密码

    # 启动服务
    [root@server /]# systemctl start mysqld

    # 查看服务状态
    [root@server /]# systemctl status mysqld

    # 获取初始临时密码
    [root@server /]# grep password /var/log/mysqld.log
    # 示例输出:2023-02-09T03:55:47.305118Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: q&2PO.yJZ+Hp

    步骤 4:登录并重置密码

    # 登录MySQL(输入临时密码)
    [root@server /]# mysql -u root -p
    Enter password: q&2PO.yJZ+Hp

    # 首次登录执行任意命令会提示重置密码
    mysql> show databases;
    # 报错:ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

    # 重置密码(符合默认规则)
    mysql> alter user 'root'@'localhost' identified by 'MyNewPass1!';

    # 退出MySQL
    mysql> exit
    Bye

    6 通用二进制包安装(生产环境首选)

    6.1 二进制包优势

    • 预编译完成,安装速度快;
    • 自定义程度高(可指定安装目录、数据目录);
    • 稳定性好,是生产环境主流安装方式;
    • 二进制包:源码包编译后生成的可执行文件包,无需编译即可使用。

    6.2 下载二进制包

  • 下载地址:https://dev.mysql.com/downloads/mysql/;
  • 选择依据:
    • 系统 glibc 版本(如 glibc2.17);
    • CPU 架构(x86_64/arm64);
    • 版本(如 8.0.33);
    • 选择「Linux – Generic」下的「Compressed TAR Archive」包。
  • 6.3 上传软件包

    使用 XFTP 将二进制包上传到 Linux 服务器根目录(/)。

    6.4 解压缩

    # 切换到根目录
    [root@server ~]# cd /

    # 解压外层tar包(生成xz压缩包)
    [root@server /]# tar xvf mysql-8.0.33-linux-glibc2.17-x86_64-minimal.tar

    # 解压核心xz包(生成安装目录)
    [root@server /]# tar xvf mysql-8.0.33-linux-glibc2.17-x86_64-minimal.tar.xz

    # 验证解压结果(查看生成的目录)
    [root@server /]# ls
    # 示例输出:mysql-8.0.33-linux-glibc2.17-x86_64-minimal

    6.5 安装前准备(权限 / 目录配置)

    # 移动安装目录到/usr/local(通用安装路径)
    [root@server /]# mv mysql-8.0.33-linux-glibc2.17-x86_64-minimal /usr/local/mysql

    # 切换到MySQL安装目录
    [root@server /]# cd /usr/local/mysql

    # 创建mysql用户组(系统级)
    [root@server mysql]# groupadd mysql

    # 创建mysql系统用户(禁止登录,仅用于运行服务)
    [root@server mysql]# useradd -r -g mysql -s /bin/false mysql
    # 参数说明:
    # -r:创建系统用户(UID<1000)
    # -g:指定所属用户组
    # -s /bin/false:禁止用户登录系统

    # 创建数据存储目录(用于备份/文件存储)
    [root@server mysql]# mkdir mysql-files

    # 设置目录所有者和所属组(仅mysql用户/组可访问)
    [root@server mysql]# chown mysql:mysql mysql-files

    # 设置目录权限(750:所有者读/写/执行,组只读/执行,其他无权限)
    [root@server mysql]# chmod 750 mysql-files

    6.6 初始化与临时启动

    步骤 1:初始化 MySQL(生成临时密码)

    # 初始化(指定运行用户为mysql,生成临时密码)
    [root@server mysql]# bin/mysqld –initialize –user=mysql
    # 注意:执行后会输出临时密码,需复制保存(示例:&987kLpoi876!)

    步骤 2:配置 SSL(安全通信)

    # 生成SSL/RSA证书(用于加密客户端与服务端通信)
    [root@server mysql]# bin/mysql_ssl_rsa_setup

    步骤 3:后台启动 MySQL

    # 后台启动mysqld(&表示后台运行)
    [root@server mysql]# bin/mysqld_safe –user=mysql &

    步骤 4:验证进程(新开终端)

    # 查看MySQL进程(确认启动成功)
    [root@server ~]# ps -ef | grep mysql
    # 示例输出:mysql 12345 1 0 10:00 ? 00:00:01 bin/mysqld –user=mysql…

    步骤 5:解决库文件依赖(常见问题)

    若登录时提示「libncurses.so.5」/「libtinfo.so.5」缺失,执行以下命令:

    # 创建软链接(兼容低版本库依赖)
    [root@server ~]# ln -s /usr/lib64/libncurses.so.6 /usr/lib64/libncurses.so.5
    [root@server ~]# ln -s /usr/lib64/libtinfo.so.6 /usr/lib64/libtinfo.so.5

    步骤 6:登录并修改密码

    # 切换到MySQL安装目录
    [root@server ~]# cd /usr/local/mysql

    # 登录MySQL(输入临时密码)
    [root@server mysql]# bin/mysql -u root -p
    Enter password: # 粘贴初始化时的临时密码

    # 修改root密码(指定认证插件为mysql_native_password,兼容旧客户端)
    mysql> alter user 'root'@'localhost' identified with mysql_native_password by '123456';

    # 刷新权限(使密码修改生效)
    mysql> flush privileges;

    # 退出MySQL
    mysql> exit

    # 可选:关闭临时启动的MySQL进程(后续配置启动脚本后重新启动)
    [root@server ~]# ps -ef | grep mysql # 找到进程PID
    [root@server ~]# kill -9 <PID> # 替换为实际PID

    6.7 配置 my.cnf(核心配置文件)

    步骤 1:创建并编辑配置文件

    [root@server ~]# vim /etc/my.cnf

    步骤 2:写入配置内容

    # 客户端配置段(所有MySQL客户端生效)
    [client]
    port = 3306 # 连接端口
    socket = /tmp/mysql.sock # 本地套接字文件(比TCP快)

    # 服务端配置段(mysqld进程生效)
    [mysqld]
    # 基础标识
    server-id = 1 # 服务唯一ID(集群环境需唯一)
    port = 3306 # 监听端口
    basedir = /usr/local/mysql # MySQL安装根目录
    datadir = /usr/local/mysql/data # 数据文件存储目录(自动创建)
    tmpdir = /tmp # 临时文件目录(如导入数据时使用)
    socket = /tmp/mysql.sock # 套接字文件路径(与客户端一致)

    # 字符集配置(支持emoji等特殊字符)
    character-set-server = utf8mb4 # 服务端默认字符集
    collation-server = utf8mb4_general_ci # 字符集排序规则
    init_connect='SET NAMES utf8mb4' # 强制客户端连接时使用utf8mb4

    # 存储引擎
    default-storage-engine=INNODB # 默认存储引擎(事务安全、行级锁)

    # 日志配置
    log_error = error.log # 错误日志文件(存储在datadir下)

    6.8 配置启动脚本(系统服务化)

    步骤 1:拷贝并修改启动脚本

    # 切换到脚本目录
    [root@server ~]# cd /usr/local/mysql/support-files

    # 拷贝启动脚本到系统服务目录
    [root@server support-files]# cp -a mysql.server /etc/init.d/mysql.server

    # 编辑启动脚本,指定安装目录和数据目录
    [root@server support-files]# vim /etc/init.d/mysql.server

    # 在脚本开头添加以下两行(指定basedir和datadir)
    basedir=/usr/local/mysql
    datadir=/usr/local/mysql/data

    步骤 2:重载服务并启动

    # 重载系统服务配置(使新脚本生效)
    [root@server ~]# systemctl daemon-reload

    # 启动mysql服务(通过系统服务)
    [root@server ~]# systemctl start mysql

    # 可选:设置开机自启
    [root@server ~]# systemctl enable mysql

    步骤 3:配置全局环境变量

    # 编辑用户环境变量文件
    [root@server ~]# vim ~/.bash_profile

    # 添加MySQL二进制目录到PATH
    export PATH=$PATH:/usr/local/mysql/bin

    # 使环境变量生效
    [root@server ~]# source ~/.bash_profile

    # 验证(任意目录可执行mysql命令)
    [root@server ~]# mysql -uroot -p
    Enter password: 123456 # 输入密码即可登录

    7 常见问题排查

  • 服务启动失败:查看错误日志/var/log/mysqld.log(Yum/RPM 安装)或/usr/local/mysql/data/error.log(二进制安装);
  • 密码忘记:停止服务→跳过权限校验启动→重置密码→恢复正常启动(生产环境需谨慎);
  • 端口占用:使用netstat -tulpn | grep 3306查看占用进程,kill 后重启服务;
  • 权限不足:确保数据目录 / 安装目录所有者为 mysql 用户,权限为 750/640。
  • 赞(0)
    未经允许不得转载:网硕互联帮助中心 » CE(MySql服务)
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!