You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 22.04下Ruby on Rails连接MySQL触发Core Dump求助

解决Ubuntu 22.04 LTS下mysql2-0.5.4触发段错误的问题

核心原因

Ubuntu 22.04 LTS默认搭载的MySQL客户端库是8.0.x版本,而mysql2 0.5.4版本与该版本的libmysqlclient存在兼容性问题,导致连接时触发段错误。

解决方案

1. 升级mysql2 gem到兼容版本

修改项目的Gemfile,将mysql2的版本指定为0.5.5及以上的0.5.x分支:

gem 'mysql2', '~> 0.5.6'

执行更新命令:

bundle update mysql2

新版本修复了与libmysqlclient8.0的兼容性问题,能直接解决段错误问题。

2. 重新编译mysql2 gem并绑定系统库

如果需要保留mysql2 0.5.4版本,可重新编译gem并指定Ubuntu系统的MySQL配置路径:

  • 先卸载已安装的mysql2 gem:
gem uninstall mysql2
  • 确保安装了MySQL开发依赖包:
sudo apt-get install libmysqlclient-dev
  • 配置bundle编译参数并重新安装:
bundle config build.mysql2 --with-mysql-config=/usr/bin/mysql_config
bundle install

3. 重新编译Ruby环境

如果Ruby编译时缺失系统库依赖,也可能导致mysql2调用异常。以rbenv为例:

  • 卸载当前Ruby版本:
rbenv uninstall 2.7.5
  • 安装编译依赖:
sudo apt-get install build-essential libssl-dev libreadline-dev zlib1g-dev
  • 重新安装Ruby:
rbenv install 2.7.5

4. 验证MySQL服务与配置

  • 检查MySQL服务状态:
sudo systemctl status mysql

若未启动则执行启动命令:

sudo systemctl start mysql
  • 确认config/database.yml中的数据库连接信息(用户名、密码、主机)正确无误,避免因配置错误间接触发异常。

内容的提问来源于stack exchange,提问作者Devil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 09:57:14