分类: MySQL 8.0
-
本文记录了在 Ubuntu 26.04 上利用 Docker 搭建 Go Gin 开发环境的全过程。通过编写 Dockerfile 预装 Git,构建 Go 1.26 Alpine 镜像,并编写 docker-compose.yml 接入现有的 MySQL 和 Redis 自定义网络。最终实现了在容器内运行 Gin 应用,成功验证了数据库连通性及 API 请求,实现了代码与数据库容器的分离部署。
-
本文介绍了在 Ubuntu 系统下使用 Docker 引擎管理多版本数据库的开发环境配置过程。文章解决了 VPN 环境下的网络超时问题,通过指定公共 DNS 和配置 DaoCloud 镜像加速器实现了镜像拉取。作者演示了部署 MySQL 5.7、MySQL 8.0 与 Redis 7.2 容器的完整步骤,包括编写 Docker Compose 文件及处理 8.0 连接兼容性。最终实现了容器间的网络互通与数据持久化,为项目提供稳定且版本隔离的数据库支持。
-
在 MySQL 8.0 环境中,包含 10000 个参数的 IN 条件查询导致执行时间过长,引发接口响应超时。经排查发现,将参数数量减少至 5 个后响应恢复正常,且数据表记录总数为 2000 万条。分析认为 SQL 未正确使用索引,通过调整 SQL 语句强制使用 USE INDEX,有效解决了查询耗时过长和超时问题。
-
文章针对 Yii2 运行时出现的 Malformed UTF-8 characters 异常进行分析,定位原因在于响应数据包含 MySQL 的 Point 类型字段。虽尝试使用 ST_X 和 ST_Y 空间函数及 addSelect() 方法提取经纬度来规避直接序列化错误,但考虑到模型层自动处理的复杂性,最终放弃使用 Point 类型字段,将数据库结构调整为使用两个独立的 Decimal 字段分别存储经纬度。
-
本文针对在 phpMyAdmin 登录时提示 mysqli::real_connect 认证方法未知的问题进行分析。由于 MySQL 8.0 默认使用 caching_sha2_password,而 PHP 7.3.9 环境不兼容,解决方法包括在 MySQL 配置文件中添加默认认证插件设置并重启服务,以及手动更新已有 root 用户的认证插件为 mysql_native_password。完成操作后,再次登录 phpMyAdmin 即可成功。
-
针对性能环境中列表接口响应超时的问题,通过分析 SQL 发现 count 查询耗时极高。尝试通过调整组合索引的字段顺序和数量来优化查询,最终确定包含 shipping_at_gmt 等四个字段的组合索引方案。为了确保 count 查询的稳定性,决定在特定条件下强制使用该组合索引,将耗时控制在 5 秒左右。随后发现实际数据查询强制使用索引反而耗时增加,因此计划后续在 Laravel 中实现仅对 count 查询强制索引,从而将接口响应时间优化至 10 秒以内。
-
在使用 Spatie\QueryBuilder 时,请求参数中包含逗号会导致 SQL 报错,提示绑定参数数量不匹配。经检查,原因是默认将逗号分隔的字符串拆分为了多个参数。通过禁用逗号自动转换为数组的功能,确保生成的 SQL 占位符数量与绑定参数一致,最终解决了该报错问题并验证了查询结果的正确性。
-
在尝试配置 MySQL Server 8.0.39 时报错,日志显示 mysqld.exe 设置 mysqlx-port 失败。通过修改 my.ini 文件、多次点击 Reconfigure 以及卸载重装操作均无法解决,初始化数据库和启动服务器反复失败。最终参考相关资料,重新下载了最新版的 MySQL Installer mysql-installer-community-8.0.39.0.msi 后,选择 8.0.36 版本进行安装,成功完成了配置且未再报错。
-
在修改表字段类型的 PHP 实现中,发现在 Navicat for MySQL 中查看 DDL 未显示变化。即使关闭连接或数据库后重新打开,结果依然不变。最终关闭并重新启动 Navicat for MySQL 后,DDL 才更新并显示出变更。
