1

私は RoR を初めて使用し、OSX を使用してアプリケーションをセットアップしないことについて警告されましたが (このような問題があるため)、ここにいます。OS X 10.82を実行しており、すべてのパッケージを正常にバンドルし、すべての一貫性を保つためにすべてを試しました。つまり、Homebrew、RVM、gemの更新、バンドラーなどです。

私の問題は、特に MySQL と mysql2 にあるようです。mysqlを実行していないRailsアプリケーションで他のことを試してみましたが、これらの問題はまったくありませんでした。

/.rvm/gems/ruby-2.0.0-p0/gems/mysql2-0.3.11/lib/mysql2/client.rb:44:in `connect': ユーザー 'root'@'localhost' のアクセスが拒否されました (パスワード: いいえ) (Mysql2::エラー)

アクセスできますmysql -u root -p

これは、インストール プロセス中に「sudo コマンド」を実行するか実行しないかに関連していますか?

  • ruby 2.0.0p0 [x86_64-darwin12.2.0]
  • レール 3.2.13
  • mysql Ver 14.14 Distrib 5.6.10、osx10.8 (x86_64) 用
4

1 に答える 1

0

その後、アプリケーション固有の database.yml ファイルを入力しました。このファイルは、デフォルトで MySQL ルート ユーザーを使用するように構成されていましたが、パスワードが割り当てられていませんでした。

- これが DATABASE.YML の外観です

  • MySQL。バージョン 4.1 および 5.0 をお勧めします。

  • MYSQL ドライバーをインストールする

  • gem インストール mysql2

  • MySQL gem が Gemfile で定義されていることを確認します

-# gem 'mysql2'

-#

-# そして、必ず新しいスタイルのパスワードハッシュを使用してください:

-# http://dev.mysql.com/doc/refman/5.0/en/old-client.html

発達:

アダプター: mysql2

エンコーディング: utf8

再接続: false

データベース: simple_cms

プール: 5

ユーザー名: ルート

password: ここに mypassword を追加しました (これはスペースに敏感なので注意してください。「password:」の後にはスペースを 1 つだけ入れる必要があります)。

ソケット: /tmp/mysql.sock

私にとってはこのエラーが修正されたので、これで問題が完全に解決するかどうかはわかりませんが、今では他の人が見ています:

$ rails generate (これは単なるヘルプ メニューである必要があります) を実行すると、次のようになります (それ自体の問題である可能性があります)。

/.rvm/gems/ruby-1.9.3-p392/gems/mysql2-0.3.11/lib/mysql2/client.rb:44:in `connect': 不明なデータベース 'simple_cms_development' (Mysql2::Error)

アップデート:

一般に、Lynda.com のチュートリアルを使用して、この simple_cms を実行していました。重要な点は、2010 年 (チュートリアルが作成されたとき) に、データベースを作成または構成しなくてもコマンド $ rails generate を使用できるように思われることです。私がこれを言う理由は、(私が抱えていた問題を無視した後) チュートリアルに沿って移動したためです。このチュートリアルでは、上記の simple_cms_development データベースを作成し、database.yml ファイルにユーザーとパスワードの情報を設定する方法について説明します。

それを行った後、 $ rails generate コマンドを実行し、問題なく移行を作成することさえできました。

したがって、多くのトラブルの後、これはすべて、私が説明したように Rails コマンドを呼び出す前に開発データベースをセットアップするという明らかに「新しい要件」に関連しているように見えます。データベースをまだ準備する必要のないコントローラーを作成しているときでも。それがチュートリアルで行われた仮定だったと思います。

この問題について他にご意見がありましたらお知らせください。

于 2013-04-13T18:26:15.357 に答える