13/6/2005

MySQL

Filed under: — cybrarian @ 11:51 pm

MySQL en MariaDb (upd 2017)

MariaDb is ongeveer hetzelfde te gebruiken als MySQL, en is tegenwoordig standaard aanwezig in openSuse e.a.

Na installatie uit de pakketbeheerder, kan je net als bij MySQL een “secure install” doen (als root):

mysql_secure_installation

Starten, checken en stoppen:
service mysql start
service mysql status
service mysql stop

Of gebruik systemctl
systemctl start mysql
journalctl -u mysql

Databank exporteren:

mysqldump -u root -p --all-databases > all_db_backup.sql

En op het andere systeem terugzetten:
mysql -u root -p < all_db_backup.sql


Start MySQL server in oudere 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