Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem, No database selected
Forum PHP.pl > Forum > Bazy danych > MySQL
kalen
wpisuje w wierszu polecen:
  1. c:\mysql\bin\mysql -h localhost -u bp5am -p

Nastepnie wpisuje:
  1. SHOW DATABASES;

nastepnie
  1. SHOW TABLES;

wyskakuje mi: ERROR 1046 (3D000): No databases selected

Co jest nie tak i co to oznacza?
f1xer
to oznacza że nie wybrałeś bazy danych

  1. USE nazwa_bazy;
kalen
Napisalem ponizsze pliki:
createmovie.php
  1. <?php
  2. // połączenie z serwerem MySQL; użyliśmy własnych parametrów
  3. // w razie potrzeby zmień na inne
  4. $connect = mysql_connect("localhost", "bp5am", "bp5ampass") or
  5. die ("SprawdĽ połączenie z serwerem.");
  6.  
  7. // utwórz bazę danych, jeśli jeszcze nie istnieje
  8. $create = mysql_query("CREATE DATABASE IF NOT EXISTS moviesite")
  9.  
  10. //wybierz nowo utworzoną bazę danych
  11. mysql_select_db("moviesite");
  12.  
  13. //utwórz tabelę "movie"
  14. $movie = "CREATE TABLE movie (
  15. movie_id int(11) NOT NULL auto_increment,
  16. movie_name varchar(255) NOT NULL,
  17. movie_type tinyint(2) NOT NULL deafult 0,
  18. movie_year int(4) NOT NULL deafult 0,
  19. movie_leadactor int(11) NOT NULL deafult 0,
  20. movie_director int(11) NOT NULL deafult 0,
  21. PRIMARY KEY (movie_id),
  22. KEY movie_type (movie_type,movie_year)
  23. )";
  24.  
  25. $results = mysql_query($movie)
  26. or die (mysql_error());
  27.  
  28. // utwórz tabelę "movietype"
  29. $movietype = "CREATE TABLE movietype (
  30. movietype_id int(11) NOT NULL auto_increment,
  31. movietype_label varchar(100) NOT NULL,
  32. PRIMARY KEY (movietype_id)
  33. )";
  34.  
  35. $results = mysql_query($movietype)
  36.  
  37. //utwórz tabelę "people"
  38. $people = "CREATE TABLE people (
  39. people_id int(11) NOT NULL auto_increment,
  40. people_fullname varchar(255) NOT NULL,
  41. people_isactor tinyint(1) NOT NULL deafult 0,
  42. people_isdirector tinyint(1) NOT NULL deafult 0,
  43. PRIMARY KEY (people_id)
  44. )";
  45.  
  46. $results = mysql_query($people)
  47.  
  48. echo "Poprawnie utworzono bazę danych filmów!";
  49. ?>


moviedata.php
  1. <?php
  2. //połączenie z serwerem MySQL
  3. $connect = mysql_connect("localhost", "bp5am", "bp5ampass")
  4. or die ("SprawdĽ połączenie z serwerem.");
  5.  
  6. // uaktywnij odpowiednią bazę danych
  7. mysql_select_db("moviesite");
  8.  
  9. // wstaw dane do tabeli "movie"
  10. $insert = "INSERT INTO movie (movie_id, movie_name, movie_type, " .
  11. "movie_year, movie_leadactor, movie_director) " .
  12. "VALUES (1, 'Bruce Wszechmogący', 5, 2003, 1, 2), " .
  13. "(2, 'Życie biurowe', 5, 1999, 5, 6), " .
  14. "(3, 'Wielki Kanion', 2, 1991, 4, 3)";
  15. $results = mysql_query($insert)
  16.  
  17. // wstaw dane do tabeli "movietype"
  18. $type = "INSERT INTO movietype (movietype_id, movietype_label) " .
  19. "VALUES (1, 'Science-fiction'), " .
  20. "(2, 'Dramat'), " .
  21. "(3, 'Przygoda'), " .
  22. "(4, 'Wojenny'), " .
  23. "(5, 'Komedia'), " .
  24. "(6, 'Horror'), " .
  25. "(7, 'Akcja'), " .
  26. "(8, 'Dla dzieci')" ;
  27. $results = mysql_query($type)
  28.  
  29. // wstaw dane do tabeli "people"
  30. $people = "INSERT INTO people (people_id, people_fullname, " .
  31. "people_isactor, people_isdirector) " .
  32. "VALUES (1, 'Jim Carrey', 1, 0), " .
  33. "(2, 'Tom Shadyc', 0, 1), " .
  34. "(3, 'Lawrence Kasdan', 0, 1), " .
  35. "(4, 'Kevin Kline', 1, 0), " .
  36. "(5, 'Ron Livingston', 1, 0), " .
  37. "(6, 'Mike Judge', 0, 1)";
  38. $results = mysql_query($people)
  39. echo "Dane zostały wstawione poprawnie!";
  40. ?>


