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 [EMAIL PROTECTED] 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å.
[EMAIL PROTECTED]:/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