CentOS7 安装配置 MySQL5.7 完整教程(本地虚拟机学习版)

⚠️ 【全文适用重要声明】本文所有操作仅适用于 VMware/VirtualBox 本地私有虚拟机学习测试严禁在云服务器、生产服务器、对外网开放的服务器上直接照搬执行

  1. 生产环境禁止直接关闭防火墙,应仅开放指定端口(3306 等)
  2. 禁止使用弱密码、禁止关闭数据库密码安全策略
  3. 禁止无限制开放 root 远程权限,应限制来源 IP
  4. 所有软件请通过官方源 / 官方网站获取,支持正版版权

一、环境准备

1.1 关闭防火墙

为了避免安装过程中出现网络问题,我们先关闭防火墙并禁止其开机自启:

⚠️ 仅本地虚拟机学习环境使用,生产环境禁止直接关闭防火墙,仅需放行 3306 端口

# 停止firewall systemctl stop firewalld.service # 禁止开机自启 systemctl disable firewalld.service # 查看防火墙状态 systemctl status firewalld.service

1.2 修改主机名与映射

设置主机名并配置本地映射,方便后续操作和识别:

(根据自身虚拟机 IP 修改)

# 设置主机名 hostnamectl set-hostname master # 编辑hosts文件 vim /etc/hosts # 添加映射 192.168.121.100 master #“根据自身虚拟机 / 服务器 IP 修改”

1.3 配置静态IP

关闭 NetworkManager 服务,然后修改网卡配置文件:

# 停止NetworkManager服务 systemctl stop NetworkManager # 禁止开机自启 systemctl disable NetworkManager # 进入网卡配置目录 cd /etc/sysconfig/network-scripts # 编辑网卡文件 vim ifcfg-ens33 修改内容如下: TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=static DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens33 UUID=b9405edb-2c3b-411a-a638-36c489d43da1 DEVICE=ens33 ONBOOT=yes IPADDR=192.168.121.100 NETMASK=255.255.255.0 GATEWAY=192.168.121.2 DNS1=192.168.121.2

1.4 配置windows下ip与主机名映射关系

  • 系统 hosts 文件路径:C:\Windows\System32\drivers\etc\hosts
  • 以管理员身份运行记事本,打开该文件
  • 在末尾添加映射记录:192.168.121.100 master(根据自身虚拟机 IP 修改)

二、配置第三方库

2.1 备份并下载 YUM 源

我们使用阿里云的镜像源来提高下载速度:

# 备份原有源 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup # 下载阿里云源 wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

2.2 移除阿里云ECS专用地址

sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
#重新构建本地缓存 yum makecache

三、安装 MySQL 5.7

3.1 下载YUM Repository

# 安装wget(如果没有的话) yum install -y wget # 下载MySQL 5.7的repo文件 wget -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

3.2 安装repo文件

yum -y install mysql57-community-release-el7-10.noarch.rpm

3.3 安装 MySQL 服务

yum -y --nogpgcheck install mysql-community-server

3.4 查看安装的服务和库

cd /usr/lib/systemd/system ll | grep mysql
cd /etc/yum.repos.d ll

3.5 卸载 YUM Repository(可选)

安装完成后,可以选择卸载 repo 文件以避免后续 yum 操作变慢:

yum -y remove mysql57-community-release-el7-10.noarch

四、启动并配置 MySQL

4.1 启动 MySQL 服务

# 查看服务状态 systemctl status mysqld.service # 启动服务 systemctl start mysqld.service # 设置开机自启 systemctl enable mysqld

4.2 获取并登录临时密码

# 获取临时密码 grep "password" /var/log/mysqld.log #登录MySQL mysql -uroot -p #设置的自定义密码(仅限本地虚拟机使用,生产环境必须为大小写 + 数字 + 特殊符号的强密码)

4.3 关闭密码复杂度验证

⚠️ 仅本地虚拟机测试使用,生产环境严禁关闭密码复杂度策略,极易遭到暴力破解

set global validate_password_policy=0; set global validate_password_length=1; # 设置新密码(本地测试用,生产用强密码) alter user user() identified by "自定义测试密码"; #设置的自定义密码(仅限本地虚拟机使用,生产环境必须为大小写 + 数字 + 特殊符号的强密码)

4.4 配置远程连接

⚠️ root@'%' 为全网段放行授权,仅内网学习环境使用,生产环境必须限制为指定 IP/IP 段

# 切换到mysql数据库 use mysql; # 授权root用户远程访问,设置的自定义密码(仅限本地虚拟机使用,生产环境必须为大小写 + 数字 + 特殊符号的强密码) GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '自定义测试密码' WITH GRANT OPTION; # 刷新权限 flush privileges; # 退出 exit;

