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

企业内部管理系统网站建设专业沈阳网站制作

企业内部管理系统网站建设,专业沈阳网站制作,河南企起网站建设,云南网络营销seo🧵 技术实录 | 从 MySQL 启动失败到大小写兼容恢复:一次完整故障排查复盘 作者:Narutolxy | 日期:2025-06-14 | 标签:MySQL、权限修复、大小写敏感、数据迁移 🪧 引言:一次意外引发的 MySQL 修复…

🧵 技术实录 | 从 MySQL 启动失败到大小写兼容恢复:一次完整故障排查复盘

作者:Narutolxy | 日期:2025-06-14 | 标签:MySQL、权限修复、大小写敏感、数据迁移


🪧 引言:一次意外引发的 MySQL 修复实践

在一次对客户 MySQL 数据库进行表迁移和大小写兼容性调整的过程中,我遇到了一个典型但复杂的问题 —— MySQL 配置了 lower_case_table_names=1 后无法启动,root 用户密码遗失,remote_user 无权限,数据库导入失败

这篇文章就是对这次故障排查与修复过程的系统复盘,既是经验的沉淀,也希望为后来者提供实战路径与借鉴。

在这里插入图片描述


🔥 背景:兼容大小写带来的挑战

客户的旧数据库中表名存在混合大小写,但在新服务器 CentOS + MySQL 8.0 环境中,默认表名大小写敏感。客户的应用代码中又大量 hard-code 表名,改动代价极高。

于是我们采取了常见的方式:

[mysqld]
lower_case_table_names=1

但没想到,这条看似简单的配置,成了整个系统无法启动的“扳机”。


⚠️ 问题爆发:MySQL 配置后无法启动

在执行 systemctl restart mysqld 后,系统报错:

ERROR [ERROR] [MY-011071] [Server] Different lower_case_table_names settings for server and data dictionary
Data Dictionary initialization failed

🔍 原因解析:

  • MySQL 8.0 之后使用事务数据字典,不再允许在数据存在时更改 lower_case_table_names
  • 修改该值必须在“空数据目录”状态下初始化

🔐 新问题:root 密码丢失 + remote_user 无权限

为避免破坏数据,我尝试导出全库:

mysqldump -u remote_user -p --all-databases > all_backup.sql

却提示:

ERROR 1045 (28000): Access denied for user 'remote_user'@'localhost'

尝试 root 也失败,因为没有密码。


🛠️ 解决策略:权限绕过 + 初始化 + 恢复

1️⃣ 使用 --skip-grant-tables 跳过权限验证

mkdir -p /var/run/mysqld
chown mysql:mysql /var/run/mysqld
mysqld_safe --skip-grant-tables --skip-networking &

2️⃣ 登录 mysql 控制台

mysql -u root

3️⃣ 设置密码失败:ALTER USER 被禁用

ALTER USER 'root'@'localhost' IDENTIFIED BY 'Sscy@2025!';
-- 报错:ERROR 1290 (HY000)

✅ 正确方式:使用 UPDATE + plugin 方式强改

UPDATE mysql.userSET authentication_string = '', plugin = 'mysql_native_password'
WHERE user='root' AND host='localhost';
FLUSH PRIVILEGES;

4️⃣ 杀掉进程后重启并登录

pkill -f mysqld
systemctl start mysql
mysql -u root
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Sscy@2025!';

✅ 密码恢复成功!


📦 数据恢复 + 用户授权

CREATE USER 'remote_user'@'%' IDENTIFIED BY '@YXy1982!';
GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%' WITH GRANT OPTION;

导入数据:

mysql -u root -p < /var/lib/all_backup.sql

🔎 核心验证:大小写兼容是否生效?

使用 SHOW TABLES; 发现表如 tclv_sync_count 存在。

我们验证如下 3 种形式是否等价:

SELECT COUNT(*) FROM tclv_sync_count;
SELECT COUNT(*) FROM TCLV_SYNC_COUNT;
SELECT COUNT(*) FROM Tclv_Sync_Count;

✅ 所有都返回正确结果,说明大小写不敏感配置已成功生效。


📌 总结回顾:实战经验沉淀

问题解决方案
MySQL 启动失败初始化数据目录后设置 lower_case_table_names=1
root 密码丢失使用 --skip-grant-tables + UPDATE 修复
ALTER USER 报错在 skip 模式下只能 UPDATE mysql.user
remote_user 无权限重建并授权
表名不兼容成功启用大小写不敏感,验证通过

💡 技术启示

  • MySQL 8.0 对系统行为的严格性远超 5.x,所有改配置项都必须验证时机
  • lower_case_table_names=1 最好在空库初始化前设置,否则一定翻车
  • 权限修复与安全模式操作要慎重,生产环境可先测试副本

🏁 尾声

一次看似简单的数据库配置操作,引发了系统无法启动、权限丢失、用户锁死等连锁反应。但也正是这些问题的反复打磨,让我更深入理解了 MySQL 内部行为与企业级部署安全实践。

希望这篇实录能帮到在类似环境中挣扎的你。

技术不是知识的堆砌,而是一次次失败后的沉淀与归纳。


📫 有任何问题或想进一步探讨的同仁,欢迎与我交流!

http://www.yayakq.cn/news/40126/

相关文章:

  • 租一个国外的服务器 建设网站简约的网站设计界面
  • 贵州做网站怎么推广果洛wap网站建设比较好
  • 网站建设zvge厦门做网站优化多少钱
  • 坡头手机网站建设公司wordpress 改成论坛
  • 农资销售网站建设方案做电商设计有什么好的网站推荐
  • 中国最大的建站网站邵阳建设网站
  • 淘宝网站是谁做的好处公司手机网站模板免费下载
  • html网站模版wordpress七牛云储存怎么
  • 关于官方网站建设情况的汇报wordpress响应式菜单
  • 生物医药基地网站建设国外创意摄影网站
  • 网站开发教程wordpress 迁移插件
  • 陕西手机网站建设公司排名知识管理软件排名
  • 建立网站一般多少钱洛阳网站建设哪家权威
  • 物流网站的建设论文一万字建设信用卡积分兑换商城网站
  • 采购网站建设成都鲜花网站建设
  • 英国小子做房产网站网站信息安全监测建设方案
  • 做热血钓鱼网站建自己的个人网站
  • 长沙网站建设费用app软件免费下载
  • 品牌网站开发公司请别人做网站签订合同
  • iis找出网站死循环wordpress创建数据库错误
  • 网站建设与代运营产品介绍企业北京响应式网站制作
  • 福安 网站设计网站制作 成功案例
  • 广东省建设交易中心网站首页做的好的宠物食品网站
  • 网站制作出名的公司网站规划建设与管理维护的论文
  • 网站开发是什么经营范围撰写网站专题活动策划方案
  • 用竹片做的网站科技网站实例
  • 定西市小企业网站建设河南郑州做网站的公司
  • asp.net 网站访问量网站建设案例教程
  • 合肥做网站推广哪家好外贸营销邮件主题
  • 做下一个盗版小说网站上海市公共资源交易平台