1. MySQL Tutorial MySQL Architecture Common Tools Examples António Amorim, Carlos Jesus. CU1 - DBWorkshop 9-10 /Feb/09
2.
3.
4.
5. MySQL Architecture Some internal components: António Amorim, Carlos Jesus. CU1 - DBWorkshop 9-10 /Feb/09 Each client connection gets its own thread within the server process. When clients (applications) connect to the MySQL server, the server needs to authenticate them. Before even parsing the query, though, the server consults the query cache, which only stores SELECT statements, along with their result sets. The storage engine does affect how the server optimizes query.
6. MySQL Architecture Transactional properties (ACID): António Amorim, Carlos Jesus. CU1 - DBWorkshop 9-10 /Feb/09 MySQL Innodb storage engine fully supports transactions, a transaction can be viewed as a block of instructions that act are applied coherently to the database, in turn this means ACID standard compliance: Atomicity : Each transaction block is treated as a single instruction, all of the block must succeed or none. Consistency : Only valid data is written to the database, and the resulting state is valid. Isolation : While performing operations in a transaction block, other transactions don't see our changes. Durability : If the transaction returns a successful state it is persisted to the database.
7. MySQL Architecture Storage engines: António Amorim, Carlos Jesus. CU1 - DBWorkshop 9-10 /Feb/09 MySQL supports several storage engines that act as handlers for different table types. MySQL storage engines include both those that handle transaction-safe tables and those that handle non-transaction-safe tables.
8. MySQL Installation António Amorim, Carlos Jesus. CU1 - DBWorkshop 9-10 /Feb/09 Windows Installation wizard: http://dev.mysql.com/downloads/mysql/5.1.html#win32 Linux: Debian Based: apt-get install mysql-server-5.0 RPM based: rpm -ivh MySQL-server-*5.1.31-0.rhel3.i386.rpm YUM Based: yum install mysql-sever Gentoo Based: emerge mysql Macintosh: http://dev.mysql.com/downloads/mysql/5.1.html#macosx All in One Packages MAMP – Macintosh Apache MySQL and PHP http://www.mamp.info/en/index.php WAMP – Windows Apache MySQL and PHP http://www.wampserver.com/en/
9. MySQL Overview MySQL Files: António Amorim, Carlos Jesus. CU1 - DBWorkshop 9-10 /Feb/09 wits In Linux the configuration file is typically located at /etc/mysql/my.cnf, but may vary for the different Linux flavours, this also applies to the database files them selves which are located in the /var/lib/MySQL. Regardless of the storage engine, every MySQL table you create is represented, on disk, by a .frm file, which describes the table’s format (i.e. the table definition). The file bears the same name as the table, with a .frm extension. The .frm format is the same on all platforms but in the description of the .frm format that follows, the examples come from tables created under the Linux operating system. /var/lib/mysql/db.frm #Table definition /var/lib/mysql/db.MYD #MyISAM data file /var/lib/mysql/db.MYI #MyISAM Index file /var/lib/mysql/ibdata1 #Innodb data file
10. MySQL Command Line tools António Amorim, Carlos Jesus. CU1 - DBWorkshop 9-10 /Feb/09 On Linux the a user can interact with MySQL using the command line, in this interaction a user can create, update, delete and modify a MySQL database using the following command line tools mysql: general database and table interaction: mysql -u username -ppassword -h localhost db_name mysqldump: database backup mysqldump db_name > outputfile mysqlbinlog: binary log processing mysqlbinlog logfile_1 logfile_2 ... logfile_n > out.sql mysqlbinlog logfile_1 logfile_2 ... logfile_n | mysql mysql_install_db: database restore mysql_install_db
11.
12. MySQL Graphical tools MySQL query browser António Amorim, Carlos Jesus. CU1 - DBWorkshop 9-10 /Feb/09 MySQL query browser is a simple query tool used to interact with a MySQl database.
13. MySQL Graphical tools phpmyadim António Amorim, Carlos Jesus. CU1 - DBWorkshop 9-10 /Feb/09 Phpmyadmin is a browser tool developed in php, that allows you to manage a mysql database.
14. MySQL and Gaia António Amorim, Carlos Jesus. CU1 - DBWorkshop 9-10 /Feb/09 DbBenchmark is a simple java application that makes use of GaiaTools (currently outdated), and performs a series of standard tests. Class mapping: mdb.properties test control: dbbenchmark.properties.mysql_elem gaia.cu1.tools.db.username=username gaia.cu1.tools.db.password=password gaia.cu1.tools.db.driver=com.mysql.jdbc.Driver gaia.cu1.tools.db.url=jdbc:mysql://localhost:3306/gaia_test?rewriteBatchedStatements=true Running the tests: ant mysql_elem_random DbBenchmark
15. MySQL and Gaia António Amorim, Carlos Jesus. CU1 - DBWorkshop 9-10 /Feb/09 MDBIngestorExtractor is a application that allows the extraction and ingestion “gbin” files, which are Class mapping: conf/mdb.properties MDB Extractor Ingestor properties: conf/ingestor.properties conf/extractor.properties gaia.cu1.tools.db.username=username gaia.cu1.tools.db.password=password gaia.cu1.tools.db.url=jdbc:mysql://localhost:3306/test gaia.cu1.tools.db.driver=com.mysql.jdbc.Driver Lauching the extactor/ingestor: bash ingest.sh bash extract.sh MDBIngestorExtractor
16. MySQL queries António Amorim, Carlos Jesus. CU1 - DBWorkshop 9-10 /Feb/09 Create a database: create database database_name; Display databases: show databases; Selecting a database use database_name Display tables: show tables Create a table: create table create table person (id int, person varchar (32) ) engine=engine_name Deleting a table: Drop table table_name Insert a value in a table: Insert into table_name.db_name (field1 , field 2...) Values (v1, v2, ...), (v1',v2'); View data all data in a table: select * from table name where cond = value Select data from two different tables: Select field1, field2 from tbl1, tbl2 where field3= field4; Sow create table statement: show create table tbl_name Show database variables: show variables;
17.
18. MySQL Graphical tools phpmysqladmin and foreign keys António Amorim, Carlos Jesus. CU1 - DBWorkshop 9-10 /Feb/09
19. MySQL Graphical tools phpmysqladmin and foreign keys António Amorim, Carlos Jesus. CU1 - DBWorkshop 9-10 /Feb/09
20. MySQL Graphical tools Phpmyadmin and foreign keys António Amorim, Carlos Jesus. CU1 - DBWorkshop 9-10 /Feb/09
21. MySQL Graphical tools phpmyadmin and foreign keys António Amorim, Carlos Jesus. CU1 - DBWorkshop 9-10 /Feb/09
22. MySQL Graphical tools phpmyadmin and foreign keys António Amorim, Carlos Jesus. CU1 - DBWorkshop 9-10 /Feb/09
23. MySQL Graphical tools phpmyadmin and foreign keys António Amorim, Carlos Jesus. CU1 - DBWorkshop 9-10 /Feb/09
24. MySQL Graphical tools phpmyadmin and foreign keys António Amorim, Carlos Jesus. CU1 - DBWorkshop 9-10 /Feb/09
25. MySQL Graphical tools phpmyadmin and foreign keys António Amorim, Carlos Jesus. CU1 - DBWorkshop 9-10 /Feb/09
26. MySQL Graphical tools phpmyadmin and foreign keys António Amorim, Carlos Jesus. CU1 - DBWorkshop 9-10 /Feb/09
27. MySQL Graphical tools phpmyadmin and foreign keys António Amorim, Carlos Jesus. CU1 - DBWorkshop 9-10 /Feb/09