MySQL 全环境生产快速安装 + 完整配置手册(整合国产银河麒麟适配 + 主从补充版)

发布时间:2026/7/22 11:35:02
MySQL 全环境生产快速安装 + 完整配置手册(整合国产银河麒麟适配 + 主从补充版) 摘要本文全面介绍了 MySQL 8.0 在不同操作系统特别是国产银河麒麟 ARM 架构下的生产环境部署方案、配置优化、安全加固与高可用实践。内容涵盖四大部署方式RPM、二进制包、Docker、MSI的对比与选型口诀详细拆解了银河麒麟 ARM 离线 RPM 安装的七步流程及各组件作用提供了适用于 8C16G 服务器的通用 my.cnf 配置模板补充了基于二进制包的主从复制部署步骤并给出了安装后的统一安全加固 SQL、备份恢复标准方案以及全环境含国产麒麟的专属避坑清单旨在为运维和开发人员提供一份可直接用于生产的全栈指南。一、四大部署方案对比新增国产 ARM 麒麟适配说明部署方式适用系统生产优点缺点最佳场景yum/apt RPM 包安装CentOS/RHEL/ 银河麒麟 V10ARM/x86一键安装、自动注册 systemd 服务、统一系统日志、yum 便捷升级、依赖自动处理多实例部署繁琐MySQL 官方 yum 源默认仅 x86ARM 麒麟需单独下载 aarch64 el8 RPM 包线上业务主从、云服务器、标准国产化生产环境【首选】Linux 通用二进制 tar.xz/ Windows ZIP 绿色包Windows Server、全 Linux含银河麒麟 ARM离线可用、自定义安装 / 数据路径、单服务器多版本多实例、跨发行版通用、无系统包管理器冲突手动创建用户、编写 my.cnf、自建 systemd 服务步骤多内网隔离无外网机房、国产 ARM 服务器、一台机器跑多个 MySQL 实例Docker 容器Win/Mac/Linux 全平台一行命令启动、环境隔离、多版本快速切换IO 性能损耗大、数据持久化需额外规划不适合高并发核心业务开发测试、临时验证严禁承载正式生产库MSI 图形安装包Windows Server可视化向导、自动注册系统服务、新手易上手安装路径固定、多实例管理困难Windows 小型内网业务库生产选型口诀适配国产银河麒麟银河麒麟 V10 ARM 正式业务、有外网优先el8 aarch64 RPM Bundle 离线包官方 yum 源无 ARM 原生包麒麟内网隔离、一台机器多数据库实例选glibc2.28 aarch64 二进制 tar.xzWindows 服务器、离线环境ZIP 绿色包本地开发、临时测试Docker不做主库Mac 仅用于开发禁止作为生产数据库。补充RPM 包 vs 二进制包核心区分你之前疑问整合MySQL el8 RPM 分包RPM Bundle拆分为多个独立 rpmcommon、icu 字符集、libs、兼容库、客户端插件、client、server系统自动分配标准路径/usr/bin、/var/lib/mysql、/etc/my.cnf自动创建 mysql 系统用户、生成mysqld.service卸载可用rpm -e统一清理。 限制仅适配 RHEL8 系银河麒麟 V10ARM 必须下载aarch64架构包x86 包无法在飞腾 / 鲲鹏服务器运行。通用二进制 tar.xz 绿色包单压缩包整合全部程序、库、字符集无系统包管理器绑定所有 Linux 发行版通用手动自定义basedir、datadir升级 / 卸载直接删除文件夹适合国产化批量标准化部署。二、各环境一键快速生产安装步骤新增银河麒麟 ARM 专属流程方案 1RPM 在线 yum 安装x86 CentOS/RHELARM 麒麟不推荐外网 yum仅 x86 服务器可用银河麒麟 ARM 官方 yum 源无原生 MySQL aarch64 包会报架构缺失。# 导入MySQL8.0 el9源 wget https://dev.mysql.com/get/mysql80-community-release-el9-3.noarch.rpm rpm -ivh mysql80-community-release-el9-3.noarch.rpm rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2023 # 一键安装服务端客户端 yum install -y mysql-community-server # 启停自启 systemctl start mysqld systemctl enable mysqld # 获取初始临时密码 grep temporary password /var/log/mysqld.log # 安全初始化删匿名账号、测试库、加固密码 mysql_secure_installation方案 2银河麒麟 V10 ARM 离线 RPM 安装国产化标准方案前置清理冲突必须执行# 卸载系统自带mariadb避免端口/文件冲突 rpm -e --nodeps $(rpm -qa | grep mariadb) # 删除旧残留目录 rm -rf /var/lib/mysql /etc/my.cnf* /var/log/mysqld.log上传解压mysql-8.0.xx-1.el8.aarch64.rpm-bundle.tar按依赖顺序安装最小生产包# 1.公共基础包 rpm -ivh mysql-community-common-8.0.46-1.el8.aarch64.rpm # 2.icu字符集库 rpm -ivh mysql-community-icu-data-files-8.0.46-1.el8.aarch64.rpm # 3.核心运行库 rpm -ivh mysql-community-libs-8.0.46-1.el8.aarch64.rpm # 4.5.x兼容库 rpm -ivh mysql-community-libs-compat-8.0.46-1.el8.aarch64.rpm # 5.登录加密插件 rpm -ivh mysql-community-client-plugins-8.0.46-1.el8.aarch64.rpm # 6.客户端运维工具 rpm -ivh mysql-community-client-8.0.46-1.el8.aarch64.rpm # 7.数据库主服务最后安装 rpm -ivh mysql-community-server-8.0.46-1.el8.aarch64.rpm1. mysql-community-common作用全局公共基础资源包所有其他 RPM 的底层依赖必须第一个安装内置 MySQL 标准错误提示文本、全球多语言字符集基础文件提供系统默认配置模板/usr/share/mysql/my-default.cnf内置数据库内置函数、系统状态常量定义存储权限表、系统库基础结构文件不装后果所有客户端、服务端 RPM 直接报依赖缺失安装中断2. mysql-community-icu-data-filesel8 专属ARM 麒麟必装作用ICU 国际字符排序库utf8mb4 完整支持依赖包提供 emoji、中日韩复杂字符、多语言校对排序规则适配国产中文业务、生僻字存储场景不装后果mysqld 服务启动直接失败字符集初始化报错数据库无法运行3. mysql-community-libs作用MySQL 核心运行动态链接库提供libmysqlclient.so底层运行库服务端 mysqld、mysql 客户端、备份工具 mysqldump 全部依赖此库系统程序、中间件连接数据库的基础驱动文件4. mysql-community-libs-compat作用5.x 版本兼容动态库向下兼容旧业务程序适配老旧 Java、C/C 项目、中间件兼容 MySQL5 系列老驱动避免老业务启动报libmysqlclient.so.18类缺失错误新项目同样建议安装消除潜在兼容隐患5. mysql-community-client-plugins作用客户端认证加密插件集合远程登录必备包含mysql_native_password、caching_sha2_password两种主流登录加密插件Navicat、DBeaver、业务应用远程连接数据库必须依赖不装后果客户端登录报错无法远程访问数据库6. mysql-community-client作用全套运维客户端命令工具 内置常用命令mysql数据库登录交互工具mysqldump逻辑备份 / 恢复工具mysqladmin服务状态管理、账号密码修改工具mysqlimport批量数据导入工具 日常运维、备份、数据库操作全部依赖该包7. mysql-community-server核心数据库服务包作用MySQL 数据库主程序整套部署核心主进程mysqldInnoDB 存储引擎、连接处理、SQL 解析执行自动创建系统mysql无登录用户、数据目录/var/lib/mysql、日志目录自动生成 systemd 服务文件/usr/lib/systemd/system/mysqld.service支持systemctl启停、开机自启内置初始化脚本首次启动自动生成系统库、临时 root 密码devel、test、embedded 测试包业务服务器无需安装。初始化、启动、放行防火墙同通用流程。方案 3Ubuntu apt 在线安装x86apt update apt install wget -y wget https://dev.mysql.com/get/mysql-apt-config_0.8.28-1_all.deb dpkg -i mysql-apt-config_0.8.28-1_all.deb apt update apt install -y mysql-server systemctl enable --now mysql mysql_secure_installation方案 4Windows ZIP 绿色包离线 Windows解压至无中文、无空格路径D:\mysql80独立 SSD 创建数据目录E:\mysql_data\3306根目录新建my.ini填入文末通用配置模板管理员 CMD 初始化 注册系统服务cd D:\mysql80\bin mysqld --initialize --console mysqld install MySQL80 --defaults-fileD:\mysql80\my.ini net start MySQL80登录修改强密码执行安全加固 SQL。方案 5Linux 通用二进制 tar.xz银河麒麟 ARM 离线首选适配主从架构适配麒麟 V10 ARM下载mysql-8.0.xx-linux-glibc2.28-aarch64.tar.xzglibc2.28 匹配麒麟系统底层库无版本报错。# 1. 创建专用运行用户禁止root启动数据库 groupadd mysql useradd -r -g mysql -s /sbin/nologin mysql # 2. 解压至程序目录 tar -xf mysql-8.0.xx-linux-glibc2.28-aarch64.tar.xz -C /usr/local/ mv /usr/local/mysql-8.0.xx-linux-glibc2.28-aarch64 /usr/local/mysql80 # 3. 独立磁盘规划数据、binlog、日志目录生产规范 mkdir -p /data/mysql/3306/{data,binlog,logs,socket,tmp} chown -R mysql:mysql /usr/local/mysql80 /data/mysql # 4. 编写my.cnf初始化数据库 /usr/local/mysql80/bin/mysqld --defaults-file/data/mysql/3306/my.cnf --initialize --usermysql # 5. 手动编写systemd服务文件实现开机自启、故障自动重启该部署方式可直接用于银河麒麟主从复制架构多实例部署互不干扰。方案 6Docker仅测试禁止核心生产docker run -d --name mysql8 \ -p 3306:3306 \ -e MYSQL_ROOT_PASSWORDPro123456 \ mysql:8.0三、通用生产 my.cnf 完整参数8C16G 服务器麒麟 ARM/Windows 通用[client] socket/data/mysql/3306/socket/mysql.sock default-character-setutf8mb4 [mysqld] 基础路径配置 port3306 basedir/usr/local/mysql80 datadir/data/mysql/3306/data socket/data/mysql/3306/socket/mysql.sock pid-file/data/mysql/3306/mysql.pid log-error/data/mysql/3306/logs/error.log 字符集、表名大小写适配国产化系统 character-set-serverutf8mb4 collation-serverutf8mb4_unicode_ci lower_case_table_names1 性能内存参数 innodb_buffer_pool_size10G innodb_log_file_size2G innodb_log_buffer_size64M max_connections1000 open_files_limit65535 Binlog主从复制、数据恢复强制开启 log_bin/data/mysql/3306/binlog/mysql-bin binlog_formatROW sync_binlog1 expire_logs_days7 安全加固等保要求 default_authentication_pluginmysql_native_password local_infile0 symbolic-links0 skip-show-database secure_file_priv/data/mysql/3306/tmp validate_password.policyMEDIUM validate_password.length12 慢查询日志优化SQL slow_query_log1 slow_query_log_file/data/mysql/3306/logs/slow.log long_query_time1 log_queries_not_using_indexes1 主从复制专属参数多实例需修改唯一server-id server-id1 relay-log/data/mysql/3306/binlog/relay-bin参数调整要点内存参数服务器物理内存的 50%~70% 分配给innodb_buffer_pool_sizebinlog生产必开是误删回滚、主从同步唯一依赖server-id单机单实例默认 1主从环境主库、从库 ID 必须完全不同lower_case_table_names1适配 Windows 迁移、国产系统统一表名小写不区分大小写。四、银河麒麟二进制包部署 MySQL 主从复制 补充参考 CSDN 博文整合基于麒麟 V10 ARM 二进制包部署传统位置点主从适配国产化业务高可用。1. 环境前置要求主、从服务器 MySQL 版本完全一致两台机器时间同步ntpdate ntp.aliyun.com防火墙互相放行 3306 端口SELinux 关闭主从配置server-id唯一不重复。2. 主库 Master 配置修改 my.cnf开启 binlog、设置 server-id[mysqld] server-id1 log_bin/data/mysql/3306/binlog/mysql-bin binlog_formatROW重启数据库生效systemctl restart mysqld创建专属复制账号仅授予同步权限最小权限原则CREATE USER repl从库IP IDENTIFIED BY Repl2026DB; GRANT REPLICATION SLAVE ON *.* TO repl从库IP; FLUSH PRIVILEGES;锁表记录 binlog 位置导出全量备份FLUSH TABLES WITH READ LOCK; SHOW MASTER STATUS; -- 记录File、Position字段值后续从库绑定使用新开终端导出全库一致性备份/usr/local/mysql80/bin/mysqldump -uroot -p --all-databases --single-transaction --master-data2 master_full.sql备份完成解锁主库UNLOCK TABLES;3. 从库 Slave 配置my.cnf 设置独立 server-id开启中继日志[mysqld] server-id2 relay-log/data/mysql/3306/binlog/relay-bin read_only1 -- 普通业务禁止写入仅主库写入重启数据库导入主库全量备份/usr/local/mysql80/bin/mysql -uroot -p master_full.sql绑定主库同步信息填入主库 SHOW MASTER STATUS 记录的值CHANGE MASTER TO MASTER_HOST主库IP, MASTER_USERrepl, MASTER_PASSWORDRepl2026DB, MASTER_LOG_FILEmysql-bin.000001, MASTER_LOG_POS156;启动同步校验复制状态START SLAVE; SHOW SLAVE STATUS\G4. 主从校验标准必须同时满足Slave_IO_Running: YesSlave_SQL_Running: YesSeconds_Behind_Master: 0主库新建库、插入数据从库可实时同步代表部署成功。五、安装完成后统一安全加固 SQL全环境通用-- 1. 设置高强度root密码 ALTER USER rootlocalhost IDENTIFIED BY ProMysqlDB2026; -- 2. 禁止root全网远程登录仅本地管理 DELETE FROM mysql.user WHERE userroot AND host ! localhost; -- 3. 清理匿名账号、测试库 DELETE FROM mysql.user WHERE user; DROP DATABASE IF EXISTS test; FLUSH PRIVILEGES; -- 4. 创建业务专用账号限制访问IP、最小权限 CREATE USER biz_user192.168.1.% IDENTIFIED BY BizData202666; GRANT SELECT,INSERT,UPDATE,DELETE ON biz_db.* TO biz_user192.168.1.%; FLUSH PRIVILEGES;网络配套安全规范防火墙仅放行业务应用服务器 IP 访问 3306禁止0.0.0.0/0全网开放杜绝公网直接访问数据库。六、备份 恢复标准方案1. 逻辑备份 mysqldump跨系统 / 跨架构通用麒麟 x86/ARM 迁移首选全库定时备份脚本/usr/local/mysql80/bin/mysqldump -uroot -p --all-databases --single-transaction --routines --triggers --events | gzip /backup/mysql_$(date %Y%m%d).sql.gz恢复命令gunzip -c xxx.sql.gz | /usr/local/mysql80/bin/mysql -uroot -p参数说明--single-transactionInnoDB 无锁备份线上不阻塞业务--routines --triggers --events同步存储过程、触发器、定时事件。2. 物理备份 XtraBackup百 GB 大库优势备份恢复速度极快限制同架构系统恢复ARM 与 x86 之间不能直接拷贝 data 目录InnoDB 二进制文件跨架构极易损坏跨麒麟 x86/ARM 迁移必须使用 mysqldump 逻辑导出。3. 备份误区mysql -uroot -p db file.dmp无法完整备份缺失建库建表语句Oracle / 达梦.dmp 是加密二进制备份和 mysqldump 导出的 sql 文件完全不互通。七、全环境 国产麒麟专属避坑清单架构包区分银河麒麟 ARM飞腾 / 鲲鹏只能使用aarch64后缀 RPM / 二进制包x86_64 包会报架构不匹配el7 包 glibc 版本过低麒麟 V10 仅支持 el8 包RPM 安装前置必须卸载系统自带 mariadb否则端口、文件冲突mysqld 启动失败二进制包硬性规范必须新建 mysql 系统用户禁止 root 账号启动数据库数据目录独立磁盘存放不要和系统盘共用主从复制红线主从 MySQL 版本必须一致server-id 不能重复binlog 必须开启跨系统迁移麒麟 ARM ↔ x86、Windows ↔ Linux一律用 mysqldump 逻辑备份禁止直接拷贝 data 目录生产禁止项关闭 binlog、Docker 承载核心业务、root 账号全网开放远程访问、弱密码备份规范异地留存备份文件每周执行一次恢复演练验证备份可用旧服务清理RPM 安装后残留mysql.rpmold旧 sysv 脚本可直接删除无数据风险避免服务冲突。