[php+mysql] newbie snapt er geen bal meer van

Pagina: 1
Acties:

  • EWS99
  • Registratie: Maart 2001
  • Laatst online: 11:52
Owkee,
ik heb een mysqlserver op mijn windows XP geinstalleerd, en ik kan via een dosvenster inloggen, zodat ik
code:
1
mysql>

krijg. Ik heb een database (phptest) en een tabel (test) kunnen maken, die ik ook met show database/tables, etc. kan zien.
Ik kan mysql los starten, of ik kan hem als mysql -umysql -pblaat (password is wat anders, maja, dat snap je zelf ook wel) starten, beide krijg ik een database met een tabel te zien.
Tot zover ging het goed....
Nu wil ik mysql met php gaan combineren...
Ik heb een werkende php server staan (freesco+apache+php). Dit is dus een andere pc dan waar ik mysql op heb draaien. Nu heb ik een phpscriptje gevonden uit een tutoral:
code:
1
2
3
4
5
6
7
8
<?php
    $link = mysql_connect ("amd1400.ews99")
      or die ("Could not connect");
    print ("Connected successfully");
    mysql_select_db ("phptest")
    or die ("could not select database");
  mysql_close ($link);
?>

alleen krijg ik
code:
1
Connected successfullycould not select database

nou heb ik al geprobeerd:
code:
1
$link = mysql_connect ("amd1400.ews99","mysql","blaat")

Dit geeft
code:
1
2
3
4
Warning: MySQL Connection Failed: Access denied for 
user: 'mysql@router.ews99' (Using password: YES) 
in /mnt/router/www/sql/index.php on line 2
Could not connect

Ik denk dat Access denied for user: 'mysql@router.ews99' het probleem is, maar hoe maak ik die mysqlserver (btw amd1400.ews99) nou wijs dat router.ews99 dat wel mag?

Hier had uw advertentie kunnen staan!


  • HenkS
  • Registratie: Mei 2000
  • Laatst online: 07:51

HenkS

Da_king alias HenkS

volgens mij moet je eens kijken naar de rechten van die gebruiker, want zoals je ziet krijg je eerst de melding:

connected succesfully

dus connectie lukt!!!

en daarna, could not select db ofzo, dus kan aan 2 dingen liggen:

je db heet niet zo, dus check op dbnaam (ook op hoofdletters enzo) of die gebruiker heeft niet de rechten, maar volgens mij ligt het aan het 1e

  • HenkS
  • Registratie: Mei 2000
  • Laatst online: 07:51

HenkS

Da_king alias HenkS

kijk eens hier en doe het op de manier zoals de user aangeeft die op 28-jul-21001 03:08 postte!!! (de 2e dus haha)

http://www.php.net/manual/en/function.mysql-select-db.php

  • EWS99
  • Registratie: Maart 2001
  • Laatst online: 11:52
het ligt aan het eerste, dat is duidelijk,
zie hier voor het tweede:
code:
1
2
3
4
5
6
7
8
mysql> show databases;
+----------+
| Database |
+----------+
| mysql    |
| phptest  |
+----------+
2 rows in set (0.01 sec)

phptest is goed gespeld, maaruh, hoe kan ik nu in windhoos, een mysql-user toevoegen? Enne ligt het er misschien aan, dat de mysql-server en de php-server niet op de zelfde pc staan? Of mag dat niet uitmaken.

Hier had uw advertentie kunnen staan!


  • DRvDijk
  • Registratie: Juni 2001
  • Laatst online: 14:12
misschien als je naar de locale host connect, gewoon proberen:
PHP:
1
2
3
4
5
6
7
8
9
<?
$dbhost = "";
$dbuser = "";
$dbpass = "";

$link = mysql_connect ($dbhost, $dbuser, $dbpass) or die ('Foutjuh!');
$db = mysql_select_db ($database, $link) or die ('Geen db-selectie');
mysql_close ($link);
?>

Oftewel: Prop alle connectiedingen (host, user, pass) in variabelen en probeer dan te connecten. I know, het hoeft niet, maar op die manier is het misschien overzichtelijker..

Succes!

Ow ja, $host mág dus "" zijn! :)

  • EWS99
  • Registratie: Maart 2001
  • Laatst online: 11:52
owkee, ben aan het puzzelen gegaan:
code:
1
2
3
4
5
6
7
8
9
<?php
    $db_name = "phptest";
    $link = mysql_connect ("amd1400.ews99","","")
      or die ("Could not connect");
    print ("Connected successfully");
    $select_db = mysql_select_db ($db_name,$link)
    or die ("could not select database");
  mysql_close ($link);
?>

nog nix :'(
Ow ja, $host mág dus "" zijn!
maaruh, $host is dus niet localhost he, maar amd1400.ews99 (php staat op router.ews99)

Hier had uw advertentie kunnen staan!


  • EWS99
  • Registratie: Maart 2001
  • Laatst online: 11:52
Owkee, ik heb ff apache op mijn windhoosje (amd1400.ews99) geinstalleerd met php, en mysql doet het nu!
Dus... scripts zijn goed, en mysql werkt ook, maar weet iemand nog een antwoord op deze vraag?

[qoute]
maaruh, hoe kan ik nu in windhoos, een mysql-user toevoegen? Enne ligt het er misschien aan, dat de mysql-server en de php-server niet op de zelfde pc staan? Of mag dat niet uitmaken.?
[/qoute]

Hier had uw advertentie kunnen staan!


  • brammetje
  • Registratie: Oktober 2000
  • Laatst online: 12-01-2025
