新手问题 rails 中的 database.yml 中能设置 mysql 的端口号吗?

wawayu · 2017年07月08日 · 最后由 wawayu 回复于 2017年07月08日 · 3213 次阅读

大神们,请问在 database.yml 中能设置端口号吗?我本机的端口号和另外一台电脑的端口号不一样,在自己电脑终端的命令加入对方的端口号后能连上,请问在 database.yml 怎么设置。谢谢啦😝

URI 加 端口 的文法是 host:port

所以,database.yml 里的 host: 127.0.0.1 可以试试加上 port 改成如 host: 127.0.0.1:3306

jasl 回复

好滴😊,我试了加了一个 port 字段,这样:port: 13306,这样是运行没问题了,但是按你的这个写后,会报错,为啥

jasl 回复

第一个图没问题,我搜了一下,没人说我就自己添加试试了,能连上。第二个图是是把端口号加在 host 后就这样了,为啥呢

端口是 13306?

wawayu 回复

能不能这样做,跟 mysql 的驱动如何解析 host 有关,看样子不支持那样做

我其实本想直觉上说 port: 3306 就能解决了,但是我手头正好有个新的 Rails 项目,我发现使用 mysql 数据库 的 Rails 的新项目模板的 database.yml里并不包含 port 节,一般为了演示用会在文档里提到,然后默认注释掉,比如你看 PostgreSQL 的默认的 database.yml

但我没有在 mysql 的看到类似的章节,模板源码在此 https://github.com/rails/rails/blob/master/railties/lib/rails/generators/rails/app/templates/config/databases/mysql.yml

如果你试过加 port 奏效,那其实可以说是 Rails 的疏漏了,你可以仿照 postgresql 的那个模板,为 mysql 的增加一个如何指定 port 的注释,骗一个 PR 来。

jasl 回复

嗯嗯,好滴,会不会和版本有关呢,我 rails5.1.1,ruby2.4,我也搜了一下,网上没有说这方面的,也不知道以后会不会有影响。

wawayu 回复

一般不会,Rails 也是使用的 mysql2 这个 gem

zouyu 回复

嗯嗯😊是啊

需要 登录 后方可回复, 如果你还没有账号请 注册新账号