Po otwarciu creatuvemovie.php wyskakuje mi "Access denied for user 'bp5am'@'localhost' to database 'moviesite' "
,a po otwarciu movie data.php wyskakuje mi "movie data bases selected".
Co jest nie tak?Nakierowal by mnie ktos krok po kroku?
MiChaSSs
Skad Ci wyskakuje "movie data bases selected" skoro tego w kodzie nie masz? Zrob tak, zaloguj sie do MySQL-a jako root:
  1. michasss@laptop ~ $ mysql -u root -p

jesli masz juz swoja baze danych utworzona to dodaj prawa dla uzytkownika, jesli nie to stworz baze danych:

stworzenie bazy
  1. mysql> create database nazwa_bazy;

odpowiednie prawa dla uzytkownika bp5am
  1. mysql> grant all on nazwa_bazy.* to 'bp5am'@'localhost' identified by 'bp5ampass';

teraz powinno byc okej, pozdr winksmiley.jpg
kalen
Dalej jest to samo sadsmiley02.gif

Zrobile wszystko dodlaem uzytkownika,haslo wpisuje:
  1. SELECT user, host FROM user;

i niby jest dobze.Wyskakuje mi tabela w user mam bp5am ,host jest:localhost .Niewiem co jest dalej?

kolega napisal jeszcze powyzej zeby stworzyc base danych.
Mam ją nazwac jak chce czy musze sie zastosowac do utworzonych przezemnie pliow?

bo jak ja nazwalem moviesite to mi wyskakuje w pliku movie.data żę Table 'moviesite.movie' doesn't exist.Czyli ze tabela 'moviesite.movie' nieistnieje.
MiChaSSs
musisz stworzyc baze zgodnie z:
  1. $mysql_database = 'moviesite';
  2. $mysql_host = 'localhost';
  3. $mysql_login = 'bp5am';
  4. $mysql_password = 'bp5ampass';
  5. $current_time = date('Y-m-j H:i:s');
  6.  
  7. // Polaczenie do bazy danych MySQL
  8. $mysql_connection = @mysql_connect($mysql_host, $mysql_login, $mysql_password)
  9. // Gdy polaczenie sie nie powiedzie to wyswietl komunikat i przerwij skrypt
  10. or die("$current_time -> Error while connecting to MySQL -> ".mysql_error()."\n");
  11. // Wybor bazy danych
  12. $mysql_db = @mysql_select_db($mysql_database, $mysql_connection)
  13. // Gdy wybor bazy danych sie nie powiedzie wyswietl komunikat i przerwij skrypt
  14. or die("$current_time -> Error while selecting database\n");
  15. // Ustawianie kodowania polaczenia z baza MySQL
  16. mysql_query('SET NAMES utf8');
  17. mysql_query('SET CHARACTER_SET utf8_unicode_ci');



i dodawaj do mysql_select_db drugi parametr do funkcji na wszelki wypadek, podobnie w mysql_query. Pisz kodem zblizonym jak powyzej, bo wtedy latwiej blad znalezc. Napisales ze "Zrobile wszystko dodlaem uzytkownika,haslo wpisuje" a prawa dla uzytkownika? Tabela moviesite.movie nie istnieje bo najpierw trzeba ja stworzyc samemu -> createmovie.php. Rob dokladnie tak jak napisalem post wyzej a wszystko pojdzie za pierwszym razem.
kalen
[quote name='MiChaSSs' date='24.08.2009, 15:32:56 ' post='652838']
musisz stworzyc baze zgodnie z:
  1. $mysql_database = 'moviesite';
  2. $mysql_host = 'localhost';
  3. $mysql_login = 'bp5am';
  4. $mysql_password = 'bp5ampass';
  5. $current_time = date('Y-m-j H:i:s');
  6.  
  7. // Polaczenie do bazy danych MySQL
  8. $mysql_connection = @mysql_connect($mysql_host, $mysql_login, $mysql_password)
  9. // Gdy polaczenie sie nie powiedzie to wyswietl komunikat i przerwij skrypt
  10. or die("$current_time -> Error while connecting to MySQL -> ".mysql_error()."\n");
  11. // Wybor bazy danych
  12. $mysql_db = @mysql_select_db($mysql_database, $mysql_connection)
  13. // Gdy wybor bazy danych sie nie powiedzie wyswietl komunikat i przerwij skrypt
  14. or die("$current_time -> Error while selecting database\n");
  15. // Ustawianie kodowania polaczenia z baza MySQL
  16. mysql_query('SET NAMES utf8');
  17. mysql_query('SET CHARACTER_SET utf8_unicode_ci');



