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

Rails 5.2.0切换至mysql2遇SSL连接错误,寻求解决方案

解决Rails切换MySQL时的SSL连接错误

嘿,我刚接触Rails+MySQL的时候也踩过这个SSL连接的坑,给你几个实用的解决思路:

  • 直接禁用SSL连接(本地开发最常用的方案)
    本地开发环境下,MySQL默认一般没开启SSL,但Rails的mysql2适配器会默认尝试用SSL连接,这就导致了这个错误。你只需要在database.yml的default配置块里加上一行禁用SSL的配置就行:

    default: &default
      # 其他原有配置不变
      sslmode: disable
    

    修改完之后重启Rails服务器,应该就能正常连接了。

  • 检查MySQL Socket路径是否正确
    你的配置里写的是/tmp/mysql.sock,但不同系统或MySQL安装方式的socket路径可能不一样:

    • macOS用Homebrew装的MySQL,socket路径通常是/opt/homebrew/var/mysql/mysql.sock
    • Linux系统可能是/var/run/mysqld/mysqld.sock
      你可以通过执行mysql_config --socket命令查看当前MySQL的正确socket路径,然后替换掉database.yml里的对应值。
  • 确认MySQL服务是否正常运行
    先试试用MySQL客户端直接连接测试:

    mysql -u root -p123456 -h 127.0.0.1 -P 3306
    

    如果客户端也连不上,那说明是MySQL服务本身没启动,或者账号密码有问题。可以用以下命令启动服务:

    • macOS:brew services start mysql
    • Linux:sudo systemctl start mysql

修改后的完整database.yml示例:

default: &default
  adapter: mysql2
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  encoding: utf8
  reconnect: true
  host: 127.0.0.1
  port: 3306
  username: root
  password: 123456
  socket: /tmp/mysql.sock
  sslmode: disable

development:
  <<: *default
  database: beginner_dev

test:
  <<: *default
  database: beginner_test

production:
  <<: *default
  database: beginner_prod

内容的提问来源于stack exchange,提问作者C. Gabriel

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 07:42:05