Problem na samym początku z MYSQL

Witam. Zaczałem czytać Agile wyd 2, wiem że już ponoć nieaktualne ale poczekam do wydania pełnej trójki bo nie chcę się bawić w czytanie niedokończonej książki, i od razu mam problem. Pierwszy przykład helloworda… powinien działać ponoć a u mnie wywala coś takiego: http://pastebin.4programmers.net/121268 (ładuje dopastebina bo nie widze tu na forum jakiegoś dobrego formatowania a nie chce robić bałaganu)
Nie bardzo znam się na programowaniu bazodanowym więc i na samych bazach niewiele. Wcześniej zainstalowałem mysql przez apt-get na ubuntu. Mysql działa poprawnie. Przy instalacji nie ustawiałem żadnego hasła bo i nie pytano mnie o to. Ktoś mi powiedział zę muszę utworzyć trzy bazy za pomocą “rake db:create:all” Wtedy wywala mi coś takiego:

Couldn’t create database for {“socket”=>"/var/run/mysqld/mysqld.sock", “encoding”=>“utf8”, “username”=>“root”, “adapter”=>“mysql”, “password”=>nil, “database”=>“demo_development”}
Couldn’t create database for {“socket”=>"/var/run/mysqld/mysqld.sock", “encoding”=>“utf8”, “username”=>“root”, “adapter”=>“mysql”, “password”=>“nil”, “database”=>“demo_production”}
Couldn’t create database for {“socket”=>"/var/run/mysqld/mysqld.sock", “encoding”=>“utf8”, “username”=>“root”, “adapter”=>“mysql”, “password”=>“nil”, “database”=>“demo_test”}

Wiem że hasła których używa, tutaj puste, znajdują się w pliku database.yml próbowałem ustawiać jakieś hasło ale nic to nie zmienia. Z resztą dobrze rozumiem? hasło jakie tam ustawię będzie po prostu nowym hasłem do baz które utworzę przy pomocy rake db:create:all?

Ehh ok więc co mam z tym zrobić teraz żeby coś ruszyło i dlaczego w Agile nie ma do tego momentu ani słowa o bazach, po prostu helloworld nie korzysta z bazy żadnej, a tu system mi się o to pluje. Domyślam się, że może się już coś zmieniło, Agile jest do wersji 1.2 chyba a ja mam najnowszą… Więc. Co robić? :slight_smile:

[quote=Pitrija]Witam. Zaczałem czytać Agile wyd 2, wiem że już ponoć nieaktualne ale poczekam do wydania pełnej trójki bo nie chcę się bawić w czytanie niedokończonej książki, i od razu mam problem. Pierwszy przykład helloworda… powinien działać ponoć a u mnie wywala coś takiego: http://pastebin.4programmers.net/121268 (ładuje dopastebina bo nie widze tu na forum jakiegoś dobrego formatowania a nie chce robić bałaganu)
Nie bardzo znam się na programowaniu bazodanowym więc i na samych bazach niewiele. Wcześniej zainstalowałem mysql przez apt-get na ubuntu. Mysql działa poprawnie.[/quote]
Na początek musisz stworzyć bazy danych. Po jednej dla każdego z środowisk w którym będziesz pracował. Domyślnie rozwijasz aplikację w trybie development.

> mysql -u root

lub

> mysql -u root -p HASLO

dalej tworzysz bazę danych dla aplikacji demo i ewentualnie (a właściwie dobrze by było) ustawiasz uprawnienia:

mysql> create database demo_development; mysql> grant all on demo_development.* to NAZWA_USERA_APP@localhost identified by TAJNE_HASLO_APP; mysql> flush privileges;
Plik database.yml jest uaktualniany przez ciebie i na podstawie tych danych Railsy łączą się z bazą:

> development: adapter: mysql database: demo_development username: NAZWA_USERA_APP password: TAJNE_HASLO_APP host: localhost
lub podajesz socket.
Tworzyć bazę danych możesz także z pomocą innych narzędzi, np mysqladmin, phpMyAdmin, MySQL Query Browser czy inne, które Ci odpowiadają.

pozdrawiam

Punkracy, ale kolega chce załatwić to wszystko przez rake db:create i mu się w tym momencie sypie.

Pitrija, zobacz czy możesz się dostać do konsoli mysql przez
mysql -u root -p
(brak hasła)

Jeśli tak - spróbuj zamienić plikowy socket na standardową parę host i port (host: localhost, portu chyba nawet nie musisz podawać)

Dzięki nie do końca zrobiłem tak jak radziłeś ale zorientowałem się gdzie był błąd :stuck_out_tongue: Po prostu zamniałem hasła do mysql. teraz
ruby db:create:all działa