+ All Categories
Home > Documents > Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench...

Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench...

Date post: 24-Jul-2020
Category:
Upload: others
View: 4 times
Download: 0 times
Share this document with a friend
77
http://hiconsumption.com/2012/07/star-wars-recreations-of-iconic-photographs-by-david-eger/
Transcript
Page 1: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

http://hiconsumption.com/2012/07/star-wars-recreations-of-iconic-photographs-by-david-eger/

Page 2: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

<Insert Picture Here>

MySQL: Crash CourseKeith [email protected] Community Managerhttp://sqlhjalp.com/pdf/MySQL_susecon_crashcourse_2012.pdf

Page 3: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions.

The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle.

Safe Harbor Statement

TM & © 2012 Lucasfilm Ltd. All rights reserved. ©2012 The LEGO Group. All rights reserved.

http://jennysung.com/wp-content/uploads/2012/03/stormtroopers1.jpg

Page 4: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

Who am I and who are you?

Who are you?– DBAs?– Developers?

• PHP• Perl• Python• .net

– Admins?

[email protected] MySQL Community Managerhttp://www.sqlhjalp.com/

Started with MySQL during the dot.com days. Primary real world work was with a MySQL InnoDB replicated chain environment that easily held over 4 billion rows of user data.Numerous other sites developed on LAMP stack over the last 13 years.

Copyright Oracle Corporation 2012 4

http://3.bp.blogspot.com/-IXu-9-s-8Fg/TvTs8JbgvdI/AAAAAAAAJpo/at-pjGsDlXg/s1600/Bat%2BStorm%2BTrooper%2BLego.jpg

Page 5: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

• This is about you and your needs...• I can also cover..

• Oracle's Investment into MySQL• A high-level overview• Familiarize with the key concepts• MySQL Editions

Session Agenda

Copyright Oracle Corporation 2012 5

Investment Overview Key Concepts Editions

Page 6: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

Copyright Oracle Corporation 2012 6

Page 7: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

mysql> The official way to pronounce “MySQL” is “My Ess Que Ell”

but we do not mind if you pronounce it as “my sequel”

It was named after Monty's Daughter Maria.

Pronunciation

Copyright Oracle Corporation 2012 7

Page 8: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

• Oracle's Investment into MySQL

Session Agenda

Copyright Oracle Corporation 2012 8

http://www.thesambarnes.com/wp-content/themes/ImpreZZ/images/profitable-web-project-decisions.jpgTM & © LUCASFILM LTD. 2012. ALL RIGHTS RESERVED

Page 9: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

MySQL On the Cover

http://www.oracle.com/technetwork/issue-archive/2011/11-jan/index-191276.html

Copyright Oracle Corporation 2012 9

Page 10: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

Built together

Tested together

Managed together

Serviced together

Based on open standards

Lower cost

Lower risk

More reliable

Hardware and Software Engineered to Work Together

MySQL Completes The Stack

Page 11: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

Q2 CY2010 Q3 CY2010 Q4 CY2010 Q1 CY2011

• MySQL Workbench 5.2

GA!

• MySQL Database 5.5 • MySQL Enterprise Backup 3.5• MySQL Enterprise Monitor 2.3• MySQL Cluster Manager 1.1

All GA!

A Better MySQL

Q2 CY2011

•MySQL Enterprise Monitor 2.2•MySQL Cluster 7.1• MySQL Cluster Manager 1.0

All GA!

• MySQL Database 5.6

• MySQL Cluster 7.2

DMR*

and MySQL Labs!

(“early and often”)

*Development Milestone Release

Continuous Innovation with more product releases than ever before

Copyright Oracle Corporation 2012 11

Page 12: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

Enterprise 2.0SaaS, Cloud

Web OEM / ISV’s

Telecommunications

Rely on MySQL

Industry Leading Customers

Copyright Oracle Corporation 2012 12

Page 13: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

>70% of Oracle Shops run MySQL

Copyright Oracle Corporation 2012 13

MySQL: Still Free, Open to the CommunityAvailable to download and use under the GPL:

• MySQL Database (Community Server)

• MySQL Cluster

• MySQL Workbench Community Edition

• MySQL Connectors

• MySQL Proxy

• Documentation (free to use, not covered under GPL)

• Forums

Page 14: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

• A high-level overview

Session Agenda

Copyright Oracle Corporation 2012 14

http://farm3.static.flickr.com/2646/3678467304_66908d66d4.jpgTM & © LUCASFILM LTD. 2012. ALL RIGHTS RESERVED

Page 15: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

MySQL Terminology

• Database ( Files )

• Database Instance ( memory)memory• Schema

• User• Table Space

• Database Server Instance

• Database Server Instance

• Database• User• Table Space• Storage Engine

Copyright Oracle Corporation 2012 15

Page 16: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

http://carlos.syr.edu/oracle-database-architecture/

Oracle Database Architecture

Copyright Oracle Corporation 2012 16

Page 17: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

MySQL Database Architecture

Copyright Oracle Corporation 2012 17

