Adatbázis előkészítése 1

2011.03.28. 09:47 | arabiata | Szólj hozzá!

Címkék: mysql bug

 Miután feltelepítettük a MySQL Workench (w) programot belefutunk az első bug-ba. A telepítésél létrehozta a program a root felhasználót az általunk megadott jelszóval. De nem illik root-ként belépni és garázdálkodni, tehát kell egy korlátozott jogú felhasználó is. A w nem hagyja létrehozni az új user-t. Imígyen kerüljük meg a problémát: CREATE USER 'jeffrey'@'localhost' IDENTIFIED BY 'password'. Részletes leírás a MySQL account kezeléséről itt.
Ezután már tudunk jogokat adni a felhasználónak a server administration részben a következő módon:

  1. root-ként létrehozzuk az adatbázist
  2. Users and Privileges
  3. jobbra fent a létrehozott felh. kiválasztása
  4. Schema Privileges
  5. jobbra lent Add Entry
  6. megadjuk a host-ot, esetünkben localhost
  7. és végül a jogokat

Miért csak localhost? Mert a labor program azon a gépen fog futni, ahol az adatbázis van.

Bug no. 2: ez is MySQL, de más irányból. Ha az ODBC drivernél ( amit úgyis fel kell paraméterezni)  a details rész végén nem adom meg a kódlapot, akkor a SELECT utasítás programból végrehajtva kijelenti, hogy nem találja a táblában a mezőket. Cp1250, Utf8, stb. beállítható egyéni izlés szerint.

Éééééés, dobpergés. Létrehozzuk az első táblát. Javaslom kézzel beírni az adatokat, gyakorolni sosem árt.

CREATE TABLE `felhasznalok` (

  `felh_nev` varchar(45) NOT NULL,

  `jelszo` varchar(45) DEFAULT NULL,

  `nev` varchar(45) DEFAULT NULL,

  `szint` enum('felhasználó','validáló','admin') DEFAULT NULL,

  `aktiv` enum('igen','nem') DEFAULT NULL,

  PRIMARY KEY (`felh_nev`)

) ENGINE=InnoDB DEFAULT CHARSET=cp1250$$

 

A mezőknél meghagytam a default varchar(45)-öt, minek bonyolítsam az életet. Azért varchar és nem char, mert a varchar a tartalom tényleges hosszát foglalja le, a char pedig a mező teljes hosszát.

A felh_nev egyedi, - erre majd a programban figyelni kell - így használhatjuk indexként.
Szint,aktiv mezők: az enum adattípus olyan mint egy tömb. 

CREATE TABLE  `test`.`aaa` (

  `mezo` enum('a','b','c') NOT NULL,

  `nev` varchar(45) NOT NULL

) ENGINE=InnoDB DEFAULT CHARSET=cp1250;

insert into aaa values ('a','nev_1'),('c','nev_3'),('b','nev_2'),('a','nev_1');

select mezo+0,mezo,nev from aaa;

 

1, 'a', 'nev_1'

3, 'c', 'nev_3'

2, 'b', 'nev_2'

1, 'a', 'nev_1'

 

 Látható, hogy a mezo értékét visszakaphatjuk szövegként, és számként (tömb elem indexe) is. Ez igen nagy segítség, ha mondjuk biztonsági szinthez akarjuk kötni a menüpontok megjelenítését, és ugyanakkor ki is írjuk a felhasználói szintet.

Legközelebb netbeans beállítások.

 

 

A bejegyzés trackback címe:

https://qtqt.blog.hu/api/trackback/id/tr932777828

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása