MySQL Workbench ● David.Stokes@Oracle.com @Stoker ● Slides for this presentation available at Slideshare.net/davestokes Copyright © 2015 By David Stokes
2 We start with a QUIZ!!!! Name the man and the machines! Copyright © 2015 By David Stokes
3 We start with a QUIZ!!!! Answer: Ron Popeil, the Ronco Pocket Fisherman, and the Ronco Vegamatic Copyright © 2015 By David Stokes
4 We start with a QUIZ!!!! Answer: Ron Popeil, the Ronco Pocket Fisherman, and the Ronco Vegamatic "But wait, there's more!"Copyright © 2015 By David Stokes
5 In The Beginning was the Command Line. And it was good. Copyright © 2015 By David Stokes
6 Then there was a cry for GUI ● The old MySQL GUI tools were 'okay' but not really popular – MySQL Administrator – Query Browser – Migration Toolkit Copyright © 2015 By David Stokes
7 MySQL Workbench ● Multipart Tool – Queries – Admin ● Users ● System – Entity Relationship Mapper http://dev.mysql.com/doc/workbench/en/ Copyright © 2015 By David Stokes
8 Platforms ● Mac OS X ● Linux – RHEL/Oracle – Ubuntu – Fedora ● Windows – ZIP Archive – Installer ● Source Code ● There is an Enterpise edition to paying customers with hooks for various admin tools like MySQL Enterprise Backup but this presentation covers the FREE community edition Copyright © 2015 By David Stokes
9 And MySQL Utilities (Python) Five Groups: ● Database Operations ● General Operations ● High Availability Operations ● Server Operations ● Specialized Operations The Utilites Work with Workbench or can be used standalone Copyright © 2015 By David Stokes
10 First Look Copyright © 2015 By David Stokes
11 Make a Connection Test your connection to verify settings Copyright © 2015 By David Stokes
12 Parts of the Query Window Database Schemas, active schema in bold Information on running instance Server Operations Administration Copyright © 2015 By David Stokes
13 Simple Query Use lightening bolt to execute query Copyright © 2015 By David Stokes
14 And we get results! Copyright © 2015 By David Stokes
15 Query Plan (lightening bolt with magnifying glass) ● Tradtional EXPLAIN output ● VISUAL EXPLAIN Copyright © 2015 By David Stokes
16 But Wait There's More!!! Copyright © 2015 By David Stokes
17 Entity Relationship Modeling ● http://en.wikipedia.org/wiki/Entity%E2%80%93relationship_model ● In software engineering, an entity–relationship model (ER model) is a data model for describing the data or information aspects of a business domain or its process requirements, in an abstract way that lends itself to ultimately being implemented in a database such as a relational database. The main components of ER models are entities (things) and the relationships that can exist among them, and databases. Copyright © 2015 By David Stokes
18 Create a Model Create EER from Database or Script Copyright © 2015 By David Stokes
19 And we have a map Copyright © 2015 By David Stokes
20 Adding users ● Command line UPDATE users set Select_Priv='Y', Delete_Priv='Y',... WHERE User='Joe'; ● Or Copyright © 2015 By David Stokes
21 But Wait There's More!!! Copyright © 2015 By David Stokes
22 Server Status Copyright © 2015 By David Stokes
23 Dashboard Copyright © 2015 By David Stokes
24 Act now and get MySQL Utilities!! What are the MySQL Utilities? ● It is a package of utilities that are used for maintenance and administration of MySQL servers. These utilities encapsulate a set of primitive commands, and bundles them so they can be used to perform macro operations with a single command. ● The utilities are written in Python, available under the GPLv2 license, and are extendable using the supplied library. They are designed to work with Python versions 2.6 or later and there is no support (yet) for Python v3.1. Copyright © 2015 By David Stokes
25 Six Categories for MyQL Utilities ● Binary Log Operations ● Database Operations ● General Operations ● High Availability Operations ● Server Operations ● Specialized Operations Copyright © 2015 By David Stokes
26 ● Binary Log Operations These utilities are designed to perform operations on binary log files. ● mysqlbinlogmove – Rellocate binary log files – Move files based on their sequence number or modified date Copyright © 2015 By David Stokes
27 Database Operations These utilities are those designed to work at the database-level. They include utilities that can used to adminster databases on one or more servers. ● mysqldbcompare – Compare databases on two servers or the same server – Compare definitions and data – Generate a difference report – Generate SQL transformation statements ● mysqldbcopy – Copy databases between servers – Clone databases on the same server – Supports rename ● mysqldbexport – Export metadata and/or data from one or more databases – Formats: SQL, CSV, TAB, Grid, Vertical ● mysqldbimport – Import metadata and data from one or more files – Reads all formats from mysqldbexport ● Mysqldif – Compare object definitions – Generate a difference report Copyright © 2015 By David Stokes
28 General OperationsThese utilities are those designed to perform general operations such as reporting and searching. ● mysqldiskusage – Show disk usage for databases – Generate reports in SQL, CSV, TAB, Grid, Vertical ● mysqlfrm – Reads .frm files, optionally in byte-by-byte diagnostic mode – Generates CREATE statements from table definition data ● mysqlgrants – Displays grants per object. – Produce reports by user, user with grants, and GRANT statements. ● mysqlindexcheck – Read indexes for one or more tables – Check for redundant and duplicate indexes – Generate reports in SQL, CSV, TAB, Grid, Vertical ● mysqlmetagrep – Search metadata – Regexp, database search – Generate SQL statement for search query ● mysqlprocgrep – Search process information – Generate SQL statement for search – Kill processes that match query ● mysqluserclone – Clone a user account, to the same or different server – Show user grants ● mysqluc – Command line client for running MySQL Utilities – Allows a persistent connection to a MySQL Server – T ab completion for utility names and options – Allows calling the commands with shorter names, such as using "serverinfo" instead of mysqlserverinfo Copyright © 2015 By David Stokes
29 High Availability Operations These utilities are those designed to support replication and high availability operations for MySQL servers. ● mysqlfailover – Provides automatic failover on a replication topology – Uses Global Transaction Identifiers (GTID, MySQL Server 5.6.5+) ● mysqlreplicate – Setup replication – Start from beginning, current, specific binlog, pos ● mysqlrplms – Provides round-robin multi-source replication (a slave server continually cycles through multiple masters in order to store a consolidated data set) – Uses Global Transaction Identifiers (GTID, MySQL Server 5.6.9+) ● mysqlrpladmin – Administers the replication topology – Allows recovery of the master – Commands include elect, failover, gtid, health, start, stop, and switchover ● mysqlrplcheck – Check replication configuration – Tests binary logging on master ● mysqlrplshow – Show slaves attached to master – Can search recursively – Show the replication topology as a graph or list ● mysqlrplsync – Check data consistency between servers in a replicated setup – Uses Global Transaction Identifiers (GTID) – Requires MySQL Server 5.6.14 and higher ● mysqlslavetrx – Skip multiple transaction on slaves – Uses Global Transaction Identifiers (GTID) Copyright © 2015 By David Stokes
30 Server Operations These utilities are used to perform server-wide operations. ● mysqlserverclone – Start a new instance of a running server ● mysqlserverinfo – Show server information – Can search for running servers on a host – Access online or offline servers Copyright © 2015 By David Stokes
31 Specialized Operations These utilities are designed to be used with a specific commercial extension. In this case, these utilities require the Audit Log Plugin (Enterprise Customers). ● mysqlauditadmin – Monitor the audit log – Copy, rotate, and configure the audit log ● mysqlauditgrep – Search the audit log – Output results to different formats Copyright © 2015 By David Stokes
32 Visual Explain & Demo Copyright © 2015 By David Stokes
33 Q/A ● Slides at Slidshare.net/davestokes ● David.Stokes@Oracle.Com ● @StokerCopyright © 2015 By David Stokes

