10. februar 2003 - 17:08Der er
19 kommentarer og 2 løsninger
Tildel password til root user
Jeg prøver at gå i kommandopromt og skrive:
C:\mysql\bin>mysqld
Herefter forsøger jeg at sætte et password til root user:
mysqladmin -u root password 'mit_password'
Så langt så godt. Jeg prøver så at ændre passwordet for at se om det faktisk er blevet registreret:
mysqladmin -u root -p password 'mit_nye_password'
Herefter bliver jeg bedt om at indtaste det eksisterende, som jeg lige har tildelt root user. Men når jeg gør det, får jeg fejlen: Access denied for user 'root@localhost' Using password YES
Kan nogen hjælpe mig videre? Jeg giver gerne flere points.
Har du i øvrigt husket at flushe privilegierne efter du lavede ændringerne? Ellers er det stadig de gamle der har effekt. Hvis du genstarter mysql-serveren bliver privilegierne flushed.
Jeg synes der er noget helt galt. Når jeg flusher eller reloader får jeg fejl både med og uden semikolon. Nu er jeg nået så langt som til at kunne oprette brugere og databaser. Men databasen kan tilgås alle uanset hvilke privilegier, jeg giver dem. Og den starter ikke med "test". Problemet er sikkert at jeg ikke får lov at flushe/reloade.
Ved installationen indtastede vi brugernavn/password i winmysqladmin. Med disse oplysninger kan vi godt logge ind. Men det er måske bare den bruger, der kaldes root?
Jeg har købt bogen MySQL Visual Quickstart Guide, og der står, at der SKAL være plinger omkring passwordet...!?
dsj >> fejlmedd lød: "Access denied for user 'root@localhost' Using password YES" Der stod explicit @localhost, men man skal selvfølgelig passe på med at tage fejlmedd. alt for bogstaveligt, så din idé var ikke helt dum.
oasen>> Da ikke når man bruger mysqladmin.
Du skal sætte plinger om passwordet når du opdaterer direkte i user tabellen i mysql databasen, men ikke når du bruger mysqladmin fra prompten. (Jeg testede det faktisk igår på min egen mysql, da jeg så din post, så jeg er ret sikker i min sag ;-) )
I øvrigt mener jeg bestemt at du kun behøver flushe, når du retter adgang direkte i mysql-databasen, og ikke når du bruger mysqladmin, men det har jeg ikke testet fornylig.
Men sluttelig lyder det jo som om at du har fået adgang. Så er det bare at tage et kig i de forskellige tabeller i databasen mysql og se hvad der ligger.
Jeg kan sagtens finde ud af at administrere databasen. Problemet ligger i brugerens rettigheder. F.eks. ville jeg gerne kunne komme i kontakt med databasen fra et andet sted. Defor brugte jeg kommandoen i mysqlmonitor:
GRANT ALL ON databasenavn.* TO mitnavn@minipadresse IDENTIFIED BY 'mitpassword'
Den skrev også ok, og lokalt kan jeg logge ind, men ikke fra den eksterne pc, hvor der er installeret mySQLfront.
Den kommando, som dsj skriver, skal angives inde i mysqlmonitor, ikke?
Jeg skriver lidt senere - håber du gider hænge på...
Du kan også gøre som jeg har skrevet, spørgsmålet er bare, om du får lov at komme ind med mysql-klienten. Jeg ved ikke lige hvad mysql-monitor er, men du skriver bare "mysql" i kommandoprompten (= shell>)
mysql-monitor er det samme som mysql-klienten, fandt jeg ud af. Jeg fik opdateret passwordet til root nu. Men det er som om, ændringerne blive registreret - men alligevel ikke. Man kan stadig få kontakt med databasen ved localhost, selvom brugeren er fjernet. Man kan også få kontakt uden at angive brugernavn og password, selvom root skulle have password nu. Men man kan ikke få kontakt udefra via MySQLfront!
Jeg har flushet, men nu fandt jeg imidlertid ud af, at man kan administrere alle brugere i MySQLfront, hvilket jeg ikke var opmærksom på. Og der kunne jeg se, at der var 3 root-users, hvoraf den ene havde blankt password. Men jeg prøver at geninstallere det hele, slette to af root-users'ne og oprette en ny. Det skulle gerne virke, men jeg har da lige et sidste spørgsmål.
Hvis jeg vil komme i kontakt med MySQL fra en ekstern computer via MySQLfront, skal jeg bare angive host-name til denne computers IPadresse, ik'?
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.