Page 18: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

Error Log– log-error

Binary Log– Log-bin custom set via my.cnf

Slow Query Log– Log-slow-queries– Slow-query-time– log-queries-not-using-indexes

General Log– Log

http://dev.mysql.com/doc/refman/5.5/en/server-logs.html

MySQL Logs

Copyright Oracle Corporation 2012 18

Page 19: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

Standalone (mysqld)UNIX daemon

Windows service

Regular process on UNIX or Windows

Embedded (libmysqld)Shared / Dynamic library

MySQL Server

Copyright Oracle Corporation 2012 19

Page 20: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

InnoDB

DB1

InnoDB

DB2

MyISAM

DB3

InnoDB MyISAM

CoreSQL-query processing, …

Plugin 1 Plugin 2 Plugin 3

The Core

PluginsStorage Engines

Full-text search plugins

Audit plugins

Authentication plugins

MySQL Server Components

Copyright Oracle Corporation 2012 20

Page 21: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

The Storage Engine (SE) defines data storage and retrieval

Every regular table belongs to some SE

Most notable Storage Engines:

InnoDB (default since 5.5)

– fully transactional SE

MyISAM (default prior to 5.5)

– NON-transactional SE

MySQL Storage Engines

Copyright Oracle Corporation 2012 21

mysql> SHOW CREATE TABLE City;