五、修改MySQL编码 

5.1 查看数据库默认编码

show variables like "%char%";

5.2 编辑配置文件

```bash vim /etc/my.cnf

在配置文件中添加以下内容:

[client] default-character-set=utf8mb4 [mysqld] character-set-server=utf8mb4 collation-server=utf8mb4_general_ci

5.3 重启 MySQL 服务使配置生效:

systemctl restart mysqld

5.4 登录并查看MySQL编码

mysql -uroot -p #设置的自定义密码(仅限本地虚拟机使用,生产环境必须为大小写 + 数字 + 特殊符号的强密码)
show variables like "%char%";

MySQL 图形化连接工具(正版官方推荐)

本文仅演示数据库连接方法,所有工具均需通过官方渠道获取正版授权:

  1. MySQL 官方免费工具:MySQL Workbench(开源免费,适合学习使用)
  2. 付费商业工具:Navicat Premium,官方下载地址:https://www.navicat.com.cn/download/navicat-premium
  3. 开源免费替代工具:DBeaver Community Edition

七、连接 MySQL

1. 打开已获取正版授权的 MySQL 图形化管理工具

2. 点击【连接】->【MySQL】

3. 输入连接信息:

◦ 连接名:自定义(如:MySQL_5.7)

◦ 主机名或 IP 地址:192.168.121.100

◦ 端口:3306

◦ 用户名:root

◦ 密码:设置的自定义密码(仅限本地虚拟机使用,生产环境必须为大小写 + 数字 + 特殊符号的强密码

4. 点击【测试连接】,提示“连接成功”即可保存。

本文仅为本地虚拟机运维学习、技术测试使用,所有操作均在私有内网环境完成,严禁用于未授权服务器、生产环境;本文不提供任何盗版、破解相关内容,所有软件请通过官方渠道获取正版授权。

Read more

《算法题讲解指南:优选算法-二分查找》--19.x的平方根,20.搜索插入位置

《算法题讲解指南:优选算法-二分查找》--19.x的平方根,20.搜索插入位置

🔥小叶-duck:个人主页 ❄️个人专栏:《Data-Structure-Learning》 《C++入门到进阶&自我学习过程记录》《算法题讲解指南》--从优选到贪心 ✨未择之路,不须回头 已择之路,纵是荆棘遍野,亦作花海遨游 目录 19. x的平方根 题目链接: 题目描述: 题目示例: 解法(二分查找算法): 算法思路: C++算法代码: 算法总结及流程解析: 20. 搜索插入位置 题目链接: 题目描述: 题目示例: 解法(二分查找算法): 算法思路: C++算法代码: 算法总结及流程解析: 结束语 19. x的平方根 题目链接: 69. x 的平方根 - 力扣(LeetCode) 题目描述: 题目示例:

By Ne0inhk

【Python缓存过期清理实战指南】:掌握高效内存管理的5大核心策略

第一章:Python缓存过期清理的核心概念 在构建高性能Python应用时,缓存机制是提升响应速度和降低系统负载的关键手段。然而,若不妥善管理缓存的生命周期,可能导致内存泄漏、数据陈旧等问题。因此,理解缓存过期与自动清理机制至关重要。 缓存过期的基本原理 缓存过期指的是为缓存项设置一个有效时间窗口,超过该时间后,该项被视为无效并可被清除。常见策略包括: * 固定过期时间(TTL):每个缓存项在写入时设定生存时间 * 滑动过期(Sliding Expiration):每次访问缓存项时重置其过期时间 * 最大容量淘汰:当缓存数量达到上限时,按策略(如LRU)移除旧项 使用字典实现带TTL的简单缓存 以下代码展示如何利用time模块和字典实现基础的过期清理逻辑: import time class TTLCache: def __init__(self, ttl): self.cache = {} # 存储键值对及过期时间 self.ttl = ttl # 单位:秒 def set(self, key, value)

By Ne0inhk
Python 进程池(ProcessPoolExecutor)全面使用教程

Python 进程池(ProcessPoolExecutor)全面使用教程

一、进程池概述 进程池(ProcessPoolExecutor)是 Python 中用于并行执行任务的强大工具,尤其适合CPU密集型操作。与传统的多进程编程相比,它提供了更简单、更高级的接口。 适用场景: 1. CPU密集型任务(数学计算、图像处理等) 2. 需要并行处理独立任务的情况 3. 需要限制并发进程数量的场景 4. 需要获取任务执行结果的场景 二、基本使用 from concurrent.futures import ProcessPoolExecutor import time # CPU密集型计算函数defcalculate_square(n):print(f"计算 {n} 的平方...") time.sleep(1)# 模拟耗时计算return n * n # 使用进程池with ProcessPoolExecutor(max_

By Ne0inhk