mysql - Rails 4 连接远程 MySQL 数据库并拉取数据库结构以便于访问

标签 mysql ruby-on-rails database activerecord

在我的团队中,我们正在开发一个可以通过不同平台访问的系统,例如 Ruby on Rails 网站、桌面 Java 应用程序、Android 以及 iOS 应用程序。
我们的中央 MySQL 数据库在服务器上远程运行,可以通过 PHPMyAdmin(和 ControlPanel)进行访问。

虽然其他平台之间的连接运行良好,但我很难将 Rails 应用程序连接到数据库。我想复制数据库结构(表、索引、列),以便可以访问 Rails 中的数据库,就像访问本地创建的模型中的数据一样(例如 Customer.find(name: "Florian") )。

有办法实现这一点吗?我尝试了一些方法,例如更改我的 database.yml 文件,但是当我运行某些内容时,例如 rails c 它显示:

/Users/florianpfisterer/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/mysql2-0.4.2/lib/mysql2.rb:31:in `require': dlopen(/Users/florianpfisterer/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/extensions/x86_64-darwin-15/2.2.0-static/mysql2-0.4.2/mysql2/mysql2.bundle, 9): Library not loaded: /usr/local/opt/mysql/lib/libmysqlclient.18.dylib
  Referenced from: /Users/florianpfisterer/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/extensions/x86_64-darwin-15/2.2.0-static/mysql2-0.4.2/mysql2/mysql2.bundle
  Reason: image not found - /Users/florianpfisterer/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/extensions/x86_64-darwin-15/2.2.0-static/mysql2-0.4.2/mysql2/mysql2.bundle (LoadError)
  ...

我的“database.yml”文件:

development:
  adapter: mysql2
  encoding: utf8
  host: <host-IP>
  username: <username>
  password: <password>
  port: <port>
  database: <database>
  pool: 5
  timeout: 5000

同一个 block 也在测试生产下。在我的 Gemfile 中,我已包含:

gem 'mysql2'

我运行的是 Mac OS X 10.11.2 El Capitan,服务器是 Linux 系统。我的 Rails 版本是 Rails 4.2.4 和 Ruby ruby 2.2.3p173(2015-08-18 修订版 51636)[x86_64-darwin15]

谢谢!

编辑: 谢谢大家,终于修复了我的database.yml 文件并运行rake db:schema:dump 完成了。但是如何将 schema.rb 转换为本地可用的 ActiveRecord::Model ?

最佳答案

在 Gemfile 中使用它

gem 'mysql2', '~> 0.3.18'

config/database.yml

default: &default
  adapter: mysql2
  encoding: utf8
  pool: 5
  socket: /var/run/mysqld/mysqld.sock
  username:  <%= ENV['DATABASE_USER'] %>
  password: <%= ENV['DATABASE_PASSWORD'] %>

插入到您的.bashrc

export DATABASE_USER='root'

export DATABASE_PASSWORD='123'

关于mysql - Rails 4 连接远程 MySQL 数据库并拉取数据库结构以便于访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34489181/

相关文章:

mysql - MySqlCommand 上的查询语法错误

PHP解析sql结果集

ruby-on-rails - 列错误地从 HSTORE 返回 key

mysql - 如何删除 mysql 查询中的尾随或前导字符?

database - 可扩展的数据库技术和架构

MySQL - 在 MAX 时间戳上左连接

MySQL 表索引基数

ruby-on-rails - 获取 Sprockets::Helpers::RailsHelper::AssetPaths::AssetNotPrecompiledError

ruby-on-rails - 在关联中引用集合中的单个对象

mysql - 每个客户的数据库表或带有链接表的数据库设计?