13/6/2005

MySQL

Filed under: — cybrarian @ 11:51 pm

Start MySQL server in openSUSE:
/etc/init.d/mysql start


Archief:


 MySQL (upd 2005 06 13)

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)


MySQL links

NL PHP/MySQL howto jun 2000< !2002 04 22>
MySQL Contrib< !2002 04 22>

Clients W32
MySQL-Front< !2002 04 22>
EMS MySQL manager < !2002 04 22>
MySQL Studio Premiumsoft < !2002 04 22>
MySQL Tools < !2002 04 22>


Reacties zijn gesloten.

Powered by WordPress