ugrás a tartalomhoz

Egy kezdő kérdései

Anonymous · 2004. Okt. 16. (Szo), 18.32
HI!

1)Az lenne a kérdésem, hogy amikor kapcsolodni akarok a mysql kiszolgálóhoz, például:

<?php

$felhasznalo = "xyz";
$jelszo = "asdf";

$kapcsolat = mysql_connent("localhost", $felhasznalo, $jelszo);
if (! $kapcsolat)
die ("Nem sikerült kapcsolodni");

mysql_close($kapcsolat);
?>
a) Távoli gép esetén az első paraméter az mondjuk : "http://xyz.uw.hu"
és akkor a felhasználónév és a jelszó pedig az lesz amin regisztráltam az adott oldalt?
(az oldal regisztálásakor a felhasználónév: xyz, jelszó:asdf)

b)Miért van a következő hibaüzenetet?

Warning: mysql_connect(): Access denied for user: 'xyz@localhost' (Using password: YES) in c:\myprograms\appserv\www\gyak18.php on line 14
Nem sikerült kapcsolodni

míg ha nem adok meg paramétert akkor megy. Vagy ha sajátgépről futtatom akkor mindig paraméter
nélkül kell?

2)
<?php
$adatbazis = "pelda";
mysql_select_db( $adatbazis, $kapcsolat);

itt az adatbázisnak egy fájlnak kell lenni, például : pelda.sql


Elnézést az egyszerű kérdésekért, a válaszokat előre is köszönöm.


?>
 
1

2. kérdésre

PiG · 2004. Okt. 17. (V), 10.06
Nem egy file.
Az adatbázis egy létező mysql adatbázis. Ha még nincs, akkor a mysql indítását követően (nálam C:\mysql\bin\mysql.exe) a prompt után CREATE DATABASE paraccsal tudod létrehozni. pl.:
CREATE DATABASE IF NOT EXISTS pelda;
Ezután persze még létre kell hozni a táblákat is CREATE TABLE paranccsal. Mindezek után lesz majd egy pelda konyvtárad (vagy amilyen nevű adatbázist létrehozol) a mysql data könyvtárában, de nem ajánlanám, hogy az ebben levő file-okat piszkáld. Ha változtatni szeretnél, akkor mysql parancsokkal az előbbiek alapján.
Mivel ez kicsit (NAGYON) macerás kipróbálhatsz valamilyen grafikus felületet is. phpMyAdmin (telepített webszervert és php-t igényel), vagy a EMS Mysql Managert, Mysql Front (nálam lefagy), Aqua Data Studio, Mysql Control Center és még van egy rakat...
Mysql parancsok a http://dev.mysql.com/doc/mysql/en/index.html oldalon ill. ennek magyar tükrözésén http://mysql.sote.hu/doc/mysql/en/index.html találhatók. Az előbbiekben említettek pl. itt: http://mysql.sote.hu/doc/mysql/en/SQL_Syntax.html

P][G
2

Az első kérdésre

Anonymous · 2004. Okt. 18. (H), 11.26
Az első kérdésre:

Távoli adatbázis kiszolgáló esetén sem kell a protokollt jelölő http:// előtag. Már csak azért sem, mert egyébként sem http protokollal csatlakoznál hozzá. Tehát csak a gépnév kell, a te példád szerint:
$kapcsolat = mysql_connent("xyz.uw.hu", $felhasznalo, $jelszo);

Ide kapcsolódik még két fontos tudnivaló:
1. ellenőrizd, hogy van-e egyátalán lehetőség az adott gépen futó adatbázis-szervert távolról is elérni, valamint azt, hogy neked van-e jodod elérni azt távolról is (ha igen, akkor honnan)? Megjegyzem, hogy biztonsági okokból nem szokás így elérhetővé tenni az adatbázis-szervert. (Legfeljebb védett hálózaton belül. Ha viszont így van, akkor otthonról hiába is próbálsz hozzá csatlakozni, mert csak az arra kijelölt gépekről lehet.)

2. A távoli géphez való kapcsolódásra valójában csak akkor van szükség, ha a php nem azon a gépen fut, mint az adatbázis-szerver.
Nálad valóban ez a helyzet? Az uw-et nem ismerem, ott lehet, hogy távoli géphez kell kapcsolódni, de igen valószínű, hogy az csak az uw szerverre feltöltött php fájlal fog menni, otthon futtatott próbaszerverrel nem.
(Egyébként nézz szét az uw forumban is, ott több topikban is panaszkodnak a mysql-re: http://www.ultraweb.hu/main.php?page=forum . Lehet, hogy mindent jól csináltál, csak az uw miatt nem megy.)

A kérdés második része:
Azért kapsz "Access denied for user: 'xyz@localhost' (Using password: YES)" üzenetet, mert nem stimmelnek a jogosultságok. Ha ez a saját gépeden van így, akkor előbb a PiG által említett adminisztrátori eszközök valamelyikének segítségével fel kell venni az xyz felhasználót a megfelelő jelszóval, és meg kell adni neki a szükséges jogokat.
Paraméterek nélkül alapértelemezett névvel és jelszó nélkül csatlakozik ( http://hu2.php.net/mysql_connect ). Ez windows alatt nem tudom, hogy milyen felhasználónevet jelent, viszont az illető felhasználónévnek úgy tűnik alapból volt jogosultsága.

Nadi