如何使用docker连接rails应用程序中的mysql?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何使用docker连接rails应用程序中的mysql?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1715字,纯文字阅读大概需要3分钟。
内容图文
![如何使用docker连接rails应用程序中的mysql?](/upload/InfoBanner/zyjiaocheng/907/1ab6b0d9292744be885ac8997e2d3811.jpg)
我创建了一个使用mysql数据库的rails app.
现在想把它们放入docker容器中.
我正在使用docker,docker-machine,docker-compose.
我的docker-compose.yml
db:
image: mysql
environment:
MYSQL_ROOT_PASSWORD: <%= ENV['MYSQL_ROOT_PASSWORD'] %>
ports:
- "3306:3306"
web:
build: .
command: bundle exec rails s -p 3000 -b '0.0.0.0'
volumes:
- .:/myapp
ports:
- "3000:3000"
links:
- db
我的config / database.yml
default: &default
adapter: mysql2
encoding: utf8
pool: 5
username: root
password: <%= ENV['MYSQL_ROOT_PASSWORD'] %>
host: <%= ENV['DB_PORT_3306_TCP_ADDR'] %>
port: <%= ENV['DB_PORT_3306_TCP_PORT'] %>
development:
<<: *default
database: myapp_development
test:
<<: *default
database: myapp_test
production:
<<: *default
database: myapp_production
当启动应用程序
$docker-compose up
...
sidekiq_1 | Host '172.17.0.5' is not allowed to connect to this MySQL server
...
我的网络环境
$docker-compose run web env
...
DB_PORT=tcp://172.17.0.3:3306
DB_PORT_3306_TCP=tcp://172.17.0.3:3306
DB_PORT_3306_TCP_ADDR=172.17.0.3
DB_PORT_3306_TCP_PORT=3306
DB_PORT_3306_TCP_PROTO=tcp
WEB_PORT=tcp://172.17.0.6:3000
WEB_PORT_3000_TCP=tcp://172.17.0.6:3000
WEB_PORT_3000_TCP_ADDR=172.17.0.6
WEB_PORT_3000_TCP_PORT=3000
WEB_PORT_3000_TCP_PROTO=tcp
...
我的码头机ip
$docker-machine ip myapp
192.168.99.100
从浏览器访问:http://192.168.99.100:3000,然后看到错误:
Mysql2::Error
Host '172.17.0.6' is not allowed to connect to this MySQL server
172.17.0.3,172.17.0.5,172.17.0.6等.为什么他们使用不同的ips?
那么如何连接mysql?我无法理解config / database.yml文件中写入的主机和端口.
解决方法:
就我而言,我在主机上运行Rails,在docker中运行MySQL,这是官方映像.
添加主机:127.0.0.1解决了问题.
配置/ database.yml的
default: &default
adapter: mysql2
encoding: utf8
pool: 5
username: root
password:
host: 127.0.0.1
内容总结
以上是互联网集市为您收集整理的如何使用docker连接rails应用程序中的mysql?全部内容,希望文章能够帮你解决如何使用docker连接rails应用程序中的mysql?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。