Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Witam - zainstalowałem sobie serwer mysql'a na debianie nadając odpowiednie hasło dla root podczas instalacji.
Z konsoli potrafię się zalogować do mysql'a bez problemu. Ale problem jest w tym że jak próbuje utworzyć bazę za pomocą php:
mysql_connect("192.168.1.2","root","haslo");
$zapytanie = "CREATE DATABASE testy";
$wynik = mysql_query($zapytanie);
if($wynik) echo "Baza została założona !<br>";
else {
echo "Baza nie została założona !<br>";
exit;
}
to dostaję:
Warning: mysql_connect() [function.mysql-connect]: Host 'janek.jakowski.ja' is not allowed to connect to this MySQL server in /var/www/baza/dodaj_baza.php on line 3
Warning: mysql_query() [function.mysql-query]: Access denied for user 'www-data'@'localhost' (using password: NO) in /var/www/apache2-default/baza/dodaj_baza.php on line 6
Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /var/www/apache2-default/baza/dodaj_baza.php on line 6
Baza nie została założona !
nie kumam za bardzo o co może mu chodzić??
Offline
NO tak też zrobiłem i OK:) bazę dodał! ale niestety tabeli nie chce utworzyć! I pozatym jeśli z innego kompa w sieci
chcę wejść przez query browsera na ten ip to dostaję:
Mysql error number 1130
Host: 192.168.1.3 is not allowed to connect to this Mysql server
Gdzie się w takim razie deklaruje dozwolone hosty dla MYSQL'a??
- OK zainstalowałem phpmyadmin i nadałem w ten sposób uprawnienia.
Ale problem jeszcze się tyczy dodawania tabeli - mam kod:
mysql_connect("192.168.1.2","root","haslo") or die("komunikat błedu1");
mysql_select_db(testy) or die("komunikat błedu2");
$zapytanie1 = "CREATE TABLE osoby ( ".
"id int(11) NOT NULL AUTO_INCREMENT, ".
"dataur date DEFAULT '0000-00-00' NOT NULL, ".
"imie char(256), ".
"testowa char(6), ".
"email char(256), ".
"UNIQUE id (id), ".
"PRIMARY KEY (id) ".
"ENGINE=MyISAM DEFAULT CHARSET=latin2;".
")" or die("komunikat błedu3");
$wynik = mysql_query($zapytanie1) or die("komunikat błedu4");
if($wynik) echo "Tabela założona prawidłowo !<br>";
else {
echo "Blad ! Tabela nie została założona !<br>";
exit;
}
po wykonaniu wyrzuca mi: komunikat błędu4
Ostatnio edytowany przez debbie (2009-05-28 08:52:52)
Offline
Masz niepoprawnie skonstruowane zapytanie. Fragment "ENGINE..." powinien się znaleść poza nawiasem. Być może coś jeszcze jest źle, ale trudno się zorientować w tym gąszczu kropek, przecinków i cudzysłowiów. Spawdź dokumentację na stronie mysql.
Offline
Wychrzaniłem wogóle ENGINE ale dalej jest to samo.
Ale może ktoś ma inny pomysł na założenie tej tabeli przez php
Ostatnio edytowany przez debbie (2009-05-28 09:30:08)
Offline
Standardowo MySQL jest tak skonstruowany aby tylko po lokalhost można było się połączyć. Zatem z innego kompa odpada.
Ja w PHP napisał bym takie coś:
mysql_connect("localhost","root","haslo") or die("komunikat błedu1"); if (!mysql_query("USE naza_bazy;")) die ("komunikat 2"); $zapytanie1 = "CREATE TABLE osoby ( ". "id int(11) NOT NULL AUTO_INCREMENT, ". "dataur date DEFAULT '0000-00-00' NOT NULL, ". "imie char(256), ". "testowa char(6), ". "email char(256), ". "UNIQUE id (id), ". "PRIMARY KEY (id) ". "ENGINE=MyISAM DEFAULT CHARSET=latin1;". ")"; if (!mysql_query($zapytanie1)) die("komunikat błedu4"); else echo "Tabela założona prawidłowo !<br>";
a do obsługi proponuję phpmyadmin.
Offline
Niestety według twojego pomysłu dalej mam: komunikat błedu4
Offline
Sprawdź czy ten kod SQL się w ogóle wykonuje na bazie danych, jeśli nie, dostaniesz wiele mówiący komunikat o błedzie.
Offline
Kuurdee kamikaze!!! dziekówka za podpowiedż!!! Dzięki temu udało mi się znaleść rozwiązanie
Każdy char musiał mieć max=255 znaków:)
Także po tej zmianie poszło wszystko od strzału:)) Dzięki jeszcze raz:)
Offline
debbi dlaczego uzywasz char? nie lepiej varchar?
poniewaz jak nie bedziesz mial 256znakow tylko np 16 to 240 to beda puste znaki i niepotrzebnie baza bedzie puchla.
i taka mala moja propozycja, lepiej uzywac PDO
Ostatnio edytowany przez jezoo (2009-06-02 10:19:29)
Offline