2

Rails アプリケーションをデフォルトの SQLite ではなく MySQL で動作させようとしています。正しく動作しているように見える MySQL の使用を強制する新しいプロジェクトを作成しました。

次のように、Gem ファイルに gem エントリを追加しました。

source 'https://rubygems.org'

    gem 'rails', '3.2.13'

    # Bundle edge Rails instead:
    # gem 'rails', :git => 'git://github.com/rails/rails.git'

    gem 'mysql2'

bundle コマンドを実行すると、mysql gem を使用していることがわかります。

Using mysql2 <0.3.11>

また、database.yml ファイルを次のように構成しました。

development:
 adapter: mysql2
 encoding: utf8
 reconnect: false
 database: dbname
 pool: 5
 username: uname
 password: pass
 host: hostname

test:
 development:
 adapter: mysql2
 encoding: utf8
 reconnect: false
 database: dbname
 pool: 5
 username: uname
 password: pass
 host: hostname

production:
 development:
 adapter: mysql2
 encoding: utf8
 reconnect: false
 database: dbname
 pool: 5
 username: uname
 password: pass
 host: hostname

しかし、Rails サーバーを実行しようとすると、次のようになります。

C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/mysql2-0.3.11-x86-mingw32/l ib/mysql2/mysql2.rb:2:in require': 126: The specified module could not be found . - C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/mysql2-0.3.11-x86-min gw32/lib/mysql2/1.9/mysql2.so (LoadError) from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/mysql2-0.3.11- x86-mingw32/lib/mysql2/mysql2.rb:2:in' from C:/RailsInstaller/ Ruby1.9.3/lib/ruby/gems/1.9.1/gems/mysql2-0.3.11- x86-mingw32/lib/mysql2.rb:9:in require' from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/mysql2-0.3.11- x86-mingw32/lib/mysql2.rb:9:in' from C:/RailsInstaller/Ruby1.9.3/lib/ruby/ gems/1.9.1/gems/bundler-1.3.4/ lib/bundler/runtime.rb:72: require' from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/bundler-1.3.4/ lib/bundler/runtime.rb:72:inC:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9 から「require」内のブロック (2 レベル) .1/gems/bundler-1.3.4/ lib/bundler/runtime.rb:70: each' from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/bundler-1.3.4/ lib/bundler/runtime.rb:70:inC:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/bundler- からの require 内のブロック1.3.4/ lib/bundler/runtime.rb:59:in each' from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/bundler-1.3.4/ lib/bundler/runtime.rb:59:inrequire' from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/bundler-1.3.4/ lib/bundler.rb :132:インチrequire' from C:/Users/n00151956/Desktop/RubyProjects/Demo/config/application.rb: 7:in' from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3.2.1 3/lib/rails/commands.rb:53:in require' from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3.2.1 3/lib/rails/commands.rb:53:inblock in ' from C:/RailsInstaller/ Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3.2.1 3/lib/rails/commands.rb:50:in tap' from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3.2.1 3/lib/rails/commands.rb:50:in'from script/rails:6:in require' from script/rails:6:in'

RailsサーバーをデフォルトのSQLiteで実行することができましたが、私の人生では、MySQLで動作させることはできません. 誰かがこれで私を助けることができれば、それは大きな助けになるでしょう!

ありがとう

4

2 に答える 2

3
  1. mysql-connectorから libmysql.dll ファイルをダウンロードし、C:\ RailsInstaller \Ruby1.9.3\bin に配置します。
  2. 管理者としてコマンド プロンプトを開き、次の方法で mysql サーバーを起動します。 C:\Program Files\MySQL\MySQL Server 5.0\bin\mysql

アップデート

development:
  adapter: mysql2
  database: proj_development
  username: root
  password: pass
  host: 127.0.0.1
  socket: /tmp/mysql.sock

test:
  adapter: mysql2
  database: proj_test
  username: root
  password: pass
  host: 127.0.0.1
  socket: /tmp/mysql.sock

production:
  adapter: mysql2
  database: proj_production
  username: root
  password: pass
  host: 127.0.0.1
  socket: /tmp/mysql.sock
于 2013-05-28T19:35:27.743 に答える
1

インストールされていない場合は、Mysqlをインストールします。

  1. MySQL-connector (zip ファイル) をダウンロードします - noinstall バージョンをダウンロードします (インストール用ではありません)。あなたはそれを抽出する必要がありますc:\mysql-connector-c-your-version-download

  2. libmysql.dllからコピーc:\mysql-connector-c-your-version-download_C:\RailsInstaller\Ruby1.9.3\bin

  3. MySQL gem をインストールする

    gem install mysql --platform=ruby -- --with-mysql-dir=C:/mysql-connector-c-your-version-download

于 2013-05-28T19:44:45.907 に答える