Cześć wszystkim !
Ostatnio przeniosłem się na Ubuntu i mam taki problem, że nie mogę zrobić rake’a, po odpaleniu serwera mam taki błąd:
Status: 500 Internal Server Error
Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
Dodam też, że gdy chcę stworzyć nowy projekt komendą ‘rails projekt -d mysql’, to robi mi dwa foldery z nazwami ‘projekt’ i ‘mysql’…
root@bangeusz-desktop:/home/bangeusz# gem install mysql
Building native extensions. This could take a while...
Successfully installed mysql-2.8.1
1 gem installed
Installing ri documentation for mysql-2.8.1...
… i nie działa.
Ruby version 1.8.7 (i486-linux)
RubyGems version 1.3.5
Rack version 1.0
Rails version 2.3.5
Active Record version 2.3.5
Active Resource version 2.3.5
Action Mailer version 2.3.5
Active Support version 2.3.5
Application root /home/bangeusz/Pulpit/www/projekt
Environment development
Database adapter mysql
Jeśli odpowie “No such file or directory” to znaczy że socket jest gdzie indziej. Trzeba otworzyć plik konfiguracyjny my.cnf i poszukać gdzie jest socket, pewnie gdzieś w /opt/lampp/var/mysql
Jak już odnajdziesz socket to w pliku database.yml dodajesz linijkę do sekcji “development”:
socket: /opt/lampp/var/run/mysqld.sock # na przykład
Wykomentuj sekcje “socket” w pliku config/database.yml i sprawdź czy działa. Najpewniej ten socket jeśli w ogóle jest tworzony, to nie tam gdzie trzeba (zwróćcie uwagę na /opt w ścieżce dostępu), albo ma niewłaściwe prawa dostępu.
bangeusz@bangeusz-desktop:~/Pulpit/www/projekt$ rake db:migrate
(in /home/bangeusz/Pulpit/www/projekt)
rake aborted!
Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
(Socketa nie było wcześniej.)
Macie jeszcze jakieś pomysły?
EDIT:
Nawet gdy mysql jest wyłączony, wyskakuje ten sam błąd.
Może to coś mieć współnego, że przy wpisaniu
rails projekt -d mysql
Wtedy railsy nazwę mysql traktują jako drugą nazwę projektu… [ Tworzą się dwa foldery projekt i mysql. ]
[quote=Bangeusz]Hosiawak, zrobiłem tak i niestety:
bangeusz@bangeusz-desktop:~/Pulpit/www/projekt$ rake db:migrate
(in /home/bangeusz/Pulpit/www/projekt)
rake aborted!
Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
(Socketa nie było wcześniej.)
Macie jeszcze jakieś pomysły?[/quote] @Bangeusz: Musisz sobie odpowiedzieć na podstawowe pytanie:
Czy moja baza MySQL działa ?
Jeśli tak to czy używa socketa (jeśli tak to gdzie on się znajduje) czy też nasłuchuje na porcie.
Nie rób nic innego dopóki nie znajdziesz odpowiedzi na to pytanie (nie kombinuj z poleceniem rails czy rake bo to nie ma z tym nic wspólnego).
Jak już będziesz wiedzieć czy to socket czy port to dalsze kroki znajdziesz w tym wątku.
Więc mówię Ci tak:
Mój mysql działa poprawnie, jak i phpmyadmin. (Mam lampp’a, więc za bardzo nie wiem.)
Ale bardziej mnie zastanawia to, że jak wpisuje rails projekt -d mysql, to mysql bierze jako drugą nazwę, choć gem jest zainstalowany. -.-
Co dokładnie zrobiłeś? Wykomentuj sekcje socket w config/database.yml - niemożliwe, żeby dalej był ten komunikat, jeśli nie masz w opcjach ustawionego socketu.
spróbuj zrobić link socketa do domyślnej jego lokacji:
sudo ln -s /var/run/mysqld/mysqld.sock /tmp/mysql.sock
i wywal “socket: /var/run/mysqld/mysqld.sock” z database.yml