1

私はこれを数日間扱っていますが、localhost の単純な mysql データベースに接続できません。

require "mysql"

@db_host = "localhost"
@db_user = "myrubyapp"
@db_pass = "1234"
@db_name = "myrubyapp"

mysql = Mysql.new(:host => @db_host, :username => @db_user, :password => @db_pass, :database => @db_name)

私が得た出力はエラーです: can't convert Hash into String (TypeError)where Mysql.newis.

2つ目、gemをmysql2に変えてみた

require "mysql2"

@db_host = "localhost"
@db_user = "myrubyapp"
@db_pass = "1234"
@db_name = "myrubyapp"

mysql = Mysql2.new(:host => @db_host, :username => @db_user, :password => @db_pass, :database => @db_name)

出力もエラーですが、最初のものとは異なります: undefined method "new" for Mysql2:Module (NoMethodError).

皆さん、この種の質問をしなければならないのは申し訳ありませんが、私は本当に混乱しています.JavaSEとEEで3年以上プログラミングした経験があります.恥ずかしくて対処できません. 私を正しい方向に向けてください。私を厳しく判断しないでください。私はRubyが初めてです。

4

3 に答える 3

3

試す

mysql = Mysql2::Client.new(:host => @db_host, :username => @db_user, :password => @db_pass, :database => @db_name)
于 2013-01-19T19:43:52.680 に答える
2

正しい構文は次のとおりです。

client = Mysql2::Client.new(:host => "localhost", :username => "root")

その他の例については、github の mysql2 を参照してください。

生の mysql2 lib が提供する機能は非常に限定されており、Sequel は多くのことを実行できるため、Sequelを確認することをお勧めします。

于 2013-01-19T19:44:04.723 に答える
1

gem mysql を使用したことはありませんが、ハッシュ :host => などを削除して、パラメーターのリストを直接渡そうとしましたか? チュートリアルのhttp://zetcode.com/db/mysqlrubytutorial/
の ようなものcon = Mysql.new db_host, db_user, db_pass, db_name

于 2013-01-19T19:47:53.330 に答える