co ja mam z tym zrobic.gdzie to wpisac.Bardzo bym prosil o poprowadzeniu mnie od poczatku krok po kroku jak najjasniej tlumaczac .Nieznam sie na tym wogole bo sie ucze.
MiChaSSs
podalem Ci przyklad jak powinno wygladac polaczenie sie z MySQL-em i wybor bazy danych, a teraz wprowadz to do swoich skryptow.
kalen
a co ja mam zle?
MiChaSSs
np. brak drugich paremetrow - niby nie trzeba ich miec, ale lepiej wpisac, i w mysql_connect itd. wpisuj zmienne zamiast uzytkownika, host itd.

zrob tak jak to pisalem http://forum.php.pl/index.php?s=&showt...st&p=652544 a pozniej sprawdz ten kod:
  1. $mysql_database = 'moviesite';
  2. $mysql_host = 'localhost';
  3. $mysql_login = 'bp5am';
  4. $mysql_password = 'bp5ampass';
  5. $current_time = date('Y-m-j H:i:s');
  6. // Polaczenie do bazy danych MySQL
  7. $mysql_connection = @mysql_connect($mysql_host, $mysql_login, $mysql_password)
  8. // Gdy polaczenie sie nie powiedzie to wyswietl komunikat i przerwij skrypt
  9. or die("$current_time -> Error while connecting to MySQL -> ".mysql_error()."\n");
  10. // Wybor bazy danych
  11. $mysql_db = @mysql_select_db($mysql_database, $mysql_connection)
  12. // Gdy wybor bazy danych sie nie powiedzie wyswietl komunikat i przerwij skrypt
  13. or die("$current_time -> Error while selecting database\n");
  14. // Ustawianie kodowania polaczenia z baza MySQL
  15. mysql_query('SET NAMES utf8');
  16. mysql_query('SET CHARACTER_SET utf8_unicode_ci');
  17.  
  18. //utwórz tabelę "movie"
  19. $movie = "CREATE TABLE movie (
  20. movie_id int(11) NOT NULL auto_increment,
  21. movie_name varchar(255) NOT NULL,
  22. movie_type tinyint(2) NOT NULL deafult 0,
  23. movie_year int(4) NOT NULL deafult 0,
  24. movie_leadactor int(11) NOT NULL deafult 0,
  25. movie_director int(11) NOT NULL deafult 0,
  26. PRIMARY KEY (movie_id),
  27. KEY movie_type (movie_type,movie_year)
  28. )";
  29.  
  30. $results = mysql_query($movie, $mysql_connection)
  31. or die (mysql_error());
  32.  
  33. // utwórz tabelę "movietype"
  34. $movietype = "CREATE TABLE movietype (
  35. movietype_id int(11) NOT NULL auto_increment,
  36. movietype_label varchar(100) NOT NULL,
  37. PRIMARY KEY (movietype_id)
  38. )";
  39.  
  40. $results = mysql_query($movietype, $mysql_connection)
  41.  
  42. //utwórz tabelę "people"
  43. $people = "CREATE TABLE people (
  44. people_id int(11) NOT NULL auto_increment,
  45. people_fullname varchar(255) NOT NULL,
  46. people_isactor tinyint(1) NOT NULL deafult 0,
  47. people_isdirector tinyint(1) NOT NULL deafult 0,
  48. PRIMARY KEY (people_id)
  49. )";
  50.  
  51. $results = mysql_query($people, $mysql_connection)
  52.  
  53. echo "Poprawnie utworzono bazę danych filmów!";

