2. Ik ben Jisse Reitsma
Developer
Ondernemer
Eigenaar van Yireo
Joomla! & Magento
Extensies & ontwikkeling
Documentatie & blogs
Joomla! templates-book (NL)
Presentatie “phpMyAdmin voor beginners” - http://slideshare.net/yireo
Jisse Reitsma (jisse@yireo.com) - Twitter @yireo
3. Jij bent een ...
Joomla! site-eigenaar?
Joomla! bouwer?
Joomla! programmeur?
Presentatie “phpMyAdmin voor beginners” - http://slideshare.net/yireo
Jisse Reitsma (jisse@yireo.com) - Twitter @yireo
4. Mijn 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/yireo
Jisse Reitsma (jisse@yireo.com) - Twitter @yireo
6. Introductie tot MySQL
Onderdeel van een stack
Client/server architectuur
Wat is SQL?
Presentatie “phpMyAdmin voor beginners” - http://slideshare.net/yireo
Jisse Reitsma (jisse@yireo.com) - Twitter @yireo
7. Stack
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/yireo
Jisse Reitsma (jisse@yireo.com) - Twitter @yireo
8. Introductie tot MySQL
Onderdeel van een stack
Client/server architectuur
Wat is SQL?
Presentatie “phpMyAdmin voor beginners” - http://slideshare.net/yireo
Jisse Reitsma (jisse@yireo.com) - Twitter @yireo
9. MySQL server
MySQL op dezelfde server als de website
localhost
Op een andere server maar bij dezelfde hoster
mysql12345.hoster.local
Op een andere server bij een andere hoster
TCP-poort 3306 open in de firewall
Beveiling wordt hierdoor een probleem
Presentatie “phpMyAdmin voor beginners” - http://slideshare.net/yireo
Jisse Reitsma (jisse@yireo.com) - Twitter @yireo
11. Introductie 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/yireo
Jisse Reitsma (jisse@yireo.com) - Twitter @yireo
12. Structured 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/yireo
Jisse Reitsma (jisse@yireo.com) - Twitter @yireo
14. Relationele 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/yireo
Jisse Reitsma (jisse@yireo.com) - Twitter @yireo
15. Voorbeeld 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/yireo
Jisse Reitsma (jisse@yireo.com) - Twitter @yireo
16. Voorbeeld 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/yireo
Jisse Reitsma (jisse@yireo.com) - Twitter @yireo
20. Een database aanmaken
Maak een gebruiker aan met corresponderende database
Controleer de 'collation'
utf8_unicode_ci / utf8_general_ci
Presentatie “phpMyAdmin voor beginners” - http://slideshare.net/yireo
Jisse Reitsma (jisse@yireo.com) - Twitter @yireo
32. Export
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/yireo
Jisse Reitsma (jisse@yireo.com) - Twitter @yireo
34. Database table prefix
Instelbaar tijdens Joomla! installatie
Maakt 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/yireo
Jisse Reitsma (jisse@yireo.com) - Twitter @yireo
35. User ID 42
Standaard “admin” user heeft een ID 42 (Joomla! 2.5 en ouder)
Maakt hacks makkelijker (SQL-injection)
Procedure om aan te passen
Maak een nieuwe Super User aan en login als die user
Verwijder de oude Super User
Update de nieuwe Super User met de oude details
... of gebruik “Akeeba AdminTools” (akeebabackup.com)
Presentatie “phpMyAdmin voor beginners” - http://slideshare.net/yireo
Jisse Reitsma (jisse@yireo.com) - Twitter @yireo
36. Opschonen van database-tabellen
TRUNCATE `jos_content`;
Wees hier voorzichtbaar mee:
Zorg voor een backup
Er wordt niet gecontroleerd of de relaties met andere tabellen kloppen
Presentatie “phpMyAdmin voor beginners” - http://slideshare.net/yireo
Jisse Reitsma (jisse@yireo.com) - Twitter @yireo
37. JOINs
LEFT JOIN
RIGHT JOIN
INNER JOIN
OUTER JOIN
Presentatie “phpMyAdmin voor beginners” - http://slideshare.net/yireo
Jisse Reitsma (jisse@yireo.com) - Twitter @yireo
39. UTF-8 & collations
UTF-8 = Standaard karakterset voor Joomla!
Support voor Westerse talen, Arabisch, Sanskrit, Klingon
Collations = Interpretatie van karakterset m.b.t. opslagmethode
utf8_general_ci (standaard)
utf8_unicode_ci (aanbevolen)
utf8_polish_ci
latin1 (niet gebruiken)
Presentatie “phpMyAdmin voor beginners” - http://slideshare.net/yireo
Jisse Reitsma (jisse@yireo.com) - Twitter @yireo
40. Verkeerde 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/yireo
Jisse Reitsma (jisse@yireo.com) - Twitter @yireo
41. MyISAM & InnoDB
MyISAM Storage Engine
Standaard op meeste hosting omgeving
InnoDB Storage Engine
Meer geavanceerd, meer tuning opties
Maar niet perse nodig voor Joomla!
Presentatie “phpMyAdmin voor beginners” - http://slideshare.net/yireo
Jisse Reitsma (jisse@yireo.com) - Twitter @yireo