Lige efter du har installeret MySQL, vil du have root
bruger tilgængelig.
Dette er den bruger, du kan bruge til at prøve at se, om MySQL virker, men det bør ikke være brugeren til andre former for brug.
Hvorfor? Fordi den er for kraftfuld .
Med stor magt følger et stort ansvar (sagde Spider-Mans onkel). Og især stor fare, hvis du laver fejl.
I stedet bør du oprette ad-hoc-brugere, der kun har tilladelser til at udføre deres job og ikke mere. Det samme for at bruge Linux eller ethvert Unix-system, for eksempel:du ønsker ikke at bruge root
bruger, men din egen brugerkonto.
For at oprette en ny bruger skal du oprette forbindelse til MySQL ved hjælp af root
bruger:
mysql -u root -p
brug derefter kommandoen
CREATE USER '<username>'@'localhost' IDENTIFIED BY '<password>';
For eksempel at oprette en bruger ved navn test_user
med adgangskode test_password12A
kør kommandoen:
CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'test_password12A';
Kommandoen skal returnere en linje, der siger Query OK, 0 rows affected (X.XX sec)
:
Hvis du brugte en ugyldig adgangskode, ville systemet fortælle dig noget som ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
. I dette tilfælde siger fejlen, at adgangskoden ikke er kompleks nok, for da jeg installerede MySQL, fortalte jeg den at bruge en bestemt politik for adgangskoder.
Det er fantastisk! Nu er brugeren oprettet, og vi kan oprette forbindelse ved hjælp af denne bruger til MySQL. Fra kommandolinjen kan du afslutte ved at skrive QUIT
, og skriv:
mysql -u test_user -p
Hvis jeg nu prøver at oprette en database, vil jeg få en fejl, der siger ERROR 1044 (42000): Access denied for user 'test_user'@'localhost' to database 'testing'
:
Hvorfor? Fordi brugeren ikke har tilladelse til at oprette en ny database .
Vi vil se, hvordan du arbejder med tilladelser i et andet selvstudie.
Det er værd at nævne @'localhost'
streng, vi brugte til at oprette brugeren. Dette fortæller MySQL, at brugeren kun kan oprette forbindelse fra localhost. Hvilket er fint, når man afprøver ting, og når enhver applikation, der vil oprette forbindelse til MySQL, kører på den samme computer, der kører DBMS.
Når dette ikke er sandt, skal du enten manuelt indtaste den IP, brugeren vil oprette forbindelse fra, eller bruge %
jokertegn:
CREATE USER 'test_user'@'%' IDENTIFIED BY 'test_password12A';
Jeg vil lukke denne vejledning ved at vise, hvordan du fjerner den bruger, vi oprettede:
DROP USER 'test_user'@'localhost';