kalen
ale ja to robie zgodnie z ksiazka. Watpie zeby w ksiazce bylo cos zle napisane.To ja poleniam blad.
Tutaj napisze co konkretnie robie (łacznie z konfiguracja MySQL):
1)Po ściagnieciu i instalacji MySQL.Zaznaczam opcje konfiguracji.Wybieram Standard Configuration,w nastepnym oknie nic niezaznaczam,nastepnie odznaczam opcje Modilify Seciurytu Settings.
2)w php.ini zmieniam extension_dir = "./" na extension_dir = "c:\php\ext", usuwam rowniez ; z ;extension=php_mysql.dll. I kopiuje libmysql.dll do C:\windows\system32
3)nastepnie po zalogowaniu i ustawiam
  1. mysql> GRANT SELECT,INSERT,UPDATE
  2. ->ON *.*
  3. ->TO bp5am@localhost
  4. ->IDENTIFIED BY 'bp5ampass'


I mi niedziala.
f1xer
skoro nie wiesz jak skonfigurować serwer, to zainstaluj sobię np. pakiet xampp (http://www.apachefriends.org/en/xampp.html) do celów nauki w zupełności Ci to wystarczy, nie ma sensu żebyś się męczył.
kalen
sorry popelnilem blad po otwarciu moviedata.php wysakuje mi blad : No database selected
MiChaSSs
kolego kalen, rob to w jakiejs logicznej kolejnosci. Zrob najpierw wszystko to co Ci napisalem na gorze (zaloguj sie do MySQL-a stworz baze i sprawdz skrypt ktory Ci wystawilem kilka postow wyzej) - bo jak wszystko bedziesz chcial na raz robic to nic Ci sie nie uda, pozdr MD
kalen
MiChaSSs robile to juz i nic niepomoglo.
MiChaSSs
W takim razie robisz cos niewlasciwie. Ja robilem zgodnie z tym co napisalem wyzej, pozniej odpalilem skrypt PHP (poprawilem go, bo byly jakies male bledy w zapytaniach SQL-a) i tabele zostaly stworzone. Ponizej masz poprawiona wersje skryptu createmovie.php:
  1. <?php
  2. $mysql_database = 'moviesite';
  3. $mysql_host = 'localhost';
  4. $mysql_login = 'bp5am';
  5. $mysql_password = 'bp5ampass';
  6. $current_time = date('Y-m-j H:i:s');
  7. // Polaczenie do bazy danych MySQL
  8. $mysql_connection = @mysql_connect($mysql_host, $mysql_login, $mysql_password)
  9. // Gdy polaczenie sie nie powiedzie to wyswietl komunikat i przerwij skrypt
  10. or die("$current_time -> Error while connecting to MySQL -> ".mysql_error()."\n");
  11. // Wybor bazy danych
  12. $mysql_db = @mysql_select_db($mysql_database, $mysql_connection)
  13. // Gdy wybor bazy danych sie nie powiedzie wyswietl komunikat i przerwij skrypt
  14. or die("$current_time -> Error while selecting database\n");
  15. // Ustawianie kodowania polaczenia z baza MySQL
  16. mysql_query('SET NAMES utf8');
  17. mysql_query('SET CHARACTER_SET utf8_unicode_ci');
  18.  
  19. //utwórz tabelę "movie"
  20. $movie = "CREATE TABLE movie (
  21. movie_id int(11) NOT NULL auto_increment,
  22. movie_name varchar(255) NOT NULL,
  23. movie_type tinyint(2) NOT NULL default 0,
  24. movie_year int(4) NOT NULL default 0,
  25. movie_leadactor int(11) NOT NULL default 0,
  26. movie_director int(11) NOT NULL default 0,
  27. PRIMARY KEY (movie_id),
  28. KEY movie_type (movie_type,movie_year)
  29. )";
  30.  
  31. $results = mysql_query($movie, $mysql_connection)
  32. or die (mysql_error());
  33.  
  34. // utwórz tabelę "movietype"
  35. $movietype = "CREATE TABLE movietype (
  36. movietype_id int(11) NOT NULL auto_increment,
  37. movietype_label varchar(100) NOT NULL,
  38. PRIMARY KEY (movietype_id)
  39. )";
  40.  
  41. $results = mysql_query($movietype, $mysql_connection)
  42.  
  43. //utwórz tabelę "people"
  44. $people = "CREATE TABLE people (
  45. people_id int(11) NOT NULL auto_increment,
  46. people_fullname varchar(255) NOT NULL,
  47. people_isactor tinyint(1) NOT NULL default 0,
  48. people_isdirector tinyint(1) NOT NULL default 0,
  49. PRIMARY KEY (people_id)
  50. )";
  51.  
  52. $results = mysql_query($people, $mysql_connection)
  53.  
  54. echo "Poprawnie utworzono bazę danych filmów!";
  55. ?>
  56.  