MySQL Workbench and Visual Explain -- RMUG Feb 19th 2015

  • 1.
    MySQL Workbench ● David.Stokes@Oracle.com @Stoker ● Slidesfor this presentation available at Slideshare.net/davestokes Copyright © 2015 By David Stokes
  • 2.
    2 We start witha QUIZ!!!! Name the man and the machines! Copyright © 2015 By David Stokes
  • 3.
    3 We start witha QUIZ!!!! Answer: Ron Popeil, the Ronco Pocket Fisherman, and the Ronco Vegamatic Copyright © 2015 By David Stokes
  • 4.
    4 We start witha QUIZ!!!! Answer: Ron Popeil, the Ronco Pocket Fisherman, and the Ronco Vegamatic "But wait, there's more!"Copyright © 2015 By David Stokes
  • 5.
    5 In The Beginningwas the Command Line. And it was good. Copyright © 2015 By David Stokes
  • 6.
    6 Then there wasa cry for GUI ● The old MySQL GUI tools were 'okay' but not really popular – MySQL Administrator – Query Browser – Migration Toolkit Copyright © 2015 By David Stokes
  • 7.
    7 MySQL Workbench ● MultipartTool – Queries – Admin ● Users ● System – Entity Relationship Mapper http://dev.mysql.com/doc/workbench/en/ Copyright © 2015 By David Stokes
  • 8.
    8 Platforms ● Mac OSX ● Linux – RHEL/Oracle – Ubuntu – Fedora ● Windows – ZIP Archive – Installer ● Source Code ● There is an Enterpise edition to paying customers with hooks for various admin tools like MySQL Enterprise Backup but this presentation covers the FREE community edition Copyright © 2015 By David Stokes
  • 9.
    9 And MySQL Utilities(Python) Five Groups: ● Database Operations ● General Operations ● High Availability Operations ● Server Operations ● Specialized Operations The Utilites Work with Workbench or can be used standalone Copyright © 2015 By David Stokes
  • 10.
    10 First Look Copyright ©2015 By David Stokes
  • 11.
    11 Make a Connection Testyour connection to verify settings Copyright © 2015 By David Stokes
  • 12.
    12 Parts of theQuery Window Database Schemas, active schema in bold Information on running instance Server Operations Administration Copyright © 2015 By David Stokes
  • 13.
    13 Simple Query Use lighteningbolt to execute query Copyright © 2015 By David Stokes
  • 14.
    14 And we getresults! Copyright © 2015 By David Stokes
  • 15.
    15 Query Plan (lighteningbolt with magnifying glass) ● Tradtional EXPLAIN output ● VISUAL EXPLAIN Copyright © 2015 By David Stokes
  • 16.
    16 But Wait There'sMore!!! Copyright © 2015 By David Stokes
  • 17.
    17 Entity Relationship Modeling ●http://en.wikipedia.org/wiki/Entity%E2%80%93relationship_model ● In software engineering, an entity–relationship model (ER model) is a data model for describing the data or information aspects of a business domain or its process requirements, in an abstract way that lends itself to ultimately being implemented in a database such as a relational database. The main components of ER models are entities (things) and the relationships that can exist among them, and databases. Copyright © 2015 By David Stokes
  • 18.
    18 Create a Model CreateEER from Database or Script Copyright © 2015 By David Stokes
  • 19.
    19 And we havea map Copyright © 2015 By David Stokes
  • 20.
    20 Adding users ● Commandline UPDATE users set Select_Priv='Y', Delete_Priv='Y',... WHERE User='Joe'; ● Or Copyright © 2015 By David Stokes
  • 21.
    21 But Wait There'sMore!!! Copyright © 2015 By David Stokes
  • 22.
    22 Server Status Copyright ©2015 By David Stokes
  • 23.
  • 24.
    24 Act now andget MySQL Utilities!! What are the MySQL Utilities? ● It is a package of utilities that are used for maintenance and administration of MySQL servers. These utilities encapsulate a set of primitive commands, and bundles them so they can be used to perform macro operations with a single command. ● The utilities are written in Python, available under the GPLv2 license, and are extendable using the supplied library. They are designed to work with Python versions 2.6 or later and there is no support (yet) for Python v3.1. Copyright © 2015 By David Stokes
  • 25.
    25 Six Categories forMyQL Utilities ● Binary Log Operations ● Database Operations ● General Operations ● High Availability Operations ● Server Operations ● Specialized Operations Copyright © 2015 By David Stokes
  • 26.
    26 ● Binary Log Operations Theseutilities are designed to perform operations on binary log files. ● mysqlbinlogmove – Rellocate binary log files – Move files based on their sequence number or modified date Copyright © 2015 By David Stokes
  • 27.
    27 Database Operations These utilitiesare those designed to work at the database-level. They include utilities that can used to adminster databases on one or more servers. ● mysqldbcompare – Compare databases on two servers or the same server – Compare definitions and data – Generate a difference report – Generate SQL transformation statements ● mysqldbcopy – Copy databases between servers – Clone databases on the same server – Supports rename ● mysqldbexport – Export metadata and/or data from one or more databases – Formats: SQL, CSV, TAB, Grid, Vertical ● mysqldbimport – Import metadata and data from one or more files – Reads all formats from mysqldbexport ● Mysqldif – Compare object definitions – Generate a difference report Copyright © 2015 By David Stokes
  • 28.
    28 General OperationsThese utilitiesare those designed to perform general operations such as reporting and searching. ● mysqldiskusage – Show disk usage for databases – Generate reports in SQL, CSV, TAB, Grid, Vertical ● mysqlfrm – Reads .frm files, optionally in byte-by-byte diagnostic mode – Generates CREATE statements from table definition data ● mysqlgrants – Displays grants per object. – Produce reports by user, user with grants, and GRANT statements. ● mysqlindexcheck – Read indexes for one or more tables – Check for redundant and duplicate indexes – Generate reports in SQL, CSV, TAB, Grid, Vertical ● mysqlmetagrep – Search metadata – Regexp, database search – Generate SQL statement for search query ● mysqlprocgrep – Search process information – Generate SQL statement for search – Kill processes that match query ● mysqluserclone – Clone a user account, to the same or different server – Show user grants ● mysqluc – Command line client for running MySQL Utilities – Allows a persistent connection to a MySQL Server – T ab completion for utility names and options – Allows calling the commands with shorter names, such as using "serverinfo" instead of mysqlserverinfo Copyright © 2015 By David Stokes
  • 29.
    29 High Availability Operations Theseutilities are those designed to support replication and high availability operations for MySQL servers. ● mysqlfailover – Provides automatic failover on a replication topology – Uses Global Transaction Identifiers (GTID, MySQL Server 5.6.5+) ● mysqlreplicate – Setup replication – Start from beginning, current, specific binlog, pos ● mysqlrplms – Provides round-robin multi-source replication (a slave server continually cycles through multiple masters in order to store a consolidated data set) – Uses Global Transaction Identifiers (GTID, MySQL Server 5.6.9+) ● mysqlrpladmin – Administers the replication topology – Allows recovery of the master – Commands include elect, failover, gtid, health, start, stop, and switchover ● mysqlrplcheck – Check replication configuration – Tests binary logging on master ● mysqlrplshow – Show slaves attached to master – Can search recursively – Show the replication topology as a graph or list ● mysqlrplsync – Check data consistency between servers in a replicated setup – Uses Global Transaction Identifiers (GTID) – Requires MySQL Server 5.6.14 and higher ● mysqlslavetrx – Skip multiple transaction on slaves – Uses Global Transaction Identifiers (GTID) Copyright © 2015 By David Stokes
  • 30.
    30 Server Operations These utilitiesare used to perform server-wide operations. ● mysqlserverclone – Start a new instance of a running server ● mysqlserverinfo – Show server information – Can search for running servers on a host – Access online or offline servers Copyright © 2015 By David Stokes
  • 31.
    31 Specialized Operations These utilitiesare designed to be used with a specific commercial extension. In this case, these utilities require the Audit Log Plugin (Enterprise Customers). ● mysqlauditadmin – Monitor the audit log – Copy, rotate, and configure the audit log ● mysqlauditgrep – Search the audit log – Output results to different formats Copyright © 2015 By David Stokes
  • 32.
    32 Visual Explain &Demo Copyright © 2015 By David Stokes
  • 33.
    33 Q/A ● Slides atSlidshare.net/davestokes ● David.Stokes@Oracle.Com ● @StokerCopyright © 2015 By David Stokes