is denk ik een foutje in je mysql config. de user mysql heeft denk ik alleen toegang vanaf localhost. maak daar % (=alle hosts) van of router.bluh (?) dan zou het moeten werken.

  • EWS99
  • Registratie: Maart 2001
  • Laatst online: 11:52
Op dinsdag 20 november 2001 17:28 schreef PlayR het volgende:
is denk ik een foutje in je mysql config. de user mysql heeft denk ik alleen toegang vanaf localhost. maak daar % (=alle hosts) van of router.bluh (?) dan zou het moeten werken.
Zou kunnen, maaruh, weet iemand waar je dat dan in de windhoos versie in kunt stellen?

edit:
Als ik vanuit router.ews99 gewoon mysql -h amd1400.ews99 intik, kan ik wel bij de databases, maar dat script geeft nog steeds een error????

Hier had uw advertentie kunnen staan!


  • _-= Erikje =-_
  • Registratie: Maart 2000
  • Laatst online: 09-09 15:42
alle users/rechten van MySQL staan in de database die Mysql heet.

Bij user kun je users invullen en globale (dus over alle databases) rechten.

In de db table kun je per database aangeven welke user er rechten heeft op een bepaalde database.

Bv, ik wil een user erikje die alleen in de database hoi mag, dan maak je in de user table een user aan erikje met als host % (dan mag je overal vandaan connecten) of amd144.blaat(dan mag erikje alleen daarvandaan connecten) en verder alles op N (geen globale rechten)

In de table db maak je dan een een user erikje met als db hoi en daar de rechten die die user nodig heeft (select, alter enz)

daarna (BELANGRIJK) moet je "flush privileges" doen, anders leest mysql die gebruiker gegevens niet in en kun je nog nix...

Verwijderd

alle users/rechten van MySQL staan in de database die Mysql heet.
dat klopt, er is een apart statement voor uitgevonden om deze privileges te wijzigen en toe te wijzen: hint: zoek op de mysql site naar het commando grant...

hope this helps ;)

  • EWS99
  • Registratie: Maart 2001
  • Laatst online: 11:52
ik heb nu
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
mysql> select host,user,password from user;
+-----------+-------+------------------+
| host  | user  | password     |
+-----------+-------+------------------+
| localhost | root  |           |
| %    | root  |            |
| localhost |    |          |
| %    |     |          |
| localhost | mysql | 48384dd033243dd6 |
| %    | www   | mysql      |
+-----------+-------+------------------+
6 rows in set (0.00 sec)

mysql> select host,db,user from db;
+------+---------+------+
| host | db | user |
+------+---------+------+
| %    | phptest | www  |
| %    | test%   |  |
+------+---------+------+
2 rows in set (0.00 sec)

maar het werkt nog niet :'(

Hier had uw advertentie kunnen staan!


  • _-= Erikje =-_
  • Registratie: Maart 2000
  • Laatst online: 09-09 15:42
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
mysql> select host,user,password from user;
+-----------+-------+------------------+
| host  | user  | password     |
+-----------+-------+------------------+
| localhost | root  |           |
| %    | root  |            |
| localhost |    |          |
| %    |     |          |
| localhost | mysql | 48384dd033243dd6 |
| %    | www   | mysql      |
+-----------+-------+------------------+
6 rows in set (0.00 sec)
mysql> select host,db,user from db;
+------+---------+------+
| host | db | user |
+------+---------+------+
| %    | phptest | www  |
| %    | test%   |  |
+------+---------+------+
2 rows in set (0.00 sec)

hmm, hier heb je een user mysql met een password die alleen vanaf de localhost mag connecten en een user www met een FOUT password die overal vandaan mag connecten... en in de database phptest mag :)

\me denkt dat je het zo wilt
[code]
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
mysql> select host,user,password from user;
+-----------+-------+------------------+
| host  | user  | password     |
+-----------+-------+------------------+
| localhost | root  |           |
| %    | root  |            |
| %    | mysql | 48384dd033243dd6 |
+-----------+-------+------------------+

mysql> select host,db,user from db;
+------+---------+------+
| host | db | user |
+------+---------+------+
| %    | phptest | www  |
| %    | test%   |  |
+------+---------+------+
2 rows in set (0.00 sec)

om iemand een password te geven, bv user www met als password mysql krijg je

INSERT INTO users (host, user, password) VALUES (%,www,PASSWORD(mysql))

je moet de password functie van mysql gebruiken om een password te encrypten

  • GiLuX
  • Registratie: Juni 1999
  • Laatst online: 12-11-2025
doe dit eens op de mysql prompt:
code:
1
2
3
4
5
6
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
ON phptest.*
TO www@localhost
IDENTIFIED BY 'bla';

flush privileges;

en in je php file om te connecten:
code:
1
2
3
4
5
6
$db = mysql_connect("localhost", "www","bla");
if(!mysql_select_db("phptest",$db)){
echo mysql_error();
}else{
echo "joepie de poepie";
}

krijg je dan nog errors?

nb:
in dit geval geef je op dat je alleen mag connecten van localhost,
belangrijk is om te weten dat als je direct de naam van je machine opgeeft het toch niet werkt!

je moet dus letterlijk "localhost" zetten of anders de naam van je machine opgeven in het grant statement.

"I disagree with what you are saying, but I will defend to the death your right to say it." -- not clear who


  • EWS99
  • Registratie: Maart 2001
  • Laatst online: 11:52
Owkee, ik heb vandaag (woensdag) helaas geen tijd om dit te proberen. Het klinkt allemaal logisch, morge misschien wat tijd over...
Bedankt alvast!

edit:

Jippie het werkt. Heren, bedankt! Weer een newbie op het goede pad geholpen!

Hier had uw advertentie kunnen staan!

Pagina: 1