kalen
napisales zeby stworzyc baze danych.Jak ja mam nazwac w pszypadku moich plikow?
MiChaSSs
Masz wszystkie dane w skryptach ... Nazwa bazy danych to -> moviesite Sam pisales te skrypty?
kalen
Nie ja to z ksiazka robie. One sa przepisane z ksiazki. Po ich utworzeniu jest punkt w ktorym ksiazka kaze mi sworzyc uzytkownika i niema o tym nic napisane.
MiChaSSs
przeciez pisalem Ci jak to zrobic wyzej ...
kalen
To ja tak robilem tylko nienazywalem bazy dannych - moviesite.

Stworzylem uzytkownika i baze danych wedluk twojej instrukcji.
Teraz po wejsciu w;
createmovie.php wyskakuje mi -You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'deafult 0, movie_year int(4) NOT NULL deafult 0, movie_leadactor int(11) N' at line 4.
A w moviedata.php wyskakuje mi - Table 'moviesite.movie' doesn't exist
MiChaSSs
przeciez pisalem Ci ze w createmovie.php masz bledy, podalem Ci poprawiony kod .... czytaj dokladnie to co pisze.
kalen
Zrobilem jak mowiles po otwarciu
createmovie.php wyskoczylo - Poprawnie utworzono bazę danych filmów!
a w
moviedata.php wyskoczylo - Dane zostały wstawione poprawnie!
Poczym odswiezylem strony w przegldarce i za kazdym razem wyskakuje mi:
createmovie.php - Table 'movie' already exists
a w
moviedata - Duplicate entry '1' for key 'PRIMARY'
Tak ma byc?
MiChaSSs
Tak, bo za pomoca pliku createmovie.php przygotowywujesz tabele a plik moviedata.php jest odpowiedzialny za wypelnienie tych tabeli. Pliki te powinny byc odpalone tylko raz. Komunikat MySQL-a z pliku createmovie.php - Table 'movie' already exists informuje Cie ze tabele nie zostaly utworzone, bo juz istnieja, podobnie w przypadku moviedata.php - Duplicate entry '1' for key 'PRIMARY', nie moze byc dwoch wierszy o tym samym ID (po co sztywno wpisywac w insercie ID, skoro jest auto_increment?). Wpisane przez skrypt dane mozesz podgladnac z poziomu MySQL-a, albo mozesz skorzystac z pomocy PHPMyAdmin-a (odsylam do google). Kolego kalen, widze ze nie panujesz nad tym kodem, ktory tutaj umiesciles. Zadajac ciagle pytania na forum, nie rozumiejac kodu niewiele sie nauczysz, zmien taktyke, pozdrawiam MD
kalen
A co zrobić aby zresetować baze mysql (all z utrata danych ) aby była taka jak zaraz po instalacji i bez hasła roota?
askone
Cytat(kalen @ 28.08.2009, 12:22:18 ) *
A co zrobić aby zresetować baze mysql (all z utrata danych ) aby była taka jak zaraz po instalacji i bez hasła roota?


Usunąć całą bazę fizycznie i stworzyć całkiem nową winksmiley.jpg
kalen
Czyli musze usunac wszystko z kompa (zwiazanego z mysql)?Czy w wierszu polecen cos wpisac?Ja chce tak zrobic tak jaby wogole nigdy niebylo bazy danych. Kompletne przywracanie.
f1xer
DROP DATABASE tym usuniesz bazę, komendę wydajesz oczywiście z linii poleceń
kalen
czyli musze sie zalogowac na root? i usunac?
MiChaSSs
tak:
  1. DROP DATABASE moviesite;

usowa cala baze danych, pozdr MD
kalen
ale ja niepamietam hasla do roota wstydnis.gif
askone
Cytat(kalen @ 28.08.2009, 14:58:01 ) *
ale ja niepamietam hasla do roota wstydnis.gif


W takim razie poczytaj instrukcję

A tak poza tym, wydaje mi się iż idziesz na skróty... Na wszystkie pytania jakie zadajesz wujek Dobra rada zna odpowiedzi, wystarczy chcieć je znależć

Pozdrawiam
kalen
Moj angielski niejest na tyle dobry by zrozumiec tekst na stronie mysql. Mogl bi mi ktos poprostu wytlumaczyc jak jak zmienic haslo root, bo go niepamietam?
MiChaSSs
nie idz na latwizne i sie wysil torche:

http://www.google.pl/search?q=zamiana+hasl...lient=firefox-a
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.