Joomla!: phpMyAdmin voor Beginners (NL)
-
Upload
yireo -
Category
Technology
-
view
805 -
download
0
description
Transcript of Joomla!: phpMyAdmin voor Beginners (NL)
Presentatie “phpMyAdmin voor beginners” - http://slideshare.net/yireoJisse Reitsma ([email protected]) - Twitter @yireo
phpMyAdminvoor beginnersphpMyAdmin
voor beginners
Presentatie “phpMyAdmin voor beginners” - http://slideshare.net/yireoJisse Reitsma ([email protected]) - Twitter @yireo
Ik ben Jisse ReitsmaIk ben Jisse Reitsma
Developer
Ondernemer
Eigenaar van YireoJoomla! & Magento
Extensies & ontwikkeling
Documentatie & blogs
Joomla! templates-book (NL)
Presentatie “phpMyAdmin voor beginners” - http://slideshare.net/yireoJisse Reitsma ([email protected]) - Twitter @yireo
Jij bent een ...Jij bent een ...
Joomla! site-eigenaar?
Joomla! bouwer?
Joomla! programmeur?
Presentatie “phpMyAdmin voor beginners” - http://slideshare.net/yireoJisse Reitsma ([email protected]) - Twitter @yireo
Mijn presentatieMijn presentatie
Deel I - MySQL
Deel II - phpMyAdmin
Deel III - Geavanceerd
Presentatie online: http://slideshare.net/yireo
Tweets: @yireo
Presentatie “phpMyAdmin voor beginners” - http://slideshare.net/yireoJisse Reitsma ([email protected]) - Twitter @yireo
Deel 1:MySQLDeel 1:MySQL
Presentatie “phpMyAdmin voor beginners” - http://slideshare.net/yireoJisse Reitsma ([email protected]) - Twitter @yireo
Introductie tot MySQLIntroductie tot MySQL
Onderdeel van een stack
Client/server architectuur
Wat is SQL?
Presentatie “phpMyAdmin voor beginners” - http://slideshare.net/yireoJisse Reitsma ([email protected]) - Twitter @yireo
StackStack
Joomla! is gebaseerd op PHP, wat draait op een webserver met PHP-support (zoals Apache), en gegevens worden opgeslagen in MySQL.
Voorbeelden van webserver “stacks”Linux + Apache + Mysql + PHP = LAMP
MacOS + Apache + Mysql + PHP = MAMP
Windows + Apache + Mysql + PHP = WAMP
Windows + IIS + Mysql + PHP = WIMP
Presentatie “phpMyAdmin voor beginners” - http://slideshare.net/yireoJisse Reitsma ([email protected]) - Twitter @yireo
Introductie tot MySQLIntroductie tot MySQL
Onderdeel van een stack
Client/server architectuur
Wat is SQL?
Presentatie “phpMyAdmin voor beginners” - http://slideshare.net/yireoJisse Reitsma ([email protected]) - Twitter @yireo
MySQL serverMySQL server
MySQL op dezelfde server als de websitelocalhost
Op een andere server maar bij dezelfde hostermysql12345.hoster.local
Op een andere server bij een andere hosterTCP-poort 3306 open in de firewall
Beveiling wordt hierdoor een probleem
Presentatie “phpMyAdmin voor beginners” - http://slideshare.net/yireoJisse Reitsma ([email protected]) - Twitter @yireo
MySQL clientMySQL client
PHP library (“mysql”, “mysqli”, “PDO Mysql”)
Joomla! (PHP “mysqli”)
phpMyAdmin (PHP “mysqli”)
command-line client (SSH)
MySQL GUI client (Navicat, SQLWave, HeidiSQL)
Presentatie “phpMyAdmin voor beginners” - http://slideshare.net/yireoJisse Reitsma ([email protected]) - Twitter @yireo
Introductie tot MySQLIntroductie tot MySQL
Onderdeel van een stack
Client/server architectuur
Wat is SQL?Structured Query Language
Een manier om tegen een relationele database te praten
Presentatie “phpMyAdmin voor beginners” - http://slideshare.net/yireoJisse Reitsma ([email protected]) - Twitter @yireo
Structured Query LanguageStructured Query Language
Een algemene taal om tegen verschillende databases te praten:
SELECT field FROM table
DELETE FROM table WHERE id = 2
INSERT INTO table SET id = 2, value = “voorbeeld”
... helaas zijn er nog steeds verschillende “dialecten” binnen SQL
Presentatie “phpMyAdmin voor beginners” - http://slideshare.net/yireoJisse Reitsma ([email protected]) - Twitter @yireo
SQL databasesSQL databases
MySQL
MariaDB
Oracle
Microsoft SQL
DB2
PostgreSQL
SQLite
Sybase
Microsoft Access
dBase
Presentatie “phpMyAdmin voor beginners” - http://slideshare.net/yireoJisse Reitsma ([email protected]) - Twitter @yireo
Relationele databaseRelationele database
Gegevens opslaan in meerdere database-tabellen
Normalisatie“Techniek bij ontwerpen van een database met als doel het vermijden van meervoudige vastlegging van dezelfde data”
Presentatie “phpMyAdmin voor beginners” - http://slideshare.net/yireoJisse Reitsma ([email protected]) - Twitter @yireo
Voorbeeld 1: Joomla! gebruikersVoorbeeld 1: Joomla! gebruikers
jos_users Lijst van gebruikers
jos_usergroups Lijst van gebruikersgroepen
jos_user_usergroup_map Koppeling tussen gebruikers en gebruikersgroepen
Presentatie “phpMyAdmin voor beginners” - http://slideshare.net/yireoJisse Reitsma ([email protected]) - Twitter @yireo
Voorbeeld 2: Joomla! artikelenVoorbeeld 2: Joomla! artikelen
jos_content Lijst van artikelen (met een referentie naar catid & asset_id)
jos_categories Lijst van categorieen
jos_assets Lijst van authorisaties
Presentatie “phpMyAdmin voor beginners” - http://slideshare.net/yireoJisse Reitsma ([email protected]) - Twitter @yireo
Deel 2:phpMyAdmin
Deel 2:phpMyAdmin
Presentatie “phpMyAdmin voor beginners” - http://slideshare.net/yireoJisse Reitsma ([email protected]) - Twitter @yireo
phpMyAdminphpMyAdmin
Overzicht van phpMyAdminSELECT-statementAlgemene taken (edit, add, delete)Import & export
Presentatie “phpMyAdmin voor beginners” - http://slideshare.net/yireoJisse Reitsma ([email protected]) - Twitter @yireo
Inloggen op phpMyAdminInloggen op phpMyAdmin
Directe weblinkControle panel
CPanel, Plesk, DirectAdminmaatwerk controlepaneel (Byte, MijnDomein)
Presentatie “phpMyAdmin voor beginners” - http://slideshare.net/yireoJisse Reitsma ([email protected]) - Twitter @yireo
Een database aanmakenEen database aanmaken
Maak een gebruiker aan met corresponderende databaseControleer de 'collation'
utf8_unicode_ci / utf8_general_ci
Presentatie “phpMyAdmin voor beginners” - http://slideshare.net/yireoJisse Reitsma ([email protected]) - Twitter @yireo
phpMyAdminphpMyAdmin
Overzicht van phpMyAdminSELECT-statementAlgemene taken (edit, add, delete)Import & export
Presentatie “phpMyAdmin voor beginners” - http://slideshare.net/yireoJisse Reitsma ([email protected]) - Twitter @yireo
Een database-tabel openenEen database-tabel openen
Presentatie “phpMyAdmin voor beginners” - http://slideshare.net/yireoJisse Reitsma ([email protected]) - Twitter @yireo
SELECT (1/3)SELECT (1/3)
SELECT * FROM jos_users;
SELECT title,alias FROM jos_content;
SELECT id,username FROM jos_users;
SELECT name,type,enabled FROM jos_extensions;
Presentatie “phpMyAdmin voor beginners” - http://slideshare.net/yireoJisse Reitsma ([email protected]) - Twitter @yireo
SELECT (2/3)SELECT (2/3)
Presentatie “phpMyAdmin voor beginners” - http://slideshare.net/yireoJisse Reitsma ([email protected]) - Twitter @yireo
SELECT (3/3)SELECT (3/3)
Presentatie “phpMyAdmin voor beginners” - http://slideshare.net/yireoJisse Reitsma ([email protected]) - Twitter @yireo
WHEREWHERE
SELECT * FROM x WHERE id = 42;
SELECT * FROM x WHERE id IN (42,43,44,45);
SELECT * FROM x WHERE title = “Example 1”;
SELECT * FROM x WHERE title LIKE “Example%”;
SELECT * FROM x WHERE title LIKE “%example%”;
SELECT * FROM x WHERE created_time > “201202”;
Presentatie “phpMyAdmin voor beginners” - http://slideshare.net/yireoJisse Reitsma ([email protected]) - Twitter @yireo
Quotes (1/2)Quotes (1/2)
Fout:SELECT from FROM select WHERE where LIKE “a%”;
Correct:SELECT `from` FROM `select` WHERE `where` LIKE “a%”;
Presentatie “phpMyAdmin voor beginners” - http://slideshare.net/yireoJisse Reitsma ([email protected]) - Twitter @yireo
Quotes (2/2)Quotes (2/2)
SELECT `id`,`title`,`description` FROM `jos_content` WHERE `title` LIKE “example%” AND `id` IN (25,26,27,28,29,30) AND `created_time` > “”;
Presentatie “phpMyAdmin voor beginners” - http://slideshare.net/yireoJisse Reitsma ([email protected]) - Twitter @yireo
phpMyAdminphpMyAdmin
Overzicht van phpMyAdminSELECT-statementAlgemene taken (edit, add, delete)Import & export
Presentatie “phpMyAdmin voor beginners” - http://slideshare.net/yireoJisse Reitsma ([email protected]) - Twitter @yireo
Update, insert, deleteUpdate, insert, deleteUPDATE jos_content
SET `title`=”Hello World”WHERE `title`=”Hello world”;
INSERT INTO jos_content VALUES `title`=”x”;
DELETE FROM jos_contentWHERE `id`=2;
Presentatie “phpMyAdmin voor beginners” - http://slideshare.net/yireoJisse Reitsma ([email protected]) - Twitter @yireo
phpMyAdminphpMyAdmin
Overzicht van phpMyAdminSELECT-statementAlgemene taken (edit, add, delete)Import & export
Presentatie “phpMyAdmin voor beginners” - http://slideshare.net/yireoJisse Reitsma ([email protected]) - Twitter @yireo
ExportExport
Welke database-tabellen?Enkele database-tabel?Meerdere database-tabel?Alle database-tabellen? (ofwel de hele database)
Welke gegevens?Structuur en/of data
.... of gebruik “Akeeba Backup” (akeebabackup.com)
Presentatie “phpMyAdmin voor beginners” - http://slideshare.net/yireoJisse Reitsma ([email protected]) - Twitter @yireo
Deel 3:Geavanceerd
Deel 3:Geavanceerd
Presentatie “phpMyAdmin voor beginners” - http://slideshare.net/yireoJisse Reitsma ([email protected]) - Twitter @yireo
Database table prefixDatabase table prefix
Instelbaar tijdens Joomla! installatieMaakt hacks moeilijker (SQL-injection)
Kies niet voor “jos_”Kies niet voor “verylongstring_” (ivm tabel-naam limiet van 64)
Presentatie “phpMyAdmin voor beginners” - http://slideshare.net/yireoJisse Reitsma ([email protected]) - Twitter @yireo
User ID 42User ID 42
Standaard “admin” user heeft een ID 42 (Joomla! 2.5 en ouder)Maakt hacks makkelijker (SQL-injection)
Procedure om aan te passenMaak een nieuwe Super User aan en login als die userVerwijder de oude Super UserUpdate de nieuwe Super User met de oude details
... of gebruik “Akeeba AdminTools” (akeebabackup.com)
Presentatie “phpMyAdmin voor beginners” - http://slideshare.net/yireoJisse Reitsma ([email protected]) - Twitter @yireo
Opschonen van database-tabellenOpschonen van database-tabellen
TRUNCATE `jos_content`;Wees hier voorzichtbaar mee:
Zorg voor een backupEr wordt niet gecontroleerd of de relaties met andere tabellen kloppen
Presentatie “phpMyAdmin voor beginners” - http://slideshare.net/yireoJisse Reitsma ([email protected]) - Twitter @yireo
JOINsJOINs
LEFT JOINRIGHT JOININNER JOINOUTER JOIN
Presentatie “phpMyAdmin voor beginners” - http://slideshare.net/yireoJisse Reitsma ([email protected]) - Twitter @yireo
Example JOINExample JOINSELECT article.*, cat.title AS cat_title
FROM jos_content AS articleLEFT JOIN jos_categories AS catON cat.id = a.catidWHERE cat.id = 3;
Presentatie “phpMyAdmin voor beginners” - http://slideshare.net/yireoJisse Reitsma ([email protected]) - Twitter @yireo
UTF-8 & collationsUTF-8 & collations
UTF-8 = Standaard karakterset voor Joomla!Support voor Westerse talen, Arabisch, Sanskrit, Klingon
Collations = Interpretatie van karakterset m.b.t. opslagmethodeutf8_general_ci (standaard)
utf8_unicode_ci (aanbevolen)utf8_polish_cilatin1 (niet gebruiken)
Presentatie “phpMyAdmin voor beginners” - http://slideshare.net/yireoJisse Reitsma ([email protected]) - Twitter @yireo
Verkeerde collationVerkeerde collation
Als een Joomla! database geen gebruik maakt van UTF-8 collaties, zorg ervoor dat dit wel aan komt te staan (per database, tabel en veld)
– Exporteer de database naar een SQL-file– Verander overal “charset=latin1 “ in “charset=utf8”– Importeer de SQL-file
... of gebruik “Phoca Changing Collation Tool” (phoca.cz)
Presentatie “phpMyAdmin voor beginners” - http://slideshare.net/yireoJisse Reitsma ([email protected]) - Twitter @yireo
MyISAM & InnoDBMyISAM & InnoDB
MyISAM Storage EngineStandaard op meeste hosting omgeving
InnoDB Storage EngineMeer geavanceerd, meer tuning optiesMaar niet perse nodig voor Joomla!
Presentatie “phpMyAdmin voor beginners” - http://slideshare.net/yireoJisse Reitsma ([email protected]) - Twitter @yireo
Alternatieven op MySQLAlternatieven op MySQL
PerconaMariaDbNoSQL
Presentatie “phpMyAdmin voor beginners” - http://slideshare.net/yireoJisse Reitsma ([email protected]) - Twitter @yireo
Database optimalisatieDatabase optimalisatie
Genoeg RAM-geheugenVariabelen
query_cache_sizetable_cache, table_sizeVarious buffersInnoDB stuff (pool size, threading)
Aanpassen & monitoren; aanpassen & monitoren
Presentatie “phpMyAdmin voor beginners” - http://slideshare.net/yireoJisse Reitsma ([email protected]) - Twitter @yireo
Mijn presentatieMijn presentatie
Deel I - MySQLStack; Client/server; SQL
Deel II - phpMyAdminINSERT, SELECT, UPDATE, DELETE;
Aanmaken van database, database-user; Import / export;
Deel III - GeavanceerdJOINs; UTF-8, collations; user-ID 42; MyISAM, InnoDB
TRUNCATE; database table prefix
Presentatie “phpMyAdmin voor beginners” - http://slideshare.net/yireoJisse Reitsma ([email protected]) - Twitter @yireo
tweet @yireotweet @yireo