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

银河麒麟V10 SP3实战:从零部署MySQL 8.0全流程解析

1. 银河麒麟V10 SP3系统环境准备

第一次在银河麒麟V10 SP3上部署MySQL 8.0时,我踩过不少坑。这个国产操作系统虽然基于CentOS 8开发,但在软件生态和依赖管理上还是有些特殊之处。先别急着下载安装包,做好前期准备能避免80%的安装问题。

确认系统版本是首要任务。打开终端执行:

cat /etc/os-release

这个命令会输出类似这样的信息:

NAME="Kylin Linux Advanced Server" VERSION="V10 (SP3)" ID="kylin" VERSION_ID="V10" PRETTY_NAME="Kylin Linux Advanced Server V10 (SP3)"

重点看VERSION字段是否包含SP3字样,不同版本的依赖包可能不兼容。我遇到过同事在SP2系统上安装MySQL 8.0导致依赖冲突的情况,最后不得不重装系统。

国产操作系统通常会预装MariaDB,这是MySQL的分支版本,两者会产生冲突。先检查并卸载相关组件:

rpm -qa | grep mariadb rpm -qa | grep mysql

如果返回类似mariadb-connector-c-3.0.6-9.ky10.x86_64的结果,需要用强制卸载命令:

rpm -e --nodeps 包名

特别注意:银河麒麟的软件包常带有.ky10后缀,这是与CentOS原版包的主要区别。有次我漏删了一个mariadb-libs的ky10版本包,导致后续安装一直报错,折腾了半天才发现问题。

2. MySQL 8.0安装包获取与验证

官网下载MySQL 8.0时,选择正确的版本很关键。银河麒麟V10对应Red Hat Enterprise Linux 8的兼容版本,但要注意两个细节:

  1. 必须选RPM Bundle包(包含所有依赖)
  2. 优先选择8.0的最新稳定版(目前是8.0.33)

下载完成后,建议用md5sum校验文件完整性:

md5sum mysql-8.0.33-1.el8.x86_64.rpm-bundle.tar

对比官网提供的校验值,避免下载过程中文件损坏。我就遇到过因为网络问题导致压缩包不完整,安装到一半报错的情况。

创建专用安装目录是个好习惯:

mkdir -p /home/mysql_install cd /home/mysql_install

用tar命令解压安装包时,加v参数显示详细过程:

tar xvf mysql-8.0.33-1.el8.x86_64.rpm-bundle.tar

解压后会得到6-8个rpm文件,安装顺序很重要。曾经有新手先装了client再装server导致依赖问题,正确的安装顺序应该是:

  1. common → 2. client-plugins → 3. libs → 4. client → 5. icu-data-files → 6. server

3. 安装过程中的常见问题解决

执行rpm安装时,可能会遇到依赖缺失的问题。银河麒麟V10 SP3常见的依赖包括:

  • net-tools(基础网络工具)
  • libaio(异步IO库)
  • openssl(加密支持)

可以用yum快速安装这些依赖:

yum install -y net-tools libaio openssl-devel

如果遇到Public key for xxx.rpm is not installed的报错,需要导入MySQL的GPG密钥:

rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

安装server包时特别容易出问题,建议单独执行并观察输出:

rpm -ivh mysql-community-server-8.0.33-1.el8.x86_64.rpm

如果报错说某个文件已存在,可能是之前安装失败残留的文件,用--replacefiles参数:

rpm -ivh --replacefiles mysql-community-server-8.0.33-1.el8.x86_64.rpm

安装完成后,检查服务是否注册成功:

systemctl list-unit-files | grep mysqld

应该能看到mysqld.service的启用状态。如果没找到,可能需要手动重装server包。

4. 数据库初始化与安全配置

第一次启动MySQL前,必须处理目录权限问题。银河麒麟的SELinux策略比较严格,直接启动会报错:

chown -R mysql:mysql /var/lib/mysql/ chmod 750 /var/lib/mysql restorecon -Rv /var/lib/mysql

这三条命令分别设置所有权、权限和SELinux上下文。有次我漏了restorecon,导致服务起不来,日志里全是权限拒绝的错误。

启动服务后,获取临时密码要注意:

grep 'temporary password' /var/log/mysqld.log | awk '{print $NF}'

这个密码包含特殊字符,复制时容易漏掉末尾字符。建议用鼠标选中终端输出的整行密码。

修改root密码时,银河麒麟的密码策略要求:

  • 至少8位
  • 包含大小写字母
  • 包含数字
  • 包含特殊字符

可以用这个命令修改:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'Kylin@123';

如果需要远程连接,还要配置防火墙。银河麒麟默认使用firewalld:

