簡體   English   中英

Rails 4連接到遠程MySQL數據庫並提取數據庫結構以便於訪問

[英]Rails 4 connect to remote MySQL database and pull Database structure for easy access

在我們的團隊中,我們正在開發一個可通過不同平台訪問的系統,例如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

相同的模塊也在testproduction中。 在我的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 revision 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'

將庫路徑添加到您的.bash_profile文件:

MYSQL=/usr/local/mysql/bin
export PATH=$PATH:$MYSQL
export DYLD_LIBRARY_PATH=/usr/local/mysql/lib:$DYLD_LIBRARY_PATH

問題不在於連接,而是與加載mysql本身有關。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM