2016-06-27 12 views
5

Mam aplikację Rails 4.2 wdrożoną na serwerze Ubunutu 14.4 Trusty. Problem, który mam teraz, to niezdolność do uruchomienia skryptu, który zapisuje dla mnie zapisy. Otrzymuję ten błąd:Odmowa dostępu do skryptu Ruby w aplikacji RYS w aplikacji Railsy

Access denied for user 'root'@'localhost' (using password: NO) (Mysql2::Error) 

mam skonfigurowaną bazę produkcyjną w użyciu korzeń nazwę użytkownika z odpowiednim hasłem, ale po ponownym uruchomieniu serwera i wypróbowanie nowej konfiguracji otrzymuję powyższy błąd.

Uruchamiam skrypt, przechodząc do biblioteki lib/na serwerze i uruchamiając ruby script9000.rb. Skrypt działa poprawnie, dopóki nie spróbuje zapisać rekordu.

Dlaczego to może się stać?


Skrypt fauluje się na Year.find_or_create_by

def save_record(record) 
    sanitize_record(record) 
    full_year = complete_year(@@record["year_number"]) 
    if full_year >= 2014 
     year = Year.find_or_create_by(year: full_year) 
     year.records.create(@@record) 
    end 
    end 
+0

nie widząc skryptu nie ma wiele do zrobienia oprócz ślepo odgadnąć – jaydel

+0

dodałem część gdzie łamie. Rzeczywisty skrypt jest ogromny. To działało na innym serwerze, który miałem. Domyślam się, że ma to coś wspólnego z konfiguracją MYSQL. –

+0

Wygląda na problem dotyczący poświadczeń MySQL. Gdzie Twoja aplikacja określa użytkownika i loginu? Być może byłaby to dobra okazja do ustawienia nowego użytkownika MySQL z bardziej rygorystycznymi privami, zamiast używania root'a? – Nathan

Odpowiedz

3
Access denied for user 'root'@'localhost' (using password: NO) 

Jest Błąd MySQL, to znaczy, że próbujesz połączyć się z bazą danych z użytkownikiem korzenia z localhost z puste lub bez hasła. Upewnij się, że masz użytkownika root @ localhost na swoim serwerze mysql lub upewnij się, że podałeś prawidłowe hasło.

+0

Usunąłem hasło z konta mysql użytkownika root. Był w stanie uratować. Jest to jednak bardzo niebezpieczne i muszę to naprawić. Czym dokładnie jest użycie użytkownika root bez hasła? Właśnie to, że to działa, wydaje się, że muszę go skonfigurować, aby działało z hasłem? I dlaczego skrypt działa jako root, gdy sam uruchamiam skrypt przy użyciu mojego użytkownika wdrażania? –

+0

Skrypt może być wykonywany jak każdy użytkownik. Co ważniejsze, jaki użytkownik i hasło są używane, kiedy twój skrypt łączy się z bazą danych i jak się łączysz. –

1

Może to pochodzić z kilku problemów podczas opisywania przepływu pracy.

Od małego kontekstu: uruchomić skrypt z RAILS_ENV=production ruby script9000.rb

Powiązane problemy