CREATE TABLE `City` (

`ID` int(11) NOT NULL AUTO_INCREMENT,

`Name` char(35) NOT NULL DEFAULT '',

`CountryCode` char(3) NOT NULL DEFAULT '',

`District` char(20) NOT NULL DEFAULT '',

`Population` int(11) NOT NULL DEFAULT '0',

PRIMARY KEY (`ID`),

KEY `CountryCode` (`CountryCode`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1;

mysql> SHOW ENGINES;

Page 22: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

Select a specialized storage engine for a particular application need.

InnoDB: a high-reliability and high-performance storage engine for MySQL designed for transaction processing. It follows the ACID model. Row-level locking and Oracle-style consistent reads increase multi-user concurrency and performance

MyISAM: -oldest storage engine has many features

that have been developed over years.

Memory: creates tables with contents that are stored in memory. MySQL Cluster offers the same features as the MEMORY engine with higher performance levels, and provides

additional features

MySQL Storage Engines

Copyright Oracle Corporation 2012 22

Page 23: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

CSV: data file is a plain text file

ARCHIVE: is used for storing large amounts of data without indexes in a very small footprint.

BLACKHOLE:accepts data but throws

it away and does not store it but the

binary log is enabled.

MySQL Storage Engines

Copyright Oracle Corporation 2012 23

Page 24: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

Open Source

Limitations Relating to Storage Engines

Horizontal partitioning

(distribute rows, not columns)

Partitioning functions:

The modulus

Range

Internal hashing function

Linear hashing function

MySQL Partitioning

http://dev.mysql.com/doc/refman/5.1/en/partitioning-overview.html http://dev.mysql.com/tech-resources/articles/mysql_55_partitioning.html

Copyright Oracle Corporation 2012 24

CREATE TABLE members (

firstname VARCHAR(25) NOT NULL,

lastname VARCHAR(25) NOT NULL,

username VARCHAR(16) NOT NULL,

email VARCHAR(35),

joined DATE NOT NULL

)

PARTITION BY RANGE( YEAR(joined) ) (

PARTITION p0 VALUES LESS THAN (1960),

PARTITION p1 VALUES LESS THAN (1970),

PARTITION p2 VALUES LESS THAN (1980),

PARTITION p3 VALUES LESS THAN (1990),

PARTITION p4 VALUES LESS THAN MAXVALUE

);

Page 25: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

MySQL Replication

Copyright Oracle Corporation 2012 25

Page 26: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

Top used Feature in MySQL Used for Scalability and HA

Write to one masterRead from many slaves, easily add more as

neededPerfect for read/write intensive apps Asynchronous as standardSemi-Synchronous support added in MySQL 5.5Each slave adds minimal load on master

Replication formats:

Statement-based replication (SBR): propagate SQL statements

Row-based replication (RBR): propagate row changes

Mixed-based replication: SBR or RBR depending on the query

http://sqlhjalp.blogspot.com/2012/09/mysql-replication-101-overview.html

MySQL Replication Overview

Copyright Oracle Corporation 2012 26

http://www.betabeat.com/2011/09/02/clone-wars-rise-of-the-fast-follower-startups/TM & © LUCASFILM LTD. 2012. ALL RIGHTS RESERVED

Page 27: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

sqlhjalp.com/pdf/2012_Scale_Replication.pdf available for review

MySQL Replication Topologies

Copyright Oracle Corporation 2012 27

Page 28: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

http://sqlhjalp.com/pdf/2012_Scale_Replication.pdf

MySQL Replication Overview

Copyright Oracle Corporation 2012 28

Replication Threads Binlog dump thread Slave I/O thread Slave SQL thread

Replication Files relay log master info log relay log info log

Page 29: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

http://sqlhjalp.com/pdf/2012_Scale_Replication.pdf

MySQL Replication Overview

Copyright Oracle Corporation 2012 29

Page 30: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

http://sqlhjalp.com/pdf/2012_Scale_Replication.pdf

MySQL Replication Overview

Copyright Oracle Corporation 2012 30

Page 31: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

The way depends on the application

Possible solutions:

Replication?

mysqldump

MySQL Enterprise Backup

Best solution is using all three.

# mysqldump -p --all-databases --master-data=1 > /tmp/example_dump.sql

Not an online solution. Can/will lock tables.

MySQL Backup

Copyright Oracle Corporation 2012 31

http://farm6.static.flickr.com/5024/5554971120_df447dd31c.jpgTM & © LUCASFILM LTD. 2012. ALL RIGHTS RESERVED

Page 32: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

Online Backup for InnoDBSupport for MyISAM (Read-only)High Performance Backup & RestoreCompressed BackupFull BackupIncremental BackupPartial BackupsPoint in Time RecoveryUnlimited Database SizeCross-PlatformWindows, Linux, Unix

Ensures quick, online backup and recovery of your MySQL apps.

MySQL Enterprise Backup

Copyright Oracle Corporation 2012 32

Page 33: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

Usage:

ibbackup [--incremental lsn] [--sleep ms] [--suspend-at-end] [--compress [level]] [--include regexp] my.cnf backup-my.cnf

or

ibbackup --apply-log [--use-memory mb] [--uncompress] backup-my.cnf

or

ibbackup --apply-log --incremental [--use-memory mb] [--uncompress] incremental-backup-my.cnf full-backup-my.cnf

The backup program does NOT make a backup of the .frm files of the tables,

and it does not make backups of MyISAM tables. To back up these items, either:

- Use the mysqlbackup program.

- Make backups of the .frm files with the Unix 'tar' or the Windows WinZip or an equivalent tool both BEFORE and AFTER ibbackup finishes its work,and also store the MySQL binlog segment that is generated between the moment

you copy the .frm files to a backup and the moment ibbackup finishes its work.

For extra safety, also use:

mysqldump -l -d yourdatabasename

to dump the table CREATE statements in a human-readable form before

ibbackup finishes its work.

Copyright Oracle Corporation 2012 33

MySQL Enterprise Backup

Page 34: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

• Familiarize with the key conceptsSession Agenda

Copyright Oracle Corporation 2012 34

http://www.flickr.com/photos/kalexanderson/7658081474/in/set-72157628651430439/TM & © LUCASFILM LTD. 2012. ALL RIGHTS RESERVED

Page 35: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

Highly configurable

Command line options

Configuration files (plain-text, INI-like files with groups)

Several configuration files (/etc, $HOME, …)

The last value takes precedence

Default configuration are examples and might be not so good for Performance, ...

MySQL Configuration

Copyright Oracle Corporation 2012 35

One example: SQL MODE

Very important variable

Affects data consistency!

It might be remembered …

… or it might be not

Thus: set it once for all

Recommended value:

STRICT_ALL_TABLES |NO_ZERO_DATE |NO_ZERO_IN_DATE |NO_ENGINE_SUBSTITUTION |NO_AUTO_CREATE_USER |IGNORE_SPACE |ERROR_FOR_DIVISION_BY_ZERO

Page 36: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

Secure the installationDon’t run under ‘root’

Have separate directories (configuration, data, binary logs, …)

Change ‘root’ password

Remove default accounts

Post-installation steps: Security

MySQL

Copyright Oracle Corporation 2012 36

Page 37: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

MySQL products support unicode.

Full Unicode 5.0 is supported for data, and for metadata we support only characters for Basic Multilingual Plane (BMP).

Database or schema in Oracle world.

Current database (per connection)

Database – a set of files in “the data directory”

System database (mysql)

Virtual databases:

INFORMATION_SCHEMA

PERFORMANCE_SCHEMA

MySQL Concepts

Copyright Oracle Corporation 2012 37

Page 38: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

User: username@hostname

Precisely: ‘user-name-mask’@’host-name-mask’

Host name – client host name (“from” host name)

User name mask:

can be empty (anonymous user) – all users

Host name mask:

can be empty – all host names (%)

can have ‘%’ (e.g.: %.foo.com)

MySQL Privileges

Copyright Oracle Corporation 2012 38

Page 39: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

Connecting as foo from localhost…

Should be foo@%, right ?

The most specific values are used

BUT: host name matching is done before user name

mysql -u foo -h localhost -p

‘’@localhost will be chosen !

MySQL Privileges

+-----------+-------------------+

| Host | User |

+-----------+-------------------+

| localhost | |

| localhost | bar |

| % | foo |

| localhost | root |

+-----------+-------------------+

Copyright Oracle Corporation 2012 39

Page 40: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

$ mysql -u root

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

$ mysql -u root -p

Enter password:

$ mysqladmin -u root -p password <passwordhere>

mysql> UPDATE mysql.user

SET Password=PASSWORD('<passwordhere>')

WHERE User='root';

mysql> FLUSH PRIVILEGES;

Copyright Oracle Corporation 2012 40

MySQL Privileges -- Root

Page 41: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

Do not know the root password?

Stop the service: # /etc/init.d/mysql stop

Restart with skip grand: # mysqld_safe --skip-grant-tables &

Connect as root: # mysql -u root

Set new password :

use mysql;

mysql> update user set password=PASSWORD("NEW-ROOT-PASSWORD") where User='root';

mysql> flush privileges;

mysql> quit

Stop the service: # /etc/init.d/mysql stop

Start the service: # /etc/init.d/mysql start

Log in as root with password. # mysql -u root -p

Copyright Oracle Corporation 2012 41

http://dev.mysql.com/doc/refman/5.5/en/resetting-permissions.html

MySQL Privileges

Page 42: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

mysql> CREATE USER 'monty'@'localhost' IDENTIFIED BY 'some_pass';

mysql> GRANT ALTER, CREATE VIEW, CREATE, DELETE, DROP, GRANT OPTION, INDEX, INSERT, SELECT, SHOW VIEW, TRIGGER, UPDATE ON *.* TO 'monty'@'localhost'

WITH GRANT OPTION;

mysql> CREATE USER 'monty'@'%' IDENTIFIED BY 'some_pass';

mysql> GRANT ALTER, CREATE VIEW, CREATE, DELETE, DROP, GRANT OPTION, INDEX, INSERT, SELECT, SHOW VIEW, TRIGGER, UPDATE ON *.* TO 'monty'@'%'

mysql> flush privileges ;

Copyright Oracle Corporation 2012 42

MySQL Privileges -- users

http://dev.mysql.com/doc/refman/5.6/en/grant.html

Page 43: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

mysql> CREATE USER 'admin'@'localhost' IDENTIFIED BY 'admin_pass';

mysql> GRANT ALL ON *.* TO 'admin'@'localhost';

mysql> flush privileges ;

MySQL Super User Accounts

Copyright Oracle Corporation 2012 43

http://dev.mysql.com/doc/refman/5.6/en/grant.html

http://www.boston.com/partners/greader/prfmkt/images/X00-m5707191.jpgTM & © LUCASFILM LTD. 2012. ALL RIGHTS RESERVED

Page 44: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

SHOW CREATE TABLE tbl_name

SHOW CREATE PROCEDURE proc_name

SHOW CREATE TRIGGER trigger_name

SHOW CREATE VIEW view_name

SHOW PROCEDURE CODE proc_name

SHOW PROCEDURE STATUS [like_or_where]

SHOW [FULL] PROCESSLIST

SHOW GRANTS [FOR user]

SHOW WARNINGS [LIMIT [offset,] row_count]

SHOW {DATABASES | SCHEMAS} [LIKE 'pattern' | WHERE expr]

SHOW OPEN TABLES [{FROM | IN} db_name] [LIKE 'pattern' | WHERE expr]

SHOW BINARY LOGS

SHOW MASTER LOGS

MySQL Show Commands

Copyright Oracle Corporation 2012 44

http://dev.mysql.com/doc/refman/5.6/en/show.html

Page 45: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

Use SHOW processlist to find out what is going on:+----+-------+-----------+----+---------+------+--------------+-------------------------------------+

| Id | User | Host | db | Command | Time | State | Info |

+----+-------+-----------+----+---------+------+--------------+-------------------------------------+

| 6 | monty | localhost | bp | Query | 15 | Sending data | select * from station,station as s1 |

| 8 | monty | localhost | | Query | 0 | | show processlist |

+----+-------+-----------+----+---------+------+--------------+-------------------------------------+

Use KILL in mysql or mysqladmin to kill off runaway threads.

How to find out how MySQL solves a query

Run the following commands and try to understand the output:

* SHOW VARIABLES;

* SHOW COLUMNS FROM ...\G

* EXPLAIN SELECT ...\G

* FLUSH STATUS;

* SELECT ...;

* SHOW STATUS;

MySQL Show Processlist

Copyright Oracle Corporation 2012 45

Page 46: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

A few ways to see what databases you have on your system:– cd /var/lib/mysql

• Review the directories– Log in to MySQL server

• Show databases– mysql -u root -p

» Enter password: – show databases;– +--------------------+

– | Database |

– +--------------------+

– | information_schema |

– | db_example |

– | employees |

– | exampledb |

– | mysql |

– | orig |

– | performance_schema |

– +--------------------+

MySQL Databases/Schema

Copyright Oracle Corporation 2012 46

Page 47: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

mysql> use world; ---- DATABASE / SCHEMA

mysql> show tables; ---- TABLE SPACE

+-----------------+

| Tables_in_world |

+-----------------+

| City |

| Country |

| CountryLanguage |

+-----------------+

3 rows in set (0.00 sec)

MySQL Table Space

Copyright Oracle Corporation 2012 47

Page 48: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

mysql> show create table City;

CREATE TABLE `City` (

`ID` int(11) NOT NULL AUTO_INCREMENT,

`Name` char(35) NOT NULL DEFAULT '',

`CountryCode` char(3) NOT NULL DEFAULT '',

`District` char(20) NOT NULL DEFAULT '',

`Population` int(11) NOT NULL DEFAULT '0',

PRIMARY KEY (`ID`),

KEY `CountryCode` (`CountryCode`),

CONSTRAINT `city_ibfk_1` FOREIGN KEY (`CountryCode`) REFERENCES `Country` (`Code`)

) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1

Copyright Oracle Corporation 2012 48

MySQL Table Space

Page 49: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

mysql > desc City;

+-------------+----------+------+-----+---------+----------------+

| Field | Type | Null | Key | Default | Extra |

+-------------+----------+------+-----+---------+----------------+

| ID | int(11) | NO | PRI | NULL | auto_increment |

| Name | char(35) | NO | | | |

| CountryCode | char(3) | NO | MUL | | |

| District | char(20) | NO | | | |

| Population | int(11) | NO | | 0 | |

+-------------+----------+------+-----+---------+----------------+

5 rows in set (0.06 sec)

Copyright Oracle Corporation 2012 49

MySQL Table Space

Page 50: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

TEXT TYPESCHAR( )A fixed section from 0 to 255 characters long.

VARCHAR( ) A variable section from 0 to 255 characters long.

TINYTEXT A string with a maximum length of 255 characters.

TEXT A string with a maximum length of 65535 characters.

BLOB A string with a maximum length of 65535 characters.

MEDIUMTEXT A string with a maximum length of 16777215 characters.

MEDIUMBLOB A string with a maximum length of 16777215 characters.

LONGTEXT A string with a maximum length of 4294967295 characters.

LONGBLOB A string with a maximum length of 4294967295 characters.

CREATE TABLE `example_table` (

...

`value` varchar(100) DEFAULT NULL,

...

MySQL Datatypes

Copyright Oracle Corporation 2012 50

http://dev.mysql.com/doc/refman/5.5/en/data-types.html

Page 51: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

NUMBER TYPES

TINYINT( ) -128 to 127 normal 0 to 255 UNSIGNED.

SMALLINT( ) -32768 to 32767 normal 0 to 65535 UNSIGNED.

MEDIUMINT( ) -8388608 to 8388607 normal 0 to 16777215 UNSIGNED.

INT( ) -2147483648 to 2147483647 normal 0 to 4294967295 UNSIGNED.

BIGINT( )-9223372036854775808 to 9223372036854775807 normal

0 to 18446744073709551615 UNSIGNED.

FLOAT A small number with a floating decimal point.

DOUBLE( , ) A large number with a floating decimal point.

DECIMAL( , ) A DOUBLE stored as a string , allowing for a fixed decimal point.

Create Table: CREATE TABLE `example_table` (

`example_table_id` int(10) unsigned NOT NULL AUTO_INCREMENT,

.....or

`example_table_id` bigint(12) unsigned NOT NULL auto_increment

Copyright Oracle Corporation 2012 51

http://dev.mysql.com/doc/refman/5.5/en/data-types.html

MySQL Datatypes

Page 52: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

DATE TYPES

DATE YYYY-MM-DD.

DATETIME YYYY-MM-DD HH:MM:SS.

TIMESTAMP YYYYMMDDHHMMSS.

TIME HH:MM:SS.

Create Table: CREATE TABLE `example_table` (

`example_table_id` int(10) unsigned NOT NULL AUTO_INCREMENT,

`user_id` int(9) unsigned DEFAULT NULL,

`date_recorded` datetime DEFAULT NULL,

PRIMARY KEY (`example_table_id`),

UNIQUE KEY `user_id` (`user_id`),

KEY `date_recorded` (`date_recorded`)

) ENGINE=InnoDB

Copyright Oracle Corporation 2012 52

http://dev.mysql.com/doc/refman/5.5/en/data-types.html

MySQL Datatypes

Page 53: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

MISC TYPES

ENUM ( ) Short for ENUMERATION which means that each column may have one of a specified possible values.

SET Similar to ENUM except each column may have more than one of the specified possible values.

…..

`transfer_method` enum('OFF','EMAIL','FTP','BATCH POST','FTP-SSL','REAL TIME POST','CUSTOM') default NULL,

….

Copyright Oracle Corporation 2012 53

http://dev.mysql.com/doc/refman/5.5/en/data-types.html

MySQL Datatypes

Page 54: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

URLS to help for later:

http://dev.mysql.com/doc/refman/5.6/en/mysql-indexes.html

http://dev.mysql.com/doc/refman/5.6/en/show-index.html

http://dev.mysql.com/doc/refman/5.6/en/create-index.html

http://learnmysql.blogspot.com/2010/11/mysql-query-and-index-tuning.html

http://www.slideshare.net/manikandakumar/mysql-query-and-index-tuning

http://www.slideshare.net/osscube/indexing-the-mysql-index-key-to-performance-tuning

http://effectivemysql.com/downloads/ImprovingPerformanceWithBetterIndexes-OOW-2011.pdf

http://prajwal-tuladhar.net.np/2009/09/23/474/things-you-should-know-about-mysql-index/

http://dev.mysql.com/doc/refman/5.5/en/innodb-monitors.html

http://dev.mysql.com/doc/refman/5.5/en/innodb-parameters.html

http://dev.mysql.com/doc/refman/5.5/en/innodb-buffer-pool.html

http://www.mysqlperformanceblog.com/2006/07/17/show-innodb-status-walk-through/

http://dev.mysql.com/doc/refman/5.5/en/server-parameters.html

http://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html#sysvar_key_buffer_size

http://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html#sysvar_table_open_cache

http://www.mysqlperformanceblog.com/2007/11/01/innodb-performance-optimization-basics/

http://www.mysqlperformanceblog.com/2007/11/03/choosing-innodb_buffer_pool_size/

MySQL Indexes

http://prajwal-tuladhar.net.np/2009/09/23/474/things-you-should-know-about-mysql-index/

Copyright Oracle Corporation 2012 54

Page 55: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

When MySQL doesn't use an index * Indexes are NOT used if MySQL can calculate that it will probably be faster to

scan the whole table.

For example if key_part1 is evenly distributed between 1 and 100, it's not good to use an index in the following query:

o SELECT * FROM table_name where key_part1 > 1 and key_part1 < 90

* If you are using HEAP tables and you don't search on all key parts with =

* When you use ORDER BY on a HEAP table

* If you are not using the first key part

o SELECT * FROM table_name WHERE key_part2=1

* If you are using LIKE that starts with a wildcard

o SELECT * FROM table_name WHERE key_part1 LIKE '%jani%'

* When you search on one index and do an ORDER BY on another

o SELECT * from table_name WHERE key_part1 = # ORDER BY key2

Copyright Oracle Corporation 2012 55

MySQL Indexes (keys)

Page 56: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

MySQL Index options

MySQL startup options

When tuning a MySQL server, the two most important variables to configure are key_buffer_size and table_open_cache.

The buffer pool is for caching data and indexes in memory so set the following to < 80% of the machine physical memory.

Important options are:

innodb_buffer_pool_size < 80% of memory. # default value is 8M

innodb_log_file_size=2G. #dependent on recovery speed required.

innodb_log_buffer_size=4M

innodb_thread_concurrency=8 # Default

innodb_flush_method=O_DIRECT # double buffering and swap are bad

# innodb_file_per_table #depends on how many tables used. Get the big picture 1st.

Copyright Oracle Corporation 2012 56

Page 57: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

MySQL Indexes (keys)

When MySQL uses indexesUsing >, >=, =, <, <=, IF NULL and BETWEEN on a key.

o SELECT * FROM table_name WHERE key_part1=1 and key_part2 > 5;

o SELECT * FROM table_name WHERE key_part1 IS NULL;

* When you use a LIKE that doesn't start with a wildcard.

o SELECT * FROM table_name WHERE key_part1 LIKE 'jani%'

* Retrieving rows from other tables when performing joins.

o SELECT * from t1,t2 where t1.col=t2.key_part

* Find the MAX() or MIN() value for a specific index.

o SELECT MIN(key_part2),MAX(key_part2) FROM table_name where key_part1=10

* ORDER BY or GROUP BY on a prefix of a key.

o SELECT * FROM foo ORDER BY key_part1,key_part2,key_part3

* When all columns used in the query are part of one key.

o SELECT key_part3 FROM table_name WHERE key_part1=1

Copyright Oracle Corporation 2012 57

Page 58: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

Optimizing tables Use NOT NULL for columns which will not store null values. This is particularly

important for columns which you index.

`e_id` bigint(12) unsigned NOT NULL

Don't create indexes you are not going to use.

Use the fact that MySQL can search on a prefix of an index; If you have and INDEX (a,b), you don't need an index on (a).

UNIQUE KEY `uq_id` (`u_id`,`q_id`),

KEY `q_id` (`q_id`),

Instead of creating an index on long CHAR/VARCHAR column, index just a prefix of the column to save space.

CREATE TABLE `table_name` (

`hostname` char(255) NOT NULL,

KEY `hostname` (`hostname`(10))

) ENGINE=InnoDB

Copyright Oracle Corporation 2012 58

MySQL Indexes (keys)

Page 59: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

Use EXPLAIN on every query that you think is too slow!

mysql> explain select t3.DateOfAction, t1.TransactionID

-> from t1 join t2 join t3

-> where t2.ID = t1.TransactionID and t3.ID = t2.GroupID

-> order by t3.DateOfAction, t1.TransactionID;+-------+--------+---------------+---------+---------+------------------+------+---------------------------------+

| table | type | possible_keys | key | key_len | ref | rows | Extra |

+-------+--------+---------------+---------+---------+------------------+------+---------------------------------+

| t1 | ALL | NULL | NULL | NULL | NULL | 11 | Using temporary; Using filesort |

| t2 | ref | ID | ID | 4 | t1.TransactionID | 13 | |

| t3 | eq_ref | PRIMARY | PRIMARY | 4 | t2.GroupID | 1 | |

+-------+--------+---------------+---------+---------+------------------+------+---------------------------------+

Types ALL and range signal a potential problem.

MySQL Index – Use Explain!

Copyright Oracle Corporation 2012 59

Page 60: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

mysql> EXPLAIN SELECT C.Name , T.Name FROM world.City C INNER JOIN world.Country T ON C.CountryCode = T.Code;

+----+-------------+-------+------+---------------+-------------+---------+--------------+------+-------+

| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |

+----+-------------+-------+------+---------------+-------------+---------+--------------+------+-------+

| 1 | SIMPLE | T | ALL | PRIMARY | NULL | NULL | NULL | 264 | |

| 1 | SIMPLE | C | ref | CountryCode | CountryCode | 3 | world.T.Code | 8 | |

+----+-------------+-------+------+---------------+-------------+---------+--------------+------+-------+

MySQL Index – Use Explain!

Copyright Oracle Corporation 2012 60

Page 61: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

More Urls for you to use later about Explain

http://dev.mysql.com/doc/refman/5.5/en/explain.html

http://effectivemysql.com/downloads/ExplainingTheMySQLEXPLAIN-OOW-2011.pdf

http://prajwal-tuladhar.net.np/2009/09/26/481/know-more-about-mysql-explain/

http://www.slideshare.net/ligaya/explain

MySQL Index – Use Explain!

Copyright Oracle Corporation 2012 61

Page 62: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

The CREATE ROUTINE , ALTER ROUTINE , EXECUTE privilege is needed for stored routines.

mysql> delimiter //

mysql> CREATE PROCEDURE simpleproc (OUT param1 INT)

BEGIN

SELECT COUNT(*) INTO param1 FROM t;

END//

Query OK, 0 rows affected (0.00 sec)

mysql> delimiter ;

mysql> CALL simpleproc(@a);

Query OK, 0 rows affected (0.00 sec)

mysql> SELECT @a;

+------+

| @a |

+------+

| 3 |

+------+

1 row in set (0.00 sec)

MySQL Stored Routines

Copyright Oracle Corporation 2012 62

http://dev.mysql.com/doc/refman/5.5/en/stored-routines.html

Page 63: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

CREATE TABLE test1(a1 INT);

CREATE TABLE test2(a2 INT);

CREATE TABLE test3(a3 INT NOT NULL AUTO_INCREMENT PRIMARY KEY);

CREATE TABLE test4(

a4 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,

b4 INT DEFAULT 0

);

delimiter |

CREATE TRIGGER testref BEFORE INSERT ON test1

FOR EACH ROW BEGIN

INSERT INTO test2 SET a2 = NEW.a1;

DELETE FROM test3 WHERE a3 = NEW.a1;

UPDATE test4 SET b4 = b4 + 1 WHERE a4 = NEW.a1;

END; |

delimiter ;

MySQL Triggers

Copyright Oracle Corporation 2012 63

http://dev.mysql.com/doc/refman/5.5/en/create-trigger.html

Page 64: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

> CREATE VIEW `world`.`city_view` AS

SELECT C.Name as cityname , T.Name as countryname

FROM world.City C

INNER JOIN world.Country T ON C.CountryCode = T.Code;

Query OK, 0 rows affected (0.16 sec)

SELECT cityname , countryname from city_view where countryname = "Zimbabwe";

+--------------+-------------+

| cityname | countryname |

+--------------+-------------+

| Harare | Zimbabwe |

| Bulawayo | Zimbabwe |

| Chitungwiza | Zimbabwe |

| Mount Darwin | Zimbabwe |

| Mutare | Zimbabwe |

| Gweru | Zimbabwe |

+--------------+-------------+

6 rows in set (0.13 sec)

MySQL Views

Copyright Oracle Corporation 2012 64

http://dev.mysql.com/doc/refman/5.5/en/views.html

Page 65: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

To disable autocommit mode, use the following statement: mysql> show variables like '%autocommit%';

+---------------+-------+

| Variable_name | Value |

+---------------+-------+

| autocommit | ON |

+---------------+-------+

1 row in set (0.00 sec)

mysql> SET autocommit=0;

Query OK, 0 rows affected (0.00 sec)

mysql> show variables like '%autocommit%';

+---------------+-------+

| Variable_name | Value |

+---------------+-------+

| autocommit | OFF |

+---------------+-------+

1 row in set (0.01 sec)

MySQL Transactions

Copyright Oracle Corporation 2012 65

http://dev.mysql.com/doc/refman/5.5/en/commit.html

Page 66: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

To disable autocommit mode for a single series of statements

use the START TRANSACTION statement:

START TRANSACTION;

SELECT @A:=SUM(salary) FROM table1 WHERE type=1;

UPDATE table2 SET summary=@A WHERE type=1;

COMMIT;

MySQL Transactions

Copyright Oracle Corporation 2012 66

http://dev.mysql.com/doc/refman/5.5/en/commit.html

Page 67: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

• MySQL EditionsSession Agenda

Copyright Oracle Corporation 2012 67

http://www.flickr.com/photos/kalexanderson/7719347704/in/set-72157628651430439/TM & © LUCASFILM LTD. 2012. ALL RIGHTS RESERVED

Page 68: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

MySQL Workbench

Copyright Oracle Corporation 2012 68

http://sqlhjalp.blogspot.com/2012/08/workbench-database-migration-wizard.html

Page 69: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

Workbench – visual database design application that can be used to efficiently design, manage and document database schemata

Connectors – ODBC, Java, .Net, MXJ, C/C++, DBI, Ruby, Python, etc.

Community: -- http://dev.mysql.com/downloads/

Freely downloadable version of the world's most popular open source database. It is available under the GPL license and is supported by a huge and active community of open source developers.

Enterprise: -- eDelivery.com (Free for 30 days)Paid subscription includes support and the following

• MySQL Enterprise Backup

• MySQL Enterprise Security

– External Authentication

• MySQL Enterprise Scalability

– Thread Pool

• MySQL Enterprise High Availability

– Oracle VM Template

– Windows Clustering

• MySQL Enterprise Monitor

Free for 30 day evaluation

MySQL Versions

Copyright Oracle Corporation 2012 69

Page 70: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

Choosing the version5.1 – previous GA version

5.5 – the latest GA version

5.6 – development release

Choosing the editionCommunity Edition (Community Server)

Enterprise Editions (even MySQL Classic and MySQL Standard)

Source or Binary

Download

MySQL

Page 71: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

• Reach out to the community– Irc on freenode– Forums.mysql.com

• Oracle Support• Certifications

How can I get help ?MySQL Support

Copyright Oracle Corporation 2012 71Copyright Oracle Corporation 2012 71

http://www.flickr.com/photos/kalexanderson/6294075026/sizes/l/in/photostream/TM & © LUCASFILM LTD. 2012. ALL RIGHTS RESERVED

Page 72: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

• 24 X 7 Problem Resolution Services

• Unlimited Support Incidents• Knowledge Base• Maintenance Releases, Bug fixes, Patches, Updates

• MySQL Consultative Support• Staffed by experienced, seasoned MySQL Engineers

Oracle Premier Support for MySQLMySQL Support

Page 73: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

Most secure, scalable MySQL Database, Online Backup, Development/Monitoring Tools, backed by Oracle Premier Lifetime Support

Oracle Premier Support

Oracle Product Certifications/Integrations

MySQL Enterprise High Availability

MySQL Enterprise Security

MySQL Enterprise Scalability

MySQL Enterprise Backup

MySQL Enterprise Monitor/Query Analyzer

MySQL Workbench

MySQL Enterprise Edition

Copyright Oracle Corporation 2012 73

Page 74: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

mysql.com TCO calculator: http://www.mysql.com/tcosavings/ White Papers: http://www.mysql.com/why-mysql/white-papers/ Customer use cases and success stories:

http://www.mysql.com/why-mysql/case-studies/

dev.mysql.com Downloads: http://dev.mysql.com/downloads/ Documentation: http://dev.mysql.com/doc/ Forums: http://forums.mysql.com/ PlanetMySQL: http://planet.mysql.com List of resources (books) : http://dev.mysql.com/resources/

MySQL Resources

http://1.bp.blogspot.com/-FjX1nJexGeI/T7luugwIslI/AAAAAAAAAWU/PtCMZBfm1OA/s1600/internet.jpg

Page 75: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

eDelivery.com Download and evaluate all MySQL products

Wiki: https://wikis.oracle.com/display/mysql/Home

http://forge.mysql.com/wiki/Main_Page – Older Not used as much--

50 things to know before migrating Oracle to MySQLIt is a little old but worth the read

www.xaprb.com/blog/2009/03/13/50-things-to-know-before-migrating-oracle-to-mysql/

MySQL Resources

Copyright Oracle Corporation 2012 75

http://1.bp.blogspot.com/-FjX1nJexGeI/T7luugwIslI/AAAAAAAAAWU/PtCMZBfm1OA/s1600/internet.jpg

Page 76: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

Copyright Oracle Corporation 2012 76

[email protected] @larsonkeith

“When I left you, I was but the learner, now I am the master.”

http://www.flickr.com/photos/kalexanderson/7964300088/sizes/l/in/photostream/

Page 77: Oracle and Open Sourcesqlhjalp.org/pdf/MySQL_susecon_crashcourse_2012.pdf · • MySQL Workbench 5.2 GA! • MySQL Database 5.5 • MySQL Enterprise Backup 3.5 • MySQL Enterprise

<Insert Picture Here>

Thanks for attending! Keith [email protected] Community Managerhttp://sqlhjalp.com/pdf/MySQL_susecon_crashcourse_2012.pdf


Recommended