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

CentOS Stream 9 虚拟机网络 + MySQL 环境排错笔记

一、问题总览

本次排错覆盖两类核心问题:

  1. VMware NAT 模式下网络不通、DNS 解析失败
  2. MySQL 客户端依赖缺失、服务启动失败适用于 CentOS Stream 9 + VMware Workstation 环境,可直接按步骤复现解决。

二、网络问题排错(ping 不通、DNS 解析失败)

🔍 常见报错

  • ping baidu.com提示Name or service not known
  • ping 网关提示Destination Host Unreachable
  • dnf install提示Couldn't resolve host name

🚀 完整解决步骤

1. 基础连通性排查(先定位问题)

bash

运行

# 1. 查看网卡信息(确认网卡名、IP) ip a # 2. 查看路由表(确认网关) ip route # 3. 测试网关连通性(NAT 模式网关一般为 192.168.xxx.2) ping 192.168.150.2 -c 4 # 4. 测试外网 IP 连通性(排除 DNS 问题) ping 223.5.5.5 -c 4
  • 若网关不通:网段不匹配,需重置 VMware NAT 网络
  • 若 IP 通、域名不通:DNS 配置问题

2. 重置 VMware NAT 网络(解决网段不匹配)
  1. 关闭虚拟机:poweroff
  2. 打开 VMware → 编辑 → 虚拟网络编辑器 → 更改设置(管理员权限)
  3. 选中VMnet8 (NAT 模式)→ 点击「还原默认设置」
  4. 记录重置后的子网 IP网关 IP(默认网关为192.168.xxx.2
  5. 保存设置,重启虚拟机

3. 虚拟机内重置网卡 + 配置固定 IP(永久生效)

bash

运行

# 1. 删除旧配置,恢复自动获取 nmcli connection delete ens160 nmcli connection add type ethernet con-name ens160 ifname ens160 ipv4.method auto # 2. 重启网卡,获取正确 IP nmcli connection up ens160 dhclient ens160 # 3. (可选)配置固定 IP(需与 VMnet8 网段一致,示例:192.168.150.101/24,网关192.168.150.2) nmcli connection modify ens160 \ ipv4.method manual \ ipv4.addresses 192.168.150.101/24 \ ipv4.gateway 192.168.150.2 \ ipv4.dns "8.8.8.8,8.8.4.4" \ ipv4.ignore-auto-dns yes # 4. 重启网卡生效 nmcli connection up ens160

4. 永久配置 DNS(防止被 NetworkManager 覆盖)

bash

运行

# 方案1:通过网卡配置(推荐,永久生效) nmcli connection modify ens160 ipv4.dns "8.8.8.8,8.8.4.4" ipv4.ignore-auto-dns yes nmcli connection up ens160 # 方案2:手动锁定 resolv.conf(双重保险) # 先解锁(若之前加过锁) chattr -i /etc/resolv.conf # 写入 DNS echo -e "nameserver 8.8.8.8\nnameserver 8.8.4.4" > /etc/resolv.conf # 锁定文件,禁止覆盖 chattr +i /etc/resolv.conf

5. 验证网络

bash

运行

# 测试网关 ping 192.168.150.2 -c 4 # 测试外网 IP ping 223.5.5.5 -c 4 # 测试域名解析 ping baidu.com -c 4

📌 DNS 说明

表格

DNS 地址所属厂商特点适用场景
223.5.5.5阿里云(国内)国内访问快、延迟低、稳定国内服务器、日常上网
119.29.29.29腾讯云(国内)国内解析快、防污染国内业务
8.8.8.8Google(海外)全球通用海外访问、跨国业务
1.1.1.1Cloudflare隐私性好、全球通用海外访问

三、MySQL 问题排错(依赖缺失、启动失败)

🔍 常见报错

  • ./mysql: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory
  • mysql 服务启动失败权限不足

🚀 完整解决步骤

1. 安装缺失依赖(解决 libtinfo.so.5 报错)

bash

运行

# CentOS Stream 9 专用 dnf install ncurses-compat-libs -y # 兜底方案(若安装失败,软链接高版本库) # 查找系统自带的 libtinfo.so.6 find /usr/lib64 -name "libtinfo.so*" # 做软链接(以实际路径为准) ln -s /usr/lib64/libtinfo.so.6 /usr/lib64/libtinfo.so.5 ldconfig

2. 权限配置(解决启动失败核心问题)

bash

运行

# 进入 MySQL 安装目录(默认路径) cd /usr/local/mysql # 递归修改属主为 mysql 用户 chown -R mysql:mysql /usr/local/mysql # 递归修改权限 chmod -R 755 /usr/local/mysql

3. 启动 MySQL 服务(两种方式二选一)
方式 1:安全启动(推荐,适合初次启动)

bash

运行

# 后台启动 MySQL mysqld_safe --user=mysql & # 等待3秒,测试登录 cd /usr/local/mysql/bin ./mysql -u root -p
方式 2:系统服务方式(适合生产环境,开机自启)

bash

运行

# 复制服务文件 cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld # 赋予执行权限 chmod +x /etc/init.d/mysqld # 添加开机自启 systemctl enable mysqld # 启动服务 systemctl start mysqld # 测试登录 /usr/local/mysql/bin/mysql -u root -p

4. 优化配置(提升使用体验)

bash

运行

# 1. 将 MySQL 加入系统环境变量(任意目录直接用 mysql 命令) echo 'export PATH=$PATH:/usr/local/mysql/bin' >> /etc/profile source /etc/profile # 2. (可选)配置 MySQL 远程访问(允许 root 从任意IP连接) # 登录 MySQL 后执行 USE mysql; UPDATE user SET Host='%' WHERE User='root'; FLUSH PRIVILEGES; EXIT;

四、常见问题速查

表格

问题原因解决命令
dhclient: 未找到命令未安装 DHCP 客户端dnf install dhclient -y
Failed to set locale, defaulting to C.UTF-8系统语言环境缺失localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8 && echo "LANG=zh_CN.UTF-8" > /etc/locale.conf && source /etc/locale.conf
resolv.conf重启后被覆盖NetworkManager 自动覆盖nmcli connection modify ens160 ipv4.ignore-auto-dns yes+chattr +i /etc/resolv.conf
MySQL 启动后无法登录初始化密码未重置mysqld --initialize --user=mysql查看临时密码,登录后修改

五、验证标准(全部通过即环境正常)

  1. 网络:ping baidu.com正常解析、0% 丢包
  2. 包管理:dnf install dhclient -y正常执行、无报错
  3. MySQL:./mysql -u root -p正常登录、无依赖报错
  4. 服务:systemctl status mysqld显示active (running)

六、补充说明

  • 所有命令均以root 用户执行,若为普通用户需加sudo
  • 若为 Ubuntu/Debian 系统,将dnf替换为aptncurses-compat-libs替换为libtinfo5
  • VMware NAT 模式下,固定 IP 必须与 VMnet8 网段完全一致,否则网关不通
http://www.jsqmd.com/news/597350/

相关文章:

  • 2026年华东多功能湿膜加湿器性价比排名,好用产品大揭秘 - 工业推荐榜
  • 3大痛点解决!BilibiliDown让B站音频提取效率提升300%的实战指南
  • 终极存储设备容量检测指南:3分钟识别假冒U盘和SD卡
  • 外贸人福音:本地部署translategemma-27b-it,安全高效翻译商务文件
  • 别再只调PID了!手把手教你用PurePursuit算法让小车更平滑地跟踪复杂轨迹
  • 别再死记硬背DP公式了!用电路布线这个例子,手把手教你动态规划的‘填表’心法
  • 2105基于51单片机的12864汉字串口通信系统设计
  • 3步掌握QMC音频解密:终极音乐格式转换解决方案
  • ComfyUI节点报错别慌:跟着这份GitHub Issues“抄作业”指南,快速定位社区解决方案
  • 3大突破!ComfyUI MixLab Nodes重新定义AI创意工作流
  • 开源多人游戏解决方案:Nucleus Co-op让单机游戏秒变多人派对
  • LobeChat问题解决:部署常见错误排查,快速搭建私人AI应用
  • 探索Alice-Tools:游戏文件全流程处理的创新解决方案
  • CPU性能优化框架:Cyber Engine Tweaks的线程调度优化技术解析与实践指南
  • 告别英文恐惧:Masa Mods中文汉化包,让Minecraft模组操作效率提升45%
  • 突破游戏限制:GoldHEN Cheats Manager如何让玩家掌控游戏体验
  • 1. 无需专业设备的3D建模革命:Meshroom如何让人人都能创建三维模型
  • 自动驾驶不敢用普通神经网络?贝叶斯方法让AI学会说‘我不确定‘(TensorFlow实战)
  • 如何用untrunc免费恢复损坏的MP4视频:终极完整指南
  • 从旋转框到水平框:深入理解VEDAI数据集转换YOLO格式背后的几何原理与数据清洗
  • 爱彼官方售后服务中心新址实地考察报告(2026年4月权威发布) - 亨得利官方服务中心
  • 语音识别不求人:Speech Seaco Paraformer本地化部署教程
  • 避开PMAlign性能陷阱:深度解析‘特征粒度’与‘忽略极性’设置对匹配速度和精度的影响
  • 提升plc开发效率:快马ai自动生成常用控制模式代码块与框架
  • 3步实现全适配界面:Vant Weapp组件库无障碍设计指南
  • 无锡腕表进水维修全解:2026 高湿环境下 35 + 高端腕表防水修复与养护指南 - 时光修表匠
  • Realtek WiFi 7 驱动架构深度解析:rtw89 项目技术演进与实现原理
  • 避坑指南:LaTeX algorithm2e中 cp*命令那个‘多余的分号’是怎么回事?
  • 3步掌握unrpa:从RPA格式解析到资源提取的完整指南
  • FPGA开发实战:Xilinx Zynq 7010开发板硬件配置与串口通信测试