Openstaande vraag:
bij foutmelding, bv “2 warnings”; waar kan je die opvragen?
concept
installatie
server
gebruik
beheer
commando’s
voorbeeld
Types:
Kolom
Alle
Teken
Getal
Datum
Externe Links
Kolom
VARCHAR(len)
CHAR(len)
DATE
Options
NULL, NOT NULL
DEFAULT “000-00-00”
SIGNED, UNSIGNED: -?
(m), (d) :decim
Attributen:
ZEROFILL
AUTO_INCREMENT
PRIMARY KEY
UNIQUE
Alle kolom types
– string
CHAR
VARCHAR
TEXT
TINYTEXT
MEDIUMTEXT
LONGTEXT
ENUM
SET
BLOB
TINYBLOB
MEDIUMBLOB
LOGNBLOB
– numeriek
FLOAT
DOUBLE
DECIMAL
INT
TINYINT
SMALLINT
MEDIUMINT
BIGINT
– datum tijd
DATETIME
yyyy-mm-dd hh:mm:ss
DATE
yyyy-mm-dd
TIME
hh:mm:ss
TIMESTAMP
yyyymmddhhmmss
YEAR
yyyy
Get Up
|
Concept:
Algemeen:
– MySQL is een server programma, draait bv op een Unix/Linux server, met de naam mysqld.
– De database zelf wordt gestart door deze deamon te starten, meestal vanuit een script, met paramters, en automatisch bij het starten van de fisieke server.
– De gebruiker communiceert met de database (MySQL hoofdletters) via een clientprogramma (mysql kleine letters)
– Er zijn verschillende “clients”:
mysql : is de gewone command prompt client
mysqldump
mysqlimport
– naast intikken op de commandprompt is het handiger om de commando’s op te slaan in kleine tekstblokken met extentie .sql
– er zijn ook grafische clients op Linux, bv MySQL Navigator (Qt, GPL, Shi Bok Jang) o.m. bij SuSE distr.
Concept gebruik:
– Database initialiseren CREATE DATABASE
– tabellen maken CREATE TABLE
– daarbij sleutel voorzien; kan met INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY
– gegevens toevoegen in lege tabel
(Gegevens invullen kan op de command prompt INSERT, maar ook eenvoudig vanuit een data.txt bestand LOAD DATA, bestaande uit een record per lijn, tab-gescheiden data met een \N als NULL waarde.)
– gegevens opvragen
– gegevens aanpassen
– tabel aanpassen ALTER TABLE
– – mySQL menu
Installatie:
SuSE 7.0.
Uitgegaan van installatie SuSE 7.0, ik heb ook alvast de KMySQL client en admin geinstalleerd.
Verder blijkt er een mysql_install_db script te zijn dat de standaard database aanmaakt,
wat als user gestart, een foutmelding oplevert . Als root liep het wel.
Ik vond een configuratie file in /etc/
Volgens beschrijvingen zou het beter zijn de mysqlserver (mysqld vereist geen root-rechten) niet als root te laten draaien.
Dus moet je een aparte account maken; mysqladmin in de groep mysqlgrp.
Installatie met SuSE 7.2: er is een /usr/share/mysql,
een /usr/bin met oa mysqladmin, mysqld, mysqltest, …,
in /etc/ vind je mysqlaccess.conf in /etc/init.d/ mysql en in /usr/sbin nog eens mysqld
mysql_install_db staat in /usr/bin, en kan alleen gestart worden als root (output).
|
Red Hat:
Deze distributie (RH 7.2) lijkt eerder postgresql gericht te zijn; geen MySQL aanwezig op deze versie (download).
Een versie bij een boek mysql-3.22.32-pc-linux-gnu-i686.tar.gz kan eenvoudig geinstalleerd worden.
Afhalen van het net kan nutuurlijk ook: mysql-3.23.49a-pc-linux-gnu-i686.tar.gz op dit moment.
In tegenstelling tot kant en klare voorbereide distributie zoals bij SuSE, moet je een en ander wel zelf uitzoeken,
vooral als je wil werken met Apache – Mysql – Php/perl combinatie. (ook wel “LAMP” genoemd: Linux Apache Mysql Php)
Apache is wel bekend bij deze RH72 en was reeds geinstalleerd.
Door het installeren van de RPM’s voorzien: Het script safe_mysqld start mysqld als user mysql. (auto bij boot)
|
Na installatie kan je testen met “mysql -h localhost test” en mysql terug verlaten met “quit”.
Daarna zet je het wachtwoord voor de MySQL server: mysqladmin -u root password hfh3fgh4f
Gevolgd door mysqladmin -u root status geeft error Access denied for user root@localhost …
Rechtentabellen opnieuw inlezen met mysqladmin -u root reload
– – mySQL menu
MySQL server
Server:
– mysqld : daemon (–help voor opties)
Beter is het natuurlijk een script te gebruiken:
– safe_mysqld : controlestart
– mysql.server : luistert naar start en stop op SystemV
Sluiten:
mysqladmin shutdown server afsluiten
– – mySQL menu
mysql client gebruik
Command prompt:
– mysql -h 192.168.1.3 -u pinguin -p
– mysql -h 192.168.1.3 -u pinguin –password=******** samp_db < ~/data/myquery.qry
(om query in een tekstbestand uit te voeren vanop de command prompt)
mysql client:
– – mySQL menu
Beheer
unix commandpromt:
mysqladmin variables
– isamchk: tabelanalyse, optimalisatie, herstellen
– myisamchk: tabelanalyse, optimalisatie, herstellen
– mysqldump : backup, copieren naar andere server
mysqldump samp_db > /usr/archives/mysql/samp_db.2001-08-07 backup om database terug te creeren
(ook naar een anders server toe bv om te dupliceren!)
mysqldump samp_db | gzip > /usr/archives/mysql/samp_db.2001-08-07.gz backup gecomprimmeerd
– mysqlimport
– mysqlshow db_name tbl_name
mysql prompt:
STATUS; toont current user, version, ports, ….
om een gebruiker pinguin aan te maken met alle rechten die kan inloggen vanop afstand:
GRANT ALL ON *.* TO pinguin@192.168.1.1 IDENTIFIED BY “sfivj12d4f” WITH GRANT OPTION;
(denk aan beveiligingsgebreken door gebruik van wildcards)
SHOW DATABASES;
SHOW TABLES;
DESCRIBE tbl_name;
– – mySQL menu
Commando’s
Beheer:
GRANT ALL ON samp_db.* TO pinguin@localhost IDENTIFIED BY “wachtwoord”
GRANT ALL ON samp_db.* TO pinguin@% IDENTIFIED BY “wachtwoord”
– – mySQL menu
voorbeelden:
* Een “speed” voorbeeld:
CREATE DATABASE test;
USE test;
SELECT DATABASE();
CREATE TABLE tabel(sleutelveld VARCHAR(10) NOT NULL, veld VARCHAR(20) NOT NULL);
SELECT DATABASE();
DESCRIBE tabel;
INSERT INTO tabel VALUES(‘qsdfqsdfss’, ‘Data Een’);
SELECT * FROM tabel;
* Importeren uit bestand voorbeeld:
LOAD DATA LOCAL INFILE “testdata.txt” INTO TABLE tabel;
en hetzelfde vanuit de shell:
mysqlimport – – local tabel testdata.txt
* Command prompt MySQL script voorbeeld:
Het aanmaken van een database, alsook het opvullen met sql statements die bewaard worden als .sql
Oproepen vanop de shell command prompt: (user is mysql username)
mysql -u pinguin -p < lnCreate.sql
– – mySQL menu
enkele .sql vb:
testdata.txt
now.sql–
info.sql–
makedbsample.sql–
usesample0.sql–
Hardware db (oef)
|