Błąd podczas startu (Ubuntu)

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’…

Pozdrawiam i oczekuję pomocy. :wink:

Baza MySQL zainstalowana i chodzi?

Gem mysql zainstalowany?

Tak, zainstalowany.

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.

moze script/about zwróci coś wiecej ? albo w logach ? a baza chodzi, np phpmyadminem udaje sie połączyć ? Spróbuj w konsoli
ps -ewf | grep mysql

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

root 2429 1 0 14:37 ? 00:00:00 /bin/sh /opt/lampp/bin/mysqld_safe --datadir=/opt/lampp/var/mysql --pid-file=/opt/lampp/var/mysql/bangeusz-desktop.pid nobody 2560 2429 0 14:37 ? 00:00:02 /opt/lampp/sbin/mysqld --basedir=/opt/lampp --datadir=/opt/lampp/var/mysql --user=nobody --log-error=/opt/lampp/var/mysql/bangeusz-desktop.err --pid-file=/opt/lampp/var/mysql/bangeusz-desktop.pid --socket=/opt/lampp/var/mysql/mysql.sock --port=3306 bangeusz 4101 4063 0 15:54 pts/1 00:00:00 grep --color=auto mysql
Phpmyadmin działa bez zarzutu, co robić?

sudo gem update --system i chwilowo nie mam innych pomysłów :frowning: u mnie mysql odpalił bez problemów
aha, a co masz w database.yml ?

Wpisać:

ls /var/run/mysqld/mysqld.sock

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

…albo łączysz się przez port (usuwasz linijkę “socket” i zostawiasz host: localhost)

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.

EDIT

:smiley:

CZTERY SEKUNDY :smiley:

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?

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. ]

I w database.xml jest sqlite3.

Update. Proszę o pomoc, ja chcę dalej się uczyć. ;(

A jesteś pewien, że masz odpalonego mysql ?
zerknij

sudo /etc/init.d/mysql start

[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. -.-

Może mi ktoś pomóc na skype, zobaczyć jak wygląda sytuacja? Obiecuję, że podam rozwiązanie, jeśli ktoś mi pomoże. :slight_smile: Zapraszam - login: DarkViperek

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.

miałem kiedyś coś podobnego

wystarczyło zmienić

  host: localhost

na

  host: 127.0.0.7

pomogło ?

moze w /etc/hosts masz jakieś dziwne wpisy ?

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

napisz czy pomogło.