大神们,请问在 database.yml 中能设置端口号吗?我本机的端口号和另外一台电脑的端口号不一样,在自己电脑终端的命令加入对方的端口号后能连上,请问在 database.yml 怎么设置。谢谢啦
URI 加 端口 的文法是 host:port
host:port
所以,database.yml 里的 host: 127.0.0.1 可以试试加上 port 改成如 host: 127.0.0.1:3306
host: 127.0.0.1
port
host: 127.0.0.1:3306
好滴,我试了加了一个 port 字段,这样:port: 13306,这样是运行没问题了,但是按你的这个写后,会报错,为啥
第一个图没问题,我搜了一下,没人说我就自己添加试试了,能连上。第二个图是是把端口号加在 host 后就这样了,为啥呢
端口是 13306?
能不能这样做,跟 mysql 的驱动如何解析 host 有关,看样子不支持那样做
我其实本想直觉上说 port: 3306 就能解决了,但是我手头正好有个新的 Rails 项目,我发现使用 mysql 数据库 的 Rails 的新项目模板的 database.yml里并不包含 port 节,一般为了演示用会在文档里提到,然后默认注释掉,比如你看 PostgreSQL 的默认的 database.yml
port: 3306
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 来。
嗯嗯,好滴,会不会和版本有关呢,我 rails5.1.1,ruby2.4,我也搜了一下,网上没有说这方面的,也不知道以后会不会有影响。
一般不会,Rails 也是使用的 mysql2 这个 gem
嗯嗯😊是啊