[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Access till mysql.



Filip Wessman wrote:

Knacka till databasen "mysql" så att du blir administratör för den så kan du

skriva så som du gjorde från början.

"file *" o katalogen /var/lib/mysql/mysql visade att alla filerna som
finns däri är binärfiler (data) och några är tomma. Vad behöver jag för
verktyg för att göra så med mysql-db'n? mysqladmin?

Jag brukar göra såhär, fast det har jag kommit på själv så det är inte Rätt Sätt (tm):
mysql -u root -p mysql

> INSERT INTO user VALUES ('localhost','fille','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
> exit
mysqladmin -u root -p reload

Då blir fille lika tuff som root. (root i Mysql alltså. Inte din burk-root!)
Alla "Y" hör till rättigheter, t.ex insert_priv, update_priv med flera så det går att skapa olika användare som får göra olika saker, ganska fiffigt när man t.ex håller på med php-script där det är riktigt dumt att låta scriptet köra db-frågor som root.

Den tomma fnutten efter "'fille'," är lösenordet, jag har glömt exakt hur man skrev INSERT-satsen för det men det finns att läsa om du t.ex plockar hem mysql-manualen som zipfil och surfar filen manual_toc.html och letar lite. Den är bra, sätt dig med en kopp kaffe och klicka lite planlöst i manualfilen så kommer det säkert att lossna efter någon halvtimme.

Som sagt, det finns rättare sätt. GRANT är säkert Ett Bra Sätt (tm) men jag har aldrig bekymrat mig om att lära mig det, man sätter liksom upp såna här grejor Väldigt Sällan (tm) och sedan fungerar det bara.


Om du inte anger att det är db-användaren root så antar mysqladmin att det
är ditt unixanvändar-id som ska användas och det har du antagligen inte lagt upp i Mysql?
användarhanteringen i Mysql är alltså helt skild ifrån den du har i din
passwd-fil.

Nu det jag har problem med:

mysql>GRANT select, insert, update, delete on foobar.* ->to fille@panther IDENTIFIED BY ´hemligtlösenord´;

gav det inte helt tillfresställande resultatet

ERROR 1044: Access denied for user: '@localhost' to database 'foobar'

Jag tror detta har att göra med det du skrev. "fille" är med i gruppen
"mysql", borde inte det räcka?

Nej, du MÅSTE förstå skillnade mellan användare i Mysql och användare på din burk. Att fille ingår i gruppen mysql betyder förmodligen bara att fille får lov att mickla i filsystem som ingår i Mysql-trädet o.dyl. Börja med att glömma bort detta tills den dagen du behöver det. Jag har en db-användare som heter php (som alltså är ganska begränsad) men ingen användare i passwd-filen som heter php. Det hänger liksom inte ihop, skala bort de finesser du inte behöver tills du vet vad de ska användas till så har du färre ställen att leta fel på.


fille@Panther:/var/lib/mysql$ ls
foobar  mysql  test

Japp, foobar finns.

Jag tror inte du behöver bry dig om detta just nu.

Bra, en sak mindre att oroa sig för.


Tror jag ska skriva en användarmanual när jag väl lärt mig detta, om inte
annat så för om jag skulle glömma...

Det tycker jag verkligen du ska göra.
År 2003 borde såna här grejor fungera mer out-of-the-box än vad de gör.
(Fast på GNU-grejor kan man inte gnälla, men jag misstänker att Oracle är MINST lika besvärligt och prisskillnaden är ganska stor på licenserna)

Hälsningar Martin



Reply to: