MySQL Problem

Tråden skapades och har fått 7 svar. Det senaste inlägget skrevs .
1
  • Oregistrerad
  • 2002-08-07 14:36

hej

jag har precis installerat php4 och mysql enligt marc liyanage´s utmärkta websida om just det ovannämnda.

Marc Liyanage´s websida om MySQL

problemet är när jag ska skapa en databas.. i terminalen..

jag är inte hundra på vad som händer när jag skriver saker där.. därför tänkte jag fråga hur man löser problemet med rättigheter..

nedan är ett urklipp ur terminalen när jag försökte skapa en ny databas:

[hd5e2634b:~] michael% mysql test
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 10 to server version: 3.23.51-entropy.ch

Type ´help;´ or ´h´ for help. Type ´c´ to clear the buffer.

mysql> create database testDB;
ERROR 1044: Access denied for user: ´@localhost´ to database ´testDB´

jag har ju gjort precis som det står på den där sidan..

en annan fråga.. det finns ju två ställen på hårddisken man kan lägga filerna för att köra i localhost... genom sites.. i user-mappen.. men också via library.. webserver..

spelar detta någon roll?

tacksam för svar.. jag kanske inte varit helt tydlig i mina frågor.. men fråga mig då igen!

(kör X 10.5)

1: Ändra lösenord på din mysql root användare.
2: Använd denna root för att skapa ny databas.

1: I terminalen, utan att starta mysql klienten.

mysqladmin -u root password nyttpassword
(byt ut nyttpassword mot vad du vill)

Nu har din rootanvändare ett lösenord (det hade den inte från början - inte bra)

Nu kan du göra saker antingen i mysql klienten eller med mysqladmin i egenskap att root.

För att starta mysql klienten och logga in som root skriver du:
mysql -u root -p (tryck enter)
nu får du skriva in lösenordet du nyss valde med mysqladmin.

-u anger vilker user
-p betyder att du vill knappa in ett lösenord också (utan denna flaggan förmodas att det inte finns ett lösenord till användaren man angivit, men det gör det ju nu).

2: Ny databas med mysqladmin

mysqladmin -u root -p create MinNyaDB (tryck enter)
Ange lösenordet - klart

För att "använda" MinNyaDB

mysql -u root -p (enter)
skriv lösenord (enter)

Nu är du inne i mysql klienten.
Skriv följande för att byta till MinNyaDB

use MinNyaDB; (enter)

Alla kommandon i sql avslutas med semikolon så om man skriver ett långt kommando man man dela upp det genom att trycka enter, det exekveras inte förrän man skriver ett ; och trycker enter.

Hjälpte det?

Gör som Marc L skriver på sin site - läs kap 4.3 i mysql manualen - där får du många tips på hur man styr sina mysql användare (just nu har du bara en - root).

/Mattias (med reservation för fel...)

Detdär med var du lägger filerna för siten...

lägger du dom i din user i sites så blir adressen
localhost/~user/sidan.html

Lägger du dom i /Library/Webserver/Documents/ så blir adressen localhost/sidan.html

Detta kan styras från httpd.conf som är inställningsfilen till Apache servern.

btw - localhost kan ersättas med http://127.0.0.1/
så...
http://127.0.0.1/~user/sida.html
eller
http://127.0.0.1/sida.html
/Mattias

  • Oregistrerad
  • 2002-08-11 18:48

Tack för informationen..

jag har en fråga om vad som egentligen händer under installationen av.. MySQl.. enligt de steg som Marc L. skriver om.. (Bortsett från dom självklara )

1. Download the package mysql-3.23.51.pkg.tar.gz to your desktop. Unpack it and then double-click on the .pkg file to install it.
2. Create a new user in the "Users" System Prefs pane:
1. Name: "MySQL User"
2. Short Name: "mysql"
3. Password: whatever you want

