2011-12-30 19 views
5

Wystarczy ustawić nową aplikację szynową 3.1.3, używając mysql (klejnot mysql2) na serwerze CentOS 5/apache/passenger ... Mam poprawnie skonfigurowane bazy danych i użytkownika dla tej bazy danych i dodałem login i informacje do mojego pliku database.yml ... Mogę wygenerować rzeczy, i prowizji db: migrować ok, ale "Przykro nam , ale coś poszło nie tak. " komunikat jest wyświetlany w przeglądarce, a ten komunikat jest wyświetlany w pliku production.log!Mysql2 :: Błąd (odmowa dostępu dla użytkownika 'root' @ 'localhost' (przy użyciu hasła: NIE)):

Rozpoczęte GET "/" dla xx.xxx.xx.xxx w 2011-12-29 19:52:35 -0600

Mysql2 :: Error (Access denied for user 'root' @ 'localhost' (używając hasła: NIE)):

Dziwne, nie używam "root" jako danych logowania w database.yml ... Jakieś sugestie?

development: 
    adapter: mysql2 
    encoding: utf8 
    reconnect: false 
    database: the_db_I_made 
    pool: 5 
    username: the_user_I_made 
    password: the_password 
    socket: /var/lib/mysql/mysql.sock 

production: 
    adapter: mysql2 
    encoding: utf8 
    reconnect: false 
    database: the_db_I_made 
    pool: 5 
    username: the_user_I_made 
    password: the_password 
    socket: /var/lib/mysql/mysql.sock 
+1

Należy dodać zawartość database.yml (filtrowanie swoją Info) – andrewpthorp

Odpowiedz

1

Ok, myślę, że to wszystko jest częścią mojego krzywej uczenia :)

Co skończyło się to było to: gem dla pasażera, że ​​zainstalowana została pierwotnie wersja 3.0.9, zrobiłem aktualizację gem -system i zainstalowaną wersję 3.0.11. Tak więc serwer myślał, że używa wersji 3.0.11, a ja wciąż wskazywałem biblioteki dla wersji 3.0.9 w moim pliku rails_server.conf. Znalazłem jak uaktualnić na http://blog.phusion.nl/

+1

Zamiast tylko wskazywać na blog Phusion, byłoby miło wskazać konkretny artykuł lub dołączyć odpowiednie polecenia, aby uaktualnić Pasażera w swojej faktycznej odpowiedzi. –

4

Pęczek pytania/sugestie:

  1. można połączyć się z bazą danych przy użyciu terminala?

    mysql -u root -p 
    
  2. Czy próbowałeś tego również w trybie deweloperskim? Jeśli tak, podziel się wynikami.

  3. spróbuj usunąć

    socket: /var/lib/mysql/mysql.sock 
    
  4. Czy instalacja gem prawidłowe?

    gem check mysql2 
    

EDIT:

Istnieje wiele różnic w rozwoju i trybie produkcyjnym (w tym, lecz nie ograniczając się do zmiennych środowiskowych, takich jak ciąg połączenia bazy danych aktywów pre-kompilacji, różne poziom rejestrowania, info zwyczaj debug na stronach błędów)

Żenujące !! ** **

masz nie zawiera własności "hosta" w twojej konfiguracji!

Spróbuj tego:

production: 
    adapter: mysql2 
    encoding: utf8 
    reconnect: false 
    host: your_host #<----- normally localhost 
    database: the_db_I_made 
    pool: 5 
    username: the_user_I_made 
    password: the_password 
    socket: /var/lib/mysql/mysql.sock 
+0

Hi @ Varun-Vohrą! 1. Mogę połączyć się z terminalem za pomocą 'mysql -u the_user -p the_db' i uruchomić komendy takie jak" show tables ". 2. Jestem nowy i naprawdę nie mam głowy owiniętej wokół, jaka jest różnica między trybem deweloperskim a produkcyjnym innym niż tryb deweloperski, może ma więcej błędów wyjściowych lub informacji? Wygląda na to, że migracje zapisują do pliku development.log, a żądania HTTP zapisują do pliku production.log. 3. Po prostu wypróbowałem usunięcie gniazda: /var/lib/mysql/mysql.sock - ten sam problem nadal występuje. 4. Ran gem sprawdź mysql2 - nie było wyjścia tylko zwróciło nową linię .. tak myślę, że to jest ok .. –

+0

Dodałem atrybut hosta do database.yml - nadal ten sam błąd. Zasadniczo z jakiegoś powodu klejnot mysql2 myśli, że próbuję połączyć się z bazą danych, taką jak ta "-u root -p" ... nawet jeśli to nie jest to, co mam w pliku database.yml .. –

+0

Najpierw usunięto dodano z powrotem linię gniazd i działało! – Eenvincible

0
  1. W Ubuntu 1)/usr/bin/mysql_secure_installation 2) Uruchom w terminalu wykonaj kroki ostrożnie zmienić hasło mysql here.Everything zrobić .then iść do database.yml zmian hasło wcześniej utworzone przez Ciebie. Uruchom serwer szyn i sprawdź aplikację ..będzie działać
0

Utworzono bazę danych "the_db_I_made"?

Najpierw go stwórz, a następnie uruchom, inaczej będzie pokazywał ten błąd w sposób ciągły.

Teraz spróbuj to zrobić.

0

Dla mnie Wystąpił błąd z powodu braku bazy danych. Więc stworzył jedną Zastosowanie:

$ rake db: create

A problem został rozwiązany: D