[mysql] inloggen via phpmyadmin kan wel, via shell niet

Pagina: 1
Acties:

  • Marc
  • Registratie: November 2001
  • Laatst online: 01-12-2021
Hallo allen,
ik zit met een vaag probleem, en heb hier, na het raadplegen van de search, nog steeds geen antwoord op:
Ik heb een mysqlaccount op een server, met een username en password.
Nu probeer ik in te loggen via php met het volgende script:
PHP:
1
2
3
4
<?php
mysql_connect("localhost", "#user#", "#pass#") or die("connecten mislukt");
echo "ingelogd";
?>

waarbij #user# en #pass# natuurlijk respectievelijk de username en het password voorstellen.
Dit lukt goed, ik krijg geen error (als test heb ik #pass# veranderd, ik kreeg nu wel een error+het bericht 'connecten mislukt').
Hierna ssh ik naar die server, en probeer vervolgens via het bestand mysql toegang te krijgen tot hetzelfde account:
code:
1
2
3
4
[user@server dir]$ mysql -u #user# -p
Enter password:
ERROR 1045: Access denied for user: '#user#@localhost' (Using password: YES)
[user@server dir]$


nu connect hij dus niet met mysql...
ik snap het echt niet, op allebei de manieren log ik toch in via localhost.
misschien is dit expres gedaan door de administrator op die server?

iemand een idee?

  • Zwerver
  • Registratie: Februari 2001
  • Niet online
denk eens aan wat de # betekend in linux? Of met andere woorden, als je een speciaal teken wil gebruiken onder linux, dan moet je het quoten... Nu heb ik even snel voor je gekeken en je kan onder de unix shell zelf geen #user# maken, logisch natuurlijk. Ga er maar vanuit dat een username met een # nooit gaat werken op de console, tenzij je hem gaat quoten en zelfs daar heb ik mijn twijfels over.

edit:
even nagezocht

Als het met quoten niet lukt, kan je nog proberen om te escapen... \# dus

[ Voor 18% gewijzigd door Zwerver op 15-12-2003 17:58 . Reden: extra info ]

Woonachtig Down Under. Ik negeer je insults niet, maar tegen de tijd dat ik ze lees zijn ze meestal niet relevant meer


  • Marc
  • Registratie: November 2001
  • Laatst online: 01-12-2021
ik bedoelde dus dat je
#user#
moet vervangen met de gebruikersnaam die ik op die server heb, maar voor het gemak even geheim houd.
ik gebruik zelf dus geen # tekens.

sorry, was misschien een beetje onduidelijk

  • Zwerver
  • Registratie: Februari 2001
  • Niet online
zeg dat dan.... maar dan kan ik zonder de juiste username niet zeggen wat het probleem is... welke karakters zitten er in die username? En wat voor passwd geef je mee aan mysql? Is dat md5 encrypted? Heb je er tekens in zitten die misschien op de console niet goed gaan? Denk aan de ' die soms omgezet wordt naar een E trema

Woonachtig Down Under. Ik negeer je insults niet, maar tegen de tijd dat ik ze lees zijn ze meestal niet relevant meer


  • Marc
  • Registratie: November 2001
  • Laatst online: 01-12-2021
de username bestaat uit 4 normale characters (a-z), het password uit 8.

  • Stacium
  • Registratie: Februari 2001
  • Niet online

Stacium

Perfect Molecular Chaos

kijk eens in de config-file van mysql (/etc/mysql.....) en controleer of daar het socket bij de server en client gelijk staat

code:
1
2
3
4
5
[client]
socket          = /var/run/mysqld/mysqld.sock

[mysqld]
socket          = /var/run/mysqld/mysqld.sock


als je in php de functie mysql_connect aanroept met als host 'localhost' probeert php te connecten via het socket. Dat blijkt dus wel te lukken, in tegenstelling tot de mysql-client in de CLI. Als je 'localhost' vervangt door '127.0.0.1' in je php-script werkt het waarschijnlijk niet meer.

mocht het toch niet lukken, dan zou je kunnen proberen met de mysql-client in de CLI te klooien met het --socket argument

It seemed like a good idea at the time


  • RvdH
  • Registratie: Juni 1999
  • Laatst online: 19-02 14:54

RvdH

Uitvinder van RickRAID

Als je via de cli inlogt dan ga je niet via tcp/ip maar via socket.
Log in met mysql -h 127.0.0.1 -u foo -p bar..

  • Marc
  • Registratie: November 2001
  • Laatst online: 01-12-2021
hij doet het hoor, ik heb ingelogd met 'mysql -h [hostname van de server]....'.
het lag dus inderdaad aan die socket.
mysql -h 127.0.0.1 -u foo -p bar werkte niet omdat hij 127.0.0.1 meteen weer transleerde naar 'localhost'. maar dit voldoet ook.

bedankt :)

[ Voor 7% gewijzigd door Marc op 15-12-2003 18:18 ]

Pagina: 1