当前位置: 首页 > news >正文

在CentOS 7上安装配置MySQL 8.0完整指南

本文将详细介绍在CentOS 7系统上安装配置MySQL 8.0的完整流程,包含安全加固、远程访问设置和字符编码优化等关键步骤。


1. 获取MySQL官方安装包

sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-11.noarch.rpm

此命令从MySQL官网下载RPM仓库包,-Uvh参数表示升级安装并显示进度条。安装后会在系统中添加MySQL的yum仓库,为后续安装做准备。


2. 检查仓库配置

cd /etc/yum.repos.d/
cat mysql-community.repo

进入yum仓库配置目录,查看MySQL仓库详情。​关键注意点​:默认启用最新版MySQL(如8.0),若需安装其他版本可在此文件中修改enabled值切换版本源。


3. 备份与更换系统源

sudo cp -r /etc/yum.repos.d /etc/yum.repos.d.backup
sudo nano /etc/yum.repos.d/CentOS-Base.repo

操作解析​:

  1. cp -r 递归备份整个仓库目录,防止误操作
  2. 编辑基础源文件,将mirrorlist替换为阿里云镜像(实际操作需在文件中将baseurl改为https://mirrors.aliyun.com/centos/$releasever/os/$basearch/
  3. 修改gpgkey指向阿里云验证密钥,加速后续依赖下载

4. 安装MySQL服务

yum -y install mysql-community-server

-y参数自动确认安装,此过程会安装MySQL服务器核心组件及依赖库,耗时约3-5分钟(视网络情况而定)。


5. 启动MySQL服务

systemctl start mysqld          # 立即启动
systemctl enable mysqld         # 设置开机自启
systemctl status mysqld         # 检查运行状态

状态验证​:出现active (running)表示服务已正常运行。MySQL首次启动时会初始化系统表并生成临时密码。


6. 获取临时密码

grep "password" /var/log/mysqld.log

输出类似:A temporary password is generated for root@localhost: Jp&q1kA!f9*e
重要​:冒号后的字符串就是临时密码,需在30分钟内使用,否则自动失效。


7. 登录MySQL控制台

mysql -uroot -p

输入上步获取的临时密码,进入MySQL命令行界面,提示符变为mysql>表示登录成功。


8. 安全策略调整与密码设置

sql

ALTER USER 'root'@'localhost' IDENTIFIED BY 'Zk@123456789'; -- 先设复杂密码
SET GLOBAL validate_password.policy = LOW;     -- 降低密码强度策略
SET GLOBAL validate_password.length = 6;       -- 允许最小6位密码

安全说明​:MySQL 8默认启用密码强度验证(需含大小写、数字、特殊字符)。此步骤降低策略便于测试,​生产环境强烈建议保持STRONG策略


9. 验证密码策略

sql

SHOW VARIABLES LIKE 'validate%';

查看输出确保策略已更新:

validate_password.length=6  
validate_password.policy=LOW

10. 设置永久密码

sql

ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

现在可设置简单密码(仅限测试环境)。​生产环境必须使用高强度密码!​


11. 开启远程访问权限

sql

CREATE USER 'root'@'%' IDENTIFIED BY '123456';        -- 创建远程用户
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; -- 授权所有权限

安全警告​:允许root远程访问存在风险,建议创建专用账户并限制权限(如:GRANT SELECT ON dbname.* TO 'user'@'%'


12. 权限刷新

sql

FLUSH PRIVILEGES;  -- 使授权立即生效

该命令重载权限表,无需重启服务即可应用新授权规则。


13. 退出MySQL

sql

EXIT;  -- 返回系统shell

14. 检查字符集配置

重新登录MySQL执行:

sql

SHOW VARIABLES LIKE 'character_set%';   -- 查看字符集
SHOW VARIABLES LIKE 'collation%';       -- 查看排序规则

若未配置utf8mb4,可能出现中文乱码问题。


15. 配置UTF-8字符集

sudo vim /etc/my.cnf

添加以下内容:

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

参数说明​:

  • utf8mb4:支持4字节编码,兼容所有Unicode字符(如emoji)
  • utf8mb4_unicode_ci:通用排序规则,不区分大小写

16. 重启服务生效

sudo systemctl restart mysqld  -- 重启服务
sudo systemctl status mysqld   -- 确认状态正常

17. 防止自动更新(可选)

rpm -qa | grep -i mysql        # 查询已安装包
sudo yum remove mysql-community-server mysql-community-libs mysql-community-common

注意​:删除核心包将导致无法升级!推荐替代方案:

sudo yum-config-manager --disable mysql80-community  # 禁用仓库

18. 清理残余文件(谨慎操作)

sudo find / -name mysql  # 全局搜索mysql相关文件
sudo rm -rf /path/to/file  # 手动删除非必要文件

重要提醒​:典型需清理路径:

  • /var/lib/mysql(数据目录,重装前可删)
  • /usr/share/mysql(文档文件)
  • 避免误删配置文件/etc/my.cnf

安全加固建议

  1. 防火墙配置​:仅允许信任IP访问3306端口
    sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="3306" accept'
  2. 禁用root远程登录​:使用普通账户+SSH密钥认证
  3. 启用SSL连接​:MySQL 8默认开启,通过SHOW VARIABLES LIKE '%ssl%';验证

通过以上步骤,您已成功部署支持中文、可远程访问的MySQL 8.0服务。定期执行yum update保持安全更新,并通过mysqldump进行数据备份确保业务连续性。

http://www.dtcms.com/a/315080.html

相关文章:

  • [Oracle] TO_NUMBER()函数
  • C 语言结构体与 Java 类的异同点深度解析
  • Hexo - 免费搭建个人博客07 - 添加右上角的“目录”
  • 《Python 实用项目与工具制作指南》· 2.4 pip
  • 流量见顶时代,知识付费 IP 的破局逻辑
  • 我的世界进阶模组开发教程——附魔(2)
  • 使用 IntelliJ IDEA + Spring JdbcTemplate 操作 MySQL 指南
  • 【无标题】文件IO与标准IO的区别
  • LeetCode 分类刷题:16. 最接近的三数之和
  • Vue 影院组件
  • BLIP 和 BLIP2 的对比
  • 如何实现人机协同与人工智能的深度协同发展?
  • 【龙芯99派新世界】2.buildroot使用,连接wifi
  • 英伟达Llama - Nemotron 253B:大模型训练范式的革新与展望
  • C++多线程同步:深入理解互斥量与事件机制
  • 情感AI在医疗领域的核心应用潜力与创新方向
  • 02324-离散数学-速记宝典
  • WSL安装Ubuntu与Docker环境,比VMware香
  • Sparse4D系列算法:迈向长时序稀疏化3D目标检测的新实践
  • Flutter开发 了解Scaffold
  • FinalShell 跳板机proxyjump使用
  • 105页PPT | 麦肯锡五年战略规划方法论精要
  • SRIO入门之官方例程仿真验证
  • 系统一个小时多次Full GC,导致系统线程停止运行,影响系统的性能,可靠性
  • 活动预告丨“百胜软件胜券AI全国巡讲”8月14日首站启幕,诚邀您共聚广州
  • 【清除pip缓存】Windows上AppData\Local\pip\cache内容
  • 【核心技术二】Uvicorn:高性能 ASGI 服务器
  • C语言实现单链表的操作
  • 机器学习(11):岭回归Ridge
  • 不损失清晰度情况对图片进行压缩的工具类(可通过地址也可以通过文件调用)