firewall-cmd --zone=public --add-port=3306/tcp --permanent firewall-cmd --reload

5. 性能调优与国产化适配

银河麒麟V10 SP3的默认内核参数需要调整以获得最佳MySQL性能。编辑/etc/sysctl.conf添加:

vm.swappiness = 10 vm.dirty_ratio = 60 vm.dirty_background_ratio = 5

执行sysctl -p生效。这些参数可以减少swap使用,优化内存写入性能。

MySQL配置文件/etc/my.cnf需要针对国产CPU优化:

[mysqld] innodb_buffer_pool_size = 2G # 物理内存的50-70% innodb_flush_method = O_DIRECT innodb_io_capacity = 2000 innodb_io_capacity_max = 4000

特别是飞腾或鲲鹏处理器,建议关闭NUMA:

numactl --interleave=all

定期维护也很重要,设置每周自动优化:

crontab -e 添加: 0 3 * * 0 mysqlcheck -uroot -p密码 --all-databases --optimize

6. 备份恢复与监控方案

银河麒麟环境下推荐使用mysqldump进行逻辑备份:

mysqldump -uroot -p密码 --single-transaction --master-data=2 --databases 数据库名 > backup.sql

--single-transaction参数保证备份一致性,适合InnoDB表。

物理备份可以用Percona XtraBackup,但需要先安装依赖:

yum install -y libev rsync perl-DBD-MySQL

然后下载对应版本的xtrabackup包安装。

监控方面,银河麒麟自带的kysec会影响MySQL性能统计。建议调整:

systemctl stop kysec systemctl disable kysec

或者配置kysec白名单,将MySQL相关进程加入排除列表。

最后提醒,银河麒麟的自动更新可能会覆盖MySQL配置文件。建议锁定相关包:

yum versionlock add mysql-community*
http://www.cnnetsun.cn/news/2414255.html

相关文章:

  • 5分钟掌握p5.js Web Editor:零配置创意编程入门指南
  • Kaggle API 完整指南:高效自动化数据科学工作流
  • 如何在macOS上运行Windows应用:Whisky完整使用指南
  • 纽约出租车数据分析完整指南:从30亿条记录中挖掘城市交通洞察
  • Windows 10/11打印服务总罢工?别急着重装,试试这几招修复Print Spooler自动停止
  • 为OpenClaw智能体工作流配置Taotoken作为后端大模型服务提供商
  • 虚拟现实中的数字人体:awesome-clothed-human如何推动沉浸式体验发展?
  • 告别密钥泄露风险,Taotoken的API Key安全管控与审计日志功能体验
  • 本地部署Code Llama:打造离线、安全的VSCode智能编程助手
  • 3分钟快速上手:免费OFD转PDF工具完整使用指南
  • gifuct-js:如何用JavaScript重新定义GIF解码的边界?
  • FinalBurn Neo终极指南:如何轻松搭建经典街机游戏模拟器
  • 终极指南:如何使用Idle Master自动收集Steam交易卡片
  • 对比直接使用官方 API,通过 Taotoken 接入的延迟与稳定性主观感受
  • 第17届蓝桥杯省赛题目及解析【B组】
  • 如何在Windows 11上完美运行经典游戏:DDrawCompat终极兼容性解决方案
  • 别再死记硬背了!用面包板和Arduino Nano,5分钟搞懂MOS管开关控制LED
  • 通过taotoken的apikey管理与审计日志功能加强安全管控
  • Windows上安装安卓应用的终极指南:3种高效方法让你告别模拟器
  • AI法律合规助手:基于Agent工作流与知识库的智能系统构建
  • 硬件研发必看:钡特电源 VF6-48S12P 与金升阳 URF4812P-6WR3 同属工业级高可靠 封装与性能对比
  • Codex 杀进 Chrome!接管了我的浏览器后,我在摸鱼
  • 自适应光学入门:手把手教你用Matlab仿真变形镜(分段式vs连续式)
  • 告别手敲MyBatis代码:用IDEA插件MyBatisX搞定domain、mapper和service的完整配置流程
  • 长期使用Taotoken聚合服务对项目开发效率的积极影响
  • 告别手动画框!AutoCAD 2022 + Cadence SPB 17.4 异形PCB板框绘制全流程(含合并块技巧)
  • 如何用res-downloader轻松搞定全网资源下载:从零开始的完整指南
  • 基于FPGA的Sobel边缘检测:从MATLAB仿真到Verilog实现的完整流程
  • 用自然语言控制你的电脑:UI-TARS桌面助手5分钟上手指南
  • 用了几周明基 RD280UG,我终于明白程序员为什么需要一台“专用显示器”