Ik heb lokaal Apache 2.0.52 + MySQL 4.1 + PHP 5.0.2 draaien op Windows XP. Hier develop ik op en uiteindelijk upload ik het dan naar 'n server waar PHP 4.3.8 draait i.c.m. IIS/6.0 en MySQL 3.* denk ik.
Nu connect ik daar altijd met 'n bepaalde user/pass-combo en dat wilde ik op localhost ook doen. Dus ik kijk in de MySQL-manual hoe dit te doen en volg netjes de stappen. Dit werkt prima met het volgende simpele PHP-scriptje:
Ik krijg netjes een lijstje met de rows namelijk. En dat ik or die's gebruik is omdat dit even 'n testscriptje was waarin dat wel even mocht van mezelf
Echter, zodra ik de MySQL service restart werkt het ineens niet meer... Hier onder even 'n paar stappen van mij voor het aanmaken van de user:
1. Eerst kijk ik of de user al bestaat:
We zien hier dus duidelijk van niet.
Dan doe ik zoals in de manual staat:
Als ik dan probeer te connecten gaat dat dus prima en krijg ik de lijst. We zien nu ook dat de user is aangemaakt:
Echter, start ik MySQL opnieuw op krijg ik dit:
Maar de user bestaat toch nog steeds (de SELECT user FROM .... geeft nog steeds die ene row terug) & het password is ook niet verandert AFAIK.
Ik heb nu al 'n paar keer de user verwijdert en opnieuw aangemaakt en het gaat steeds goed tot ik de service opnieuw opstart.
Googlen hiernaar is best lastig (net als de GoT search), omdat je met name resultaten krijgt van mensen die gewoon 'n fout pass in hebben gegeven etc. Niets voor mijn situatie in ieder geval.
Nog even wat geprobeerd:
Maar dat werkt dus ook niet
Ook nog geprobeerd met OLD_PASSWORD() (hopend dat het te maken had met http://dev.mysql.com/doc/mysql/en/Old_client.html) maar dat wilde óók al niet werken
Met mysqli_connect() lukt het ook niet overigens.
Nu connect ik daar altijd met 'n bepaalde user/pass-combo en dat wilde ik op localhost ook doen. Dus ik kijk in de MySQL-manual hoe dit te doen en volg netjes de stappen. Dit werkt prima met het volgende simpele PHP-scriptje:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| <?php error_reporting(E_ALL); $rConnection = mysql_connect('localhost','user','pass') or die( mysql_error() ); $rSelect = mysql_select_db('database',$rConnection) or die( mysql_error() ); $qSelect_posts = 'SELECT * FROM table'; $rSelect_posts = mysql_query($qSelect_posts) or die( mysql_error() ); echo '<ul>'; while($aPost_rows = mysql_fetch_assoc($rSelect_posts)) { echo '<li>' . $aPost_rows['post_title']; } ?> |
Ik krijg netjes een lijstje met de rows namelijk. En dat ik or die's gebruik is omdat dit even 'n testscriptje was waarin dat wel even mocht van mezelf
Echter, zodra ik de MySQL service restart werkt het ineens niet meer... Hier onder even 'n paar stappen van mij voor het aanmaken van de user:
1. Eerst kijk ik of de user al bestaat:
code:
1
2
3
4
| mysql> SELECT user FROM user WHERE user='user'; Empty set (0.01 sec) mysql> |
We zien hier dus duidelijk van niet.
Dan doe ik zoals in de manual staat:
code:
1
2
3
4
5
6
7
| mysql> GRANT ALL PRIVILEGES ON *.*
-> TO 'user'@'localhost'
-> IDENTIFIED BY 'pass'
-> WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)
mysql> |
Als ik dan probeer te connecten gaat dat dus prima en krijg ik de lijst. We zien nu ook dat de user is aangemaakt:
code:
1
2
3
4
5
6
7
8
9
| mysql> SELECT user FROM user WHERE user='user'; +----------+ | user | +----------+ | username | +----------+ 1 row in set (0.00 sec) mysql> |
Echter, start ik MySQL opnieuw op krijg ik dit:
code:
1
2
| Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'user'@'localhost' (using password: YES) in FILENAME on line 3 Access denied for user 'username'@'localhost' (using password: YES) |
Maar de user bestaat toch nog steeds (de SELECT user FROM .... geeft nog steeds die ene row terug) & het password is ook niet verandert AFAIK.
Ik heb nu al 'n paar keer de user verwijdert en opnieuw aangemaakt en het gaat steeds goed tot ik de service opnieuw opstart.
Googlen hiernaar is best lastig (net als de GoT search), omdat je met name resultaten krijgt van mensen die gewoon 'n fout pass in hebben gegeven etc. Niets voor mijn situatie in ieder geval.
Nog even wat geprobeerd:
code:
1
2
3
4
5
6
| mysql> UPDATE mysql.user SET Password = PASSWORD('pass') WHERE Host = 'localhost' AND User = 'user';
Query OK, 0 rows affected, 1 warning (0.01 sec)
Rows matched: 1 Changed: 0 Warnings: 1
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec) |
Maar dat werkt dus ook niet
Ook nog geprobeerd met OLD_PASSWORD() (hopend dat het te maken had met http://dev.mysql.com/doc/mysql/en/Old_client.html) maar dat wilde óók al niet werken
Met mysqli_connect() lukt het ook niet overigens.
edit:
@gorgi_19: argh, natuurlijk!
@gorgi_19: argh, natuurlijk!
[ Voor 8% gewijzigd door blizt op 21-12-2004 14:59 ]
United we stand, and divided we fall