Innehåll.


- Inledning.
- Skapa en användare.
- Lösenord.
- Kommandon.
- Utility, Hjälpmedel.
- Remote access.







Inledning.


Beskrivning av grunderna i frågespråket SQL. SQL står för (Structured Query Language). SQL är ett språk för att ändra, lägga till och ta bort poster i en relationsdatabas.
Exempel på en databasmotor är MySQL, en vida spridd databasmoter ursprungligen utvecklad i Sverige men ägs nu av Oracle. Säljaren av MySQL har utvecklat en "fork", MariaDB, som är kompatibel med MySQL.



Skapa användare.




Skapa användare:
CREATE USER 'myuser'@'%' IDENTIFIED BY 'myuser';
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

Du kan även skriva:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.100.%' IDENTIFIED BY 'my-new-password' WITH GRANT OPTION;
Detta ger alla användare root på datorerna i nätverket 192.168.100.* tillåtelse att accessa mysqldatabasen.

Sätta lösenord:
set password for namn@localhost=password('lösenord');



Till början.



Lösenord.


För att ändra lösenord för root i en nyuppsatt mysqldatabas/mariadbdatabas användar man följande kommando som root:
mysqladmin password



Till början.



Kommandon.


Fullständig uppgift om varje kommando går att finna på MySQLs hemsida, http://dev.mysql.com/doc/refman/5.5/en/index.html



CREATE DATABASE databasnamn
 Skapa en databas.
CREATE TABLE tabellnamn
 Skapa tabellen tabellnamn i en databas.

INSERT INTO
 Lägga till en post i en tabell.
INSERT INTO tabellnamn VALUES (kolumn1,kolumn2,kolumn3, ...)
 kolumn1, kolumn2 .. är värden som ska in i respektive fält i tabellen.

DELETE FROM
 Ta bort en post ur en tabell
UPDATE tabellnamn SET kolumnnamn='VALUES' WHERE kolumnnamn='VALUE';
 Ändra en post i en tabell.

SELECT
 Lista en eller flera poster i en tabell.
SELECT * FROM tabellnamn
SELECT * FROM tabellnamn WHERE kolumn LIKE '%uppgift%'
 Procentteknen i '%uppgift%' är så kallade jokertecken vilket innebär "förekomsten av  ordet 'uppgift'".
SELECT * FROM tabellnamn INTO OUTFILE 'filnamn'
 Om 'filnamn' innehåller en path(sökväg) måste 'directory'(platsen) ha skriv- och  läsrättigheter för användaren mysql.

ALTER TABLE
 Ändra tabellstruktur.
DROP DATABASE/TABLE
 Radera databas eller tabell.

LOAD DATA INFILE

Administrativa kommandon

Dessa kommandon körs efter det man loggat in i mysql.
SHOW
SHOW databases;
SHOW tables;
SHOW columns from tabellnamn;



Utility, Hjälpmedel.



mysqladmin

mysqldump
- skapar en fil med ingående SQL-satser. Kommando:
mysqldump --opt -u användarnamn -p lösenord databasnamn > filnamn.sql

Exempel på skapad fil.

-- phpMyAdmin SQL Dump
-- version 3.4.9
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: Apr 12, 2012 at 07:31 AM
-- Server version: 5.5.10
-- PHP Version: 5.3.10

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Database: `bison`
--
CREATE DATABASE `bison` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
USE `bison`;

-- --------------------------------------------------------

--
-- Table structure for table `bilder`
--

CREATE TABLE IF NOT EXISTS `bilder` (
`bildnr` int(11) NOT NULL,
`emne` varchar(100) COLLATE utf8_swedish_ci DEFAULT NULL,
`beskrivning` text COLLATE utf8_swedish_ci,
`path` varchar(250) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
PRIMARY KEY (`bildnr`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_swedish_ci;

--
-- Dumping data for table `bilder`
--

INSERT INTO `bilder` (`bildnr`, `emne`, `beskrivning`, `path`) VALUES
(1, 'Semester, 2010', 'Ibizza', 'ibizza.jpg'),
(2, 'Semester, 2010', 'Grisfest Ibizza', 'DSC00016.JPG'),
(3, 'Semester, 2010', 'Guidad busstur', 'DSC00015.JPG'),
(4, 'Midsommar, 2010', 'Dans på festplats', 'IMG_0007.JPG'),
(5, 'Semester, 2010', 'Besök i ölpaviljong', 'IMG_0023.JPG'),
(6, 'Semester, 2010', 'Bad i medelhavet', 'IMG_0020.JPG'),
(7, 'Midsommar, 2010', 'Festmåltid', 'Sommarbild.jpg'),
(8, 'Vinter, 2011', 'Skidtur i fjällen', 'Vinterbild-1.jpeg'),
(9, 'Vinter, 2011', 'I slalombacken i sölen', 'Vinterbild-2.JPG'),
(10, 'Vinter, 2011', 'Bild på tomten', 'Vinterbild-3.jpg'),
(11, 'Älg', 'Älg äter från träd', 'Älg_äter.png'),
(12, 'Älg 2011', 'Älg vintertid i djup snö', 'Älg1.jpg'),
(13, 'Älg', 'Älg gående på äng', 'Älg2.jpg'),
(14, 'Sommar, 2011', 'Vila i skuggan', 'DSC0009.JPG'),
(15, 'Sommar, 2011', 'Ombyggnad Verandan', 'DSC00011.JPG'),
(16, 'Sommar, 2011', 'Påbörjat bygge av grillplats', 'DSC00012.JPG');


Filen kan sedan användas för att läsas in med kommando:
mysql -u användarnamn -p < filnamn.sql



Till början.



Remote access.

För att koppla upp sig mot en MySQLdatabas i en annan dator använder man kommandot:
mysql -h hostnamn/IP_adress -u root -p

Att använda mysqldump remote blir kommandot:
mysqldump -h datornamn --opt -u användarnamn -p lösenord databasnamn > filnamn.sql
Filen filnamn.sql sparas i den anropande datorn.

För att lyckas få kontakt med den andra datorn måste den datorn ha öppnat porten 3306 för access från internet.
Porten öppnas med Mageia Control Center - Säkerhet - Konfigurera din personliga brandvägg
Dessutom måste den anropande användare finnas registrerad i mysqldatabasen med användarnamn och egen hostadress t.ex:
root 192.168.1.104 eller root raspberry

Med detta går det även att använda phpMyAdmin mot Raspberry Pi. Annars är Raspberry Pi lite klen att kör phpMyAdmin på, den blir ganska seg.



Till början.