IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者
首页 / sunnyu.
IT 2020-02-01 19:46:44 / 累计浏览 1,760

修改重置MySQL5.7得root登录密码

作者从一台测试服务器忘记MySQL root密码的实际问题出发,分享了在MySQL 5.7环境下重置密码的完整流程。文章直接切入痛点,说明了问题的根源:长期未登录导致密码遗忘。 解决方法的核心是利用MySQL的配置跳过启动时的密码验证。具体操作上,需要在配置文件`/etc/my.cnf`的`[mysqld]`部分添加`skip-grant-tables=1`,然后重启服务。此时可以直接用root用户免密登录数据库,通过`update user`命令直接修改`authentication_string`字段来设置新密码。这里作者特别指出,5.7版本将密码字段名从`password`改为`authentication_string`,这是一个关键的版本差异,照搬旧教程会出错。 完成密码更新后,必须记得删除配置行并再次重启服务,才能让数据库恢复正常的安全校验。整篇文章步骤清晰,从问题复现到最终解决形成了一个闭环,对遇到同类问题的开发者来说,是一个可直接按步骤操作的实用指南。

本机暂存
IT 2016-02-11 23:09:31 / 累计浏览 2,640

在Linux下搜索包含特定字符串的文件列表

这篇讲的是在Linux下搜索文件内容时,一个很实际的踩坑经历。作者原本习惯用 `find . |xargs grep` 来查找包含目标文字的文件,这个组合拳在大多数情况下都很好用。但最近他发现了一个盲区:当要搜索的字符串是Unicode编码时,这个方法会失效,导致查找不到。 问题的根因在于,`grep` 默认处理的是本地编码(如ANSI),对于以Unicode形式存储的字符串无能为力。作者分享了他的解决方案:将命令替换为 `find . |xargs strings -e l -f |grep "文字"`。这里的关键是利用了 `strings` 命令。其中,`-e l` 参数专门用于从二进制文件中提取Unicode字符串,而 `-f` 参数则会在每个匹配的字符串前打印出文件名,方便直接定位。这样,通过一个巧妙的管道组合,就解决了原先的编码识别问题,让文件内容搜索在混合编码环境下依然可靠。

本机暂存
IT 2014-11-23 21:47:21 / 累计浏览 3,800

修改Linux网卡连接速度

这篇讲的是作者如何发现并解决内网Linux服务器上传速度异常缓慢的问题。服务器文件传输速度只有1MB/s,作者怀疑是网卡工作模式所致。通过 `ethtool eth0` 命令检查,果然发现网卡速度被锁定在了10Mb/s的低速模式,即使它支持100Mb/s。 针对这个问题,作者使用了 `ethtool -s eth0 speed 100 duplex full` 命令,将网卡强制设定为100Mb/s全双工模式。调整后再次检查,网卡已成功切换到新的工作状态。最终实测文件传输速度达到了10MB/s,性能恢复正常。 这篇文章简洁清晰地展示了一个常见的网络性能问题排查过程:从现象(速度慢)到诊断(查网卡模式),再到解决(调整速率参数),并验证了效果。对于运维人员或遇到类似网络瓶颈的开发者,这个用 `ethtool` 手动调整链路参数的方法,是一个直接有效的参考方案。

本机暂存
IT 2013-07-30 13:50:50 / 累计浏览 8,540

找回linux丢失的磁盘空间

这篇讲的是服务器磁盘空间莫名“消失”的一次典型排查。作者发现 `df` 命令显示磁盘使用率接近 100%,但用 `du` 统计具体目录占用时,两者结果却相差甚远,这显然不正常。 在排除了常见的“挂载点覆盖”问题后,作者将矛头指向了另一个经典场景:已删除的文件仍被进程占用,导致其占用的空间无法释放,且 `du` 也统计不到。通过 `lsof | grep deleted` 命令,果然揪出了一个躲在后台、持续写入的巨大日志文件。 解决方法很直接:终止那个持有文件句柄的进程,磁盘空间随即开始逐步释放。重启该进程后,日志也恢复正常写入。整个过程清晰地展示了 Linux 下磁盘空间“丢失”的一个常见原因及其高效定位与解决方法,对于运维人员非常有参考价值。

本机暂存
IT 2012-09-10 23:11:40 / 累计浏览 2,580

给MySQL的show table status结果做过滤

这篇文章解决了一个实际开发中常遇到的问题:MySQL的 `SHOW TABLE STATUS` 命令无法直接过滤结果。通常我们只能看到整个数据库所有表的状态列表,当表数量很多时,想快速筛选出特定状态的表(比如查看哪些表引擎是InnoDB、或者估算哪些表可能占用空间较大)就显得非常不便。 作者从这个痛点出发,分享了两种实用的解决方案。一种是借助脚本或自定义工具,先获取全部结果再在本地进行过滤;另一种则更为巧妙,直接通过查询系统信息库(`information_schema`)中的 `TABLES` 表,并结合 `SELECT` 语句的 `WHERE` 子句,来实现类似 `SHOW TABLE STATUS` 且支持灵活过滤的效果。 文章清晰地对比了原始命令的局限性与替代方案的灵活性,特别是通过 `information_schema` 查询的方法,不仅能模拟出表状态信息,还能根据任意字段进行条件筛选,功能更加强大。对于需要管理大量数据表的DBA或开发人员来说,这是一个能直接提升运维效率的小技巧。

本机暂存