3. Open a terminal window and type in the following commands (without the double quotes):
4. type "cd /usr/local/mysql"
5. type "sudo ./scripts/mysql_install_db", enter administrator password when asked
6. type "sudo chown -R mysql /usr/local/mysql/*"
7. type "sudo ./bin/safe_mysqld --user=mysql &"
8. Use it with "mysql test"

med vänliga hälsningar

//michael

  • Oregistrerad
  • 2002-08-11 18:55

enligt marc l´s sida om mysql.. så ska man skapa user: mysql.. och ge denne ett lösenord..

men när man sen i framtiden ska koppla sig till mysql-databaser genom php4..

är det då denna user på "localhost" med ett angivet lösenord som man identifierar sig med.. eller är det root man plötsligt använder då?

berätta gärna mer..

tacksam för alla svar

Citat:

quote:Skapades ursprungligen av: ohsowierd:
enligt marc l´s sida om mysql.. så ska man skapa user: mysql.. och ge denne ett lösenord..

men när man sen i framtiden ska koppla sig till mysql-databaser genom php4..

är det då denna user på "localhost" med ett angivet lösenord som man identifierar sig med.. eller är det root man plötsligt använder då?

Den "MySQL" användare du pratar om är den som OS X använder... Själva mySQL installationen tillhör användaren "MySQL User" - kortnamn mysql.

Sedan - i databasen mysql så skapar du ett antal användare. Den första är "root" som är databasens admin - inte att förväxla med den root/admin användare som systemet har.

Sen brukar det vara bra att ha några olika mysql användare. En som får allt (root), en som bara får läsa, en som får läsa och skriva till valfria databaser utom den som heter "mysql" och som innehåller användar information och rättigheter och sånt.

Om vi säger såhär, du bygger en site för att publicera nyheter på webben. Du använder dig av tre användare.

1) root - för att skapa följande två användare, de nödvändiga databaserna + att sätta rättigheter på databaserna.

2) read_user - den användaren som används generellt på siten när du skall pressentera nyheterna - dvs bara läsa från databasen.

3) edit_user - en användare med läs och skrivrättigheter i de databaserna som har med din nyhets site att göra. Denna använder du i admin delen på siten där du skapar och redigerar nyheterna (det går ju att använda denna i stället för #2 också)

eller nåt

/Mattias

Antar att det är de här stegen du ville ha förklarade:

5. type "sudo ./scripts/mysql_install_db", enter administrator password when asked
Här kör du skriptet mysql_install_db. Har för mig att det är det skriptet som skapar MySQL-databasen (som bl.a. innehåller användarkontona), men det var länge sedan jag installerade MySQL så jag minns inte riktigt...

6. type "sudo chown -R mysql /usr/local/mysql/*"
MySQL har alla sina data (databaser, skript, program och annat) i katalogen /usr/local/mysql/. Problemet är bara att katalogen och dess innehåll ägs av användaren root. MySQL ska ju köras under en egen användare, "mysql" (annars har man ett kraterstort säkerhetshål), och med chown gör man mysql-användaren till ägare av de filerna. "chown -R" betyder att chown körs rekursivt, d.v.s. att allt innehåll i katalogen också byter ägare.

7. type "sudo ./bin/safe_mysqld --user=mysql &"
Skriptet safe_mysqld ser till att mysqld (MySQL:s daemon) startas, och det på ett säkert sätt. Sudo är (kanske som bekant) ett program som gör att man kan köra enstaka kommandon som en annan användare än den som är inloggad. Oftast används det för att utföra kommandon som kräver att man är root, men med parametern "--user=mysql" (eller "-u mysql") använder man kontot "mysql" i stället.
Ett &-tecken avslutar kommandot. Det betyder att programmet som startas ska köras i bakgrunden.

//samuel - som just förälskat sig i PostgreSQL

Citat:

quote:Skapades ursprungligen av: Samuel K:
//samuel - som just förälskat sig i PostgreSQL

Förlåt att jag byter spår men jag har länge var nyfiken på PostgreSQL den erbjuder ju lite annourlunda saker... men Samuel berätta mer!

1
Bevaka tråden