SlideShare a Scribd company logo
1 of 66
Download to read offline
Upgrade from MySQL 5.7 to MySQL 8.0
1 © 2020 Oracle MySQL
Olivier Dasini
MySQL Principal Solutions Architect EMEA
olivier.dasini@oracle.com
Twitter : @freshdaz
Blogs : http://dasini.net/blog/en
: http://dasini.net/blog/fr
Safe harbor statement
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, timing, and pricing of any features or functionality described for
Oracle’s products may change and remains at the sole discretion of Oracle Corporation.
2 © 2020 Oracle MySQL
3
Me, Myself & I

MySQL Geek
 Addicted to MySQL for 15+ years
 Playing with databases for 20+ years

MySQL Writer, Blogger and Speaker
 Also former : DBA, Consultant, Architect, Trainer, ...

MySQL Principal Solutions Architect EMEA at Oracle

Stay up to date!
 Twitter: @freshdaz
 Blog: http://dasini.net/blog
3
Olivier DASINI
Copyright © 2020 Oracle and/or its affiliates. All rights reserved.
Why MySQL ?
Program agenda
1
2
3
4
Why Upgrade ?
The Toolbox
Upgrade to MySQL 8.0
4 © 2020 Oracle MySQL
MySQL Enterprise Edition Overview5
Why MySQL ?
5 © 2020 Oracle MySQL
6 © 2020 Oracle MySQL
The world’s most popular open source database
Some Of Our Customers
 MySQL powers the most demanding Web, E-commerce, SaaS and Online Transaction Processing
(OLTP) applications
 It is a fully integrated transaction-safe, ACID compliant database with full commit, rollback, crash
recovery and row level locking capabilities
 MySQL delivers the ease of use, scalability, and performance to power:
7 © 2020 Oracle MySQL
Title only
8 © 2020 Oracle MySQL
They Scale
with
MySQL
Mobile Network
Supporting Over 800
Million Subscribers
2+ Billion Active Users
100 TB of User Data for PayPal
IDs Processed for
1 Billion Citizens
850 Million Candy
Crush Game Plays/Day
2 Billion Events/Day for
Booking.com
Explosive Data Growth
9 © 2020 Oracle MySQL
Source IDC, 2017 Source Domo, 2018
Why Upgrade ?
10 © 2020 Oracle MySQL
Why Upgrade ?
 New features
– InnoDB Cluster, InnoDB ReplicaSet, Clone plugin, Instant Add Column, JSON Document Store, CTE, Window
Functions, JSON, GIS, Functional indexes, Hash Joins, Histograms, Check Constraints, ...
– New features in 8.0: https://mysqlserverteam.com/the-complete-list-of-new-features-in-mysql-8-0/
 Security improvements
– New Authentication Plugin, SSL/TLS, SQL Roles, Tables & Log Encryption, Password management, ...
 Performance/Scalability improvements
– Cost Model, Histograms, P_S, I_S, Scaling R/W workloads, Resource Groups, ...
 Manageability
– Set Persist, Invisible Indexes, Restart command, Instant Add Column,
– InnoDB Cluster / Group Replication, InnoDB ReplicaSet, ...
 Reduce tech debt for the MySQL installation
– Softer upgrades
 Stay on fully supported release
 ...
11 © 2020 Oracle MySQL
Because “MySQL 8 Is Great” :) but also for...
Why Upgrade ? - MySQL 8.0 New Features
 What Is New in MySQL 8.0
– https://dev.mysql.com/doc/refman/8.0/en/mysql-nutshell.html
 The complete list of new features in MySQL 8.0
– https://mysqlserverteam.com/the-complete-list-of-new-features-in-mysql-8-0/
 What’s New in MySQL 8.0? (Generally Available)
– https://mysqlserverteam.com/whats-new-in-mysql-8-0-generally-available/
 Changes in MySQL 8.0...
– https://mysqlserverteam.com/changes-in-mysql-8-0-11-general-availability/
– https://mysqlserverteam.com/the-mysql-8-0-12-maintenance-release-is-generally-available/
– ...
– https://mysqlserverteam.com/the-mysql-8-0-21-maintenance-release-is-generally-available/
12 © 2020 Oracle MySQL
Over 300 new features in MySQL 8.0
Why Upgrade ? - Performance/Scalability improvements
13 © 2020 Oracle MySQL
2x Faster than MySQL 5.7 - SysBench IO Bound Read Only (Point Selects)
OS : Oracle Linux 7.4
CPU : 48cores-HT Intel Skylake 2.7Ghz
(2CPU sockets, Intel(R) Xeon(R) Platinum 8168 CPU)
RAM: 256GB
Storage : x2 Intel Optane flash devices
(Intel (R) Optane (TM) SSD P4800X Series)
Why Upgrade ? - MySQL Security
 SSL enabled by default
 Force root password during install
 Stronger passwords / Better password management features
 New Authentication Plugin
 MySQL Security: https://dev.mysql.com/doc/refman/8.0/en/security.html
 MySQL Enterprise Edition:
– MySQL Enterprise Audit
– MySQL Enterprise Monitor
– MySQL Enterprise Backup
– MySQL Enterprise Firewall
– MySQL Enterprise Encryption
– MySQL Enterprise Transparent Data Encryption
– MySQL Enterprise Data Masking and De-identification
– MySQL Enterprise Thread Pool
 MySQL Enterprise Security Overview: https://dev.mysql.com/doc/refman/8.0/en/mysql-enterprise-security.html
14 © 2020 Oracle MySQL
Privacy and Security requirements for GDPR, PCI DSS, HIPAA, …
MySQL Security Achitecture
15 © 2020 Oracle MySQL
Why Upgrade ? - Support Life Cycle
16 © 2020 Oracle MySQL
Release GA Date Premier Support End Extended Support End Sustaining Support End
MySQL 5.0 Oct 2005 Dec 2011 N/A Indefinite
MySQL 5.1 Dec 2008 Dec 2013 N/A Indefinite
MySQL 5.5 Dec 2010 Dec 2015 Dec 2018 Indefinite
MySQL 5.6 Feb 2013 Feb 2018 Feb 2021 Indefinite
MySQL 5.7 Oct 2015 Oct 2020 Oct 2023 Indefinite
MySQL 8.0 Apr 2018 Apr 2023 Feb 2026 Indefinite
http://www.oracle.com/us/support/library/lifetime-support-technology-069183.pdf
Ensure that MySQL meets security, reliability & performance requirements
MySQL Upgrade – Supported Paths
 All minor upgrades are supported
– e.g. 8.0.19 → 8.0.20
– or doing a jump e.g. 8.0.17 → 8.0.21
 Upgrading one major release level is supported
– e.g. 5.6 → 5.7 , 5.7 → 8.0 , ...
– It’s recommended upgrading to the latest 5.7 release before moving to 8.0
 Doing long-jumps (e.g. 5.1 → 8.0) is supported if you upgrade one release level at a time
– e.g. 5.1 → 5.5 → 5.6 → 5.7 → 8.0
 Direct upgrades that skip a release level (for example, upgrading directly from MySQL 5.5 to 8.0) is
not recommended
 Yon can not upgrade from DMR to GA
17 © 2020 Oracle MySQL
MySQL Upgrade – Before you start !
 Review "Changes in MySQL 8.0" for changes that may require action before upgrading
– https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html
 Review "What Is New in MySQL 8.0" for added / deprecated / removed features
– https://dev.mysql.com/doc/refman/8.0/en/mysql-nutshell.html
 Review "Server and Status Variables and Options Added, Deprecated, or Removed in MySQL 8.0"
– If you use deprecated or removed variables, an upgrade may require configuration changes.
– https://dev.mysql.com/doc/refman/8.0/en/added-deprecated-removed.html
 Review "Release Notes" for information about fixes, changes, and new features
– https://dev.mysql.com/doc/relnotes/mysql/8.0/en/
 Create a plan for your upgrade/downgrade path
18 © 2020 Oracle MySQL
https://dev.mysql.com/doc/refman/8.0/en/upgrade-before-you-begin.html
MySQL 8.0 Defaults Changes - Samples
 There are a lot of changes to the defaults in 8.0, see
– https://mysqlserverteam.com/new-defaults-in-mysql-8-0/
 Use “MySQL Parameters” website:
– https://mysql-params.tmtms.net/mysqld/
 Some important ones:
– Default character set and collation to utf8mb4 and utf8mb4_0900_ai_ci
– The default/preferred authentication plugin caching_sha2_password
– log_bin has been changed from OFF to ON
19 © 2020 Oracle MySQL
(Some) New Servers Default’s in MySQL 8.0
 charset_set_server = utf8mb4
 collation_server = utf8mb4_0900_ai_ci
 event_scheduler = ON
 log_bin = ON
 server_id = 1
 Log-slave-updates = ON
 expire_log_days = 30
 Master-info-repository = TABLE
 Relay-log-info-repository = TABLE
 Transaction-write-set-extraction = XXHASH64
 … and many more, see link below for more details
– https://mysqlserverteam.com/new-defaults-in-mysql-8-0/
20 © 2020 Oracle MySQL
MySQL 8.0 Deprecation/Removals - Samples
 Features removed
– Query Cache, Non-native partitioning, ...
 Options and variables removed
– Log_errors/log_warnings replaced by log_error_verbosity
– SQL Modes removed
– https://dev.mysql.com/doc/refman/8.0/en/added-deprecated-removed.html
 Account management
– The PASSWORD() function has been removed, using GRANT to create users is no longer supported
 Syntaxes affected
– EXTENDED and PARTITIONS keywords for EXPLAIN removed
– N as a synonym for NULL in SQL removed. Use NULL instead
21 © 2020 Oracle MySQL
Before you Upgrade – Backups of Your Data!
 Database upgrading is very serious work!
– So backup your data!
 Plan for the worst - Paranoia is not always a bad things
– So backup your data!
 Use your favorite backup tool
– MySQL Enterprise Backup
– dumpInstance() / dumpSchema() / loadDump() from MySQL Shell
●
For MySQL Server 5.7 & 8.0
– mysqldump / mysqlpump
– …
 Double check your backups
 Test your Restore procedure
22 © 2020 Oracle MySQL
Credit: https://tricyclefish.com/wp-content/uploads/2016/01/back-up1.jpg
MySQL Enterprise Backup
23 © 2020 Oracle MySQL
MySQL Enterprise Backup
 Online, non-locking backup and recovery
– Complete MySQL instance backup (data and config)
– Full & Partial backup and restore
 Direct Cloud storage backups (S3, etc.)
 Incremental backups & Point-in-time recovery
 Advanced compressed and Strong encryption: AES 256
 Backup to tape (SBT)
 Backup validation
 Optimistic backups
 Cross-Platform (Windows, Linux, Unix)
 Certified with Oracle Secure Backup, NetBackup, Tivoli, ...
24 © 2020 Oracle MySQL
Ensure availability of end-user data
Instance Dump Utility
Schema Dump Utility
Dump Loading Utility
25 © 2020 Oracle MySQL
MySQL Shell dump utilities - dumpInstance & dumpSchemas
 Logical Dump Utilities from MySQL Shell (start with MySQL Shell 8.0.21)
– Instance dump: util.dumpInstance()
●
Dump an entire database instance, including users
– Schema dump: util.dumpSchemas()
●
Dump a set of schemas
– Support the export of all schemas or a selected schema from an on-premise MySQL server instance into a set of
local files or an Oracle Cloud Infrastructure Object Storage bucket
– The schemas can then be imported into a MySQL Database Service DB System using MySQL Shell's new dump
loading utility
– Provide Oracle Cloud Infrastructure Object Storage streaming, MySQL Database Service compatibility checks and
modifications, parallel dumping with multiple threads, and file compression
26 © 2020 Oracle MySQL
Export data from a MySQL instance into a set of local files or an OCI Object Storage bucket
https://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-utilities-dump-instance-schema.html
MySQL Shell load utility - loadDump
 Logical Load Utility from MySQL Shell (start with MySQL Shell 8.0.21)
– Load a dump: util.loadDump()
●
Load a dump into a target database
– Support the import of schemas dumped using MySQL Shell's new instance dump utility and schema dump utility
into a MySQL instance or a MySQL Database Service DB System
– The dump loading utility provides data streaming from remote storage, parallel loading of tables or table chunks,
progress state tracking, resume and reset capability, and the option of concurrent loading while the dump is taking
place
27 © 2020 Oracle MySQL
Import into a MySQL Server instance or a MySQL Database Service DB System of schemas dumped
https://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-utilities-load-dump.html
Is your MySQL server instance ready for upgrade?
28 © 2020 Oracle MySQL
Is your MySQL server instance ready for upgrade?
 Preliminary checks...
– Usage of old temporal type?
– Conflicting db object names and reserved keywords?
– Usage of utf8mb3 charset?
– Reserved tablenames in mysql schema?
– FK names longer than 64 chars?
– Usage of obsolete sql_mode?
– ENUM/SET column definitions containing elements longer than 255 characters?
– Usage of partitioned tables in shared tablespaces?
– Usage of removed functions?
– Usage of removed GROUP BY ASC/DESC?
– Issues reported by ”check table x for upgrade” command?
– ...
29 © 2020 Oracle MySQL
https://dev.mysql.com/doc/refman/8.0/en/upgrade-prerequisites.html
Upgrade Checker Utility
30 © 2020 Oracle MySQL
Credit: http://images.clipartpanda.com/superman-clipart-spiderman-logo-clip-art.jpg
MySQL Shell Upgrade Checker Utility - checkForServerUpgrade
 Utility from MySQL Shell (start with MySQL Shell 8.0.13)
– JS> util.checkForServerUpgrade()
 Will check your MySQL 5.7 or 8.0 installation readiness for upgrade
– Check for legacy issues
– Run the tool on the 5.7 before upgrading! - Users can make changes when time permits before the upgrade
– Always use latest version of MySQL Shell
 It is in active development and more checks will be added
 Privileges needed:
– Since 8.0.21: RELOAD, PROCESS & SELECT
31 © 2020 Oracle MySQL
https://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-utilities-upgrade.html
Examples:
mysqlsh -- util check-for-server-upgrade { --user=root --host=172.25.0.10 }
mysqlsh -e "util.checkForServerUpgrade({user:'root', host:'172.25.0.10'})"
MYSQL JS> util.checkForServerUpgrade("root@172.25.0.10", {outputFormat:'JSON'})
Upgrade checker utility that enables you to verify whether MySQL server instances are ready for upgrade
32 © 2020 Oracle MySQL
33 © 2020 Oracle MySQL
Ready to Upgrade o/
Just one more thing…
34 Copyright © 2020, Oracle and/or its affiliates. All rights reserved.
35 © 2020 Oracle MySQL
Did I mention BACKUP?
In-place Upgrade
36 © 2020 Oracle MySQL
In-Place Upgrade
 An in-place upgrade involves:
– Shutting down the old MySQL server
– Replacing the old MySQL binaries or packages with the new ones
– Restarting MySQL on the existing data directory
– Upgrading any remaining parts of the existing installation that require upgrading
●
mysql_upgrade with MySQL versions <= 8.0.15
37 © 2020 Oracle MySQL
https://dev.mysql.com/doc/refman/8.0/en/upgrade-binary-package.html#upgrade-procedure-inplace
MySQL Upgrade – In-place Upgrade
1. Do all necessary preparations/plans/upgrade checker as explained earlier
●
e.g. mysqlsh -- util check-for-server-upgrade { --user=admin --host=172.25.0.10 }
2. Create a backup of your MySQL instance (data, logs, config files)
3. Do a graceful shutdown of MySQL (innodb_fast_shutdown=0)
4. Upgrade MySQL 8.0 - replace the old binaries with the new ones
5. Start the new MySQL 8.0 instance using the new binaries and the new my.cnf
6. Check messages in the error log
7. Verify that apps and services are working as expected
38 © 2020 Oracle MySQL
What you’ll see in the error log
 Example upgrade from 8.0.17 to 8.0.19
2019-10-15T12:44:14.308874Z mysqld_safe Logging to 'mysqld.err'.
2019-10-15T12:44:14.338620Z mysqld_safe Starting mysqld daemon with databases from data
2019-10-15T12:44:14.371936Z 0 [Warning] [MY-010139] [Server] Changed limits: max_open_files: 1024 (requested 8161)
2019-10-15T12:44:14.371948Z 0 [Warning] [MY-010142] [Server] Changed limits: table_open_cache: 431 (requested 4000)
2019-10-15T12:44:14.636779Z 0 [System] [MY-010116] [Server] mysqld (mysqld 8.0.18) starting as process 18741
2019-10-15T12:44:23.388628Z 4 [System] [MY-013381] [Server] Server upgrade from '80017' to '80018' started.
2019-10-15T12:44:39.925381Z 4 [System] [MY-013381] [Server] Server upgrade from '80017' to '80018' completed.
2019-10-15T12:44:40.153931Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
2019-10-15T12:44:40.194680Z 0 [System] [MY-010931] [Server] mysqld: ready for connections. Version: '8.0.18' socket: '/tmp/mysql.sock' port:
3306 MySQL Server.
2019-10-15T12:44:40.422575Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Socket: '/tmp/mysqlx.sock' bind-address: '::'
port: 33060
2019-10-15T12:45:06.909992Z 0 [System] [MY-010910] [Server] mysqld: Shutdown complete (mysqld 8.0.18) MySQL Server.
2020-01-14T11:09:48.878286Z mysqld_safe Logging to 'mysqld.err'.
2020-01-14T11:09:48.898560Z mysqld_safe Starting mysqld daemon with databases from data
2020-01-14T11:09:48.906717Z 0 [Warning] [MY-010139] [Server] Changed limits: max_open_files: 1024 (requested 8161)
2020-01-14T11:09:48.906726Z 0 [Warning] [MY-010142] [Server] Changed limits: table_open_cache: 431 (requested 4000)
2020-01-14T11:09:49.741917Z 0 [System] [MY-010116] [Server] mysqld (mysqld 8.0.19) starting as process 26998
2020-01-14T11:10:08.740404Z 4 [System] [MY-013381] [Server] Server upgrade from '80018' to '80019' started.
2020-01-14T11:10:49.289995Z 4 [System] [MY-013381] [Server] Server upgrade from '80018' to '80019' completed.
2020-01-14T11:10:50.147909Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
2020-01-14T11:10:50.249474Z 0 [System] [MY-010931] [Server] mysqld: ready for connections. Version: '8.0.19' socket: '/tmp/mysql.sock' port:
3306 MySQL Server.
2020-01-14T11:10:50.384503Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Socket: '/tmp/mysqlx.sock' bind-address: '::'
port: 33060
41 © 2020 Oracle MySQL
Logical Upgrade
42 © 2020 Oracle MySQL
Logical Upgrade
 A logical upgrade involves:
– Exporting SQL from the old MySQL instance using an utility such as
●
MySQL Shell Dump utilities : dumpInstance, dumpSchemas
●
mysqldump
●
mysqlpump
– Installing the new MySQL server
– Applying the SQL to your new MySQL instance
43 © 2020 Oracle MySQL
https://dev.mysql.com/doc/refman/8.0/en/upgrade-binary-package.html#upgrade-procedure-logical
MySQL Upgrade – Logical Upgrade
1. Do all necessary preparations/plans/upgrade checker as explained earlier
●
e.g. mysqlsh -- util check-for-server-upgrade { --user=admin --host=172.25.0.10 }
2. Create a dump of your MySQL instance (data, logs, config files)
●
Don’t forget your stored routines and your Event Scheduler events
3. Shutdown your MySQL Server
4. Do a clean installation of the new MySQL Server version - Initialize a new data directory
●
Copy the temporary 'root'@'localhost' password displayed to your screen or written to your error log for later use
5. Start the new MySQL 8.0 instance using the new binaries and the new my.cnf
6. Reset the root password
●
ALTER USER USER() IDENTIFIED BY 'new password';
7. Load the dump into the new MySQL server instance
8. Restart the MySQL Server with the --upgrade=FORCE option to perform the remaining upgrade tasks
9. Check messages in the error log
10.Verify that apps and services are working as expected
44 © 2020 Oracle MySQL
45 © 2020 Oracle MySQL
Troubleshooting
caching_sha2_password
46 © 2020 Oracle MySQL
caching_sha2_password
 caching_sha2_password : new default Authentication plugin in 8.0
– Requires password exchange using a secure connection
●
TCP using TLS/SSL credentials,
●
a Unix socket file, or shared memory,
●
or an unencrypted connection that supports password exchange using an RSA key pair
– Then cached a copy of the password hash in memory
– MySQL 5.7 default is mysql_native_password
●
Relies on SHA1 algorithm and NIST has suggested to stop using it
47 © 2020 Oracle MySQL
caching_sha2_password
 New users created in MySQL 8.0 will use the caching_sha2_password as their authentication plugin
– User accounts already created in existing instances are not altered as a part of an upgrade
48 © 2020 Oracle MySQL
Examples: Existing users who wish to switch to caching_sha2_password
ALTER USER 'daz'@'localhost' IDENTIFIED WITH caching_sha2_password BY '<password>';
caching_sha2_password - Troubleshooting
 If you encounter compatibility issues after upgrading to MySQL 8.0 the simplest way to address
those issues is to reconfigure the server to revert to the previous default authentication plugin,
mysql_native_password :
Example:
[mysqld]
default_authentication_plugin = mysql_native_password
 This setting should be viewed as temporary, not as a long term or permanent solution
 More details
– https://mysqlserverteam.com/mysql-8-0-4-new-default-authentication-plugin-caching_sha2_password/
– https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html#upgrade-caching-sha2-password
49 © 2020 Oracle MySQL
50 © 2020 Oracle MySQL
Keep in Mind
MySQL Upgrade – Keep in mind!
 Performance/Scalability monitoring and testing
– Consider MySQL Enterprise Monitor
– Monitor resource usage (iostat, top, vmstat etc)
 Do you need to consider rolling upgrade with MySQL Replication or InnoDB Cluster
– Primary: 5.7 → Replicas/Secondaries: 8.0
 Changes in default values
 Statements creating warnings/errors
 New optimizer features causing query plan changes
 Upgrade connectors as well
 Extensive TESTS and a controlled BACKUP / RESTORE process are your best insurance
51 © 2020 Oracle MySQL
MySQL Enterprise Monitor
52 © 2020 Oracle MySQL
MySQL Enterprise Monitor
 See a central view of the complete MySQL env
 Real-time MySQL performance and availability monitoring
 Visually find & fix problem queries with the Query Analyzer
 Alerts through email or text message
 Disk monitoring for capacity planning
 Replications monitoring
 Role based access controls
 Cloud friendly architecture
– No agents required
– Policy driven configuration
– Easy integration with DevOps tools
53 © 2020 Oracle MySQL
A DBA’s assistant: Visualize problems and tuning opportunities.
MySQL Enterprise Monitor – Query Analyzer
 Real-time query performance
 Visual correlation graphs
 Find & fix expensive queries
 Detailed query statistics
 Query Response Time index (QRTi)
– "Quality of Service" (QoS) measurement for each query
– QoS measurement for a server, group, or every instance
– Single metric for query performance
54 © 2020 Oracle MySQL
Visual Query Analysis
“With the MySQL Query Analyzer, we were able to identify and analyze problematic SQL
code, and triple our database performance. More importantly, we were able to accomplish
this in three days, rather than taking weeks.”
Keith Souhrada
Software Development Engineer
Big Fish Games
MySQL Enterprise Monitor – Best Practice Advisors
 Enforce MySQL best practices
 14 Advisor categories
 250+ Advisors
 Threshold-based alerts
– Exponential moving averages
– Rate change detection
 Expert problem resolution advice
55 © 2020 Oracle MySQL
Provide a set of rules designed to enforce MySQL best practices
“I definitely recommend the MySQL Enterprise Monitor to DBAs who don't have a ton of
MySQL experience. It makes monitoring MySQL security, performance and availability very
easy to understand and to act on.”
Sandi Barr
Sr. Software Engineer
Schneider Electric
56 © 2020 Oracle MySQL
Wrap-Up
MySQL Upgrade – Recap
 PREPARE your upgrade (release notes, resources)
 Preliminary CHECKS
– DO run the Upgrade Checker Utility : util.checkForServerUpgrade()
– Fix issues until it runs clean
 TEST your applications on MySQL 8.0
– Replication can help – Source : 5.7 → Secondary : 8.0
 DO your BACKUP
 UPGRADE to MySQL 8.0
 Post CHECKS
– logs, data consistency, performance, behavior of the application, ...
57 © 2020 Oracle MySQL
MySQL Enterprise Edition
58 © 2020 Oracle MySQL
https://youtu.be/CtRIc6Hsia8
MySQL Enterprise Edition
59 © 2020 Oracle MySQL
Oracle Premier
Lifetime Support
Oracle Product
Certifications/IntegrationsMySQL Enterprise
High Availability
MySQL Enterprise
Security
MySQL Enterprise
Scalability
MySQL Enterprise
Backup
MySQL Enterprise
Monitor/Query Analyzer
MySQL Enterprise
Audit
Highest Levels of MySQL Security, Manageability and Reliability
MySQL Enterprise Edition
60 © 2020 Oracle MySQL
Management ToolsAdvanced Features Support
• Authentication
• Audit
• Encryption / TDE
• Firewall
• Data Masking
• High Availability
• Monitoring
• Backup
• Development
• Administration
• Migration
• Technical Support
• Consultative Support
• Oracle Certifications
Highest Levels of MySQL Security, Manageability and Reliability
MySQL Enterprise Edition
 MySQL Enterprise Authentication
– External Authentication Modules
●
Microsoft AD, Linux PAMs, Native LDAP
 MySQL Enterprise Encryption
– Public/Private Key Cryptography
– Asymmetric Encryption
– Digital Signatures, Data Validation
 MySQL Enterprise Firewall
– Block SQL Injection Attacks
– Intrusion Detection
 MySQL Enterprise Audit
– User Activity Auditing, Regulatory Compliance
 MySQL Enterprise Monitor
– Changes in Database Configurations, Users
Permissions, Database Schema, Passwords
 MySQL Enterprise Backup
– Securing Backups, AES 256 encryption
 MySQL Enterprise TDE
– AES 256 encryption
– Key Management
 MySQL Enterprise De-Identification
– Data Masking and Obfuscation
– Formatted Data Randomization
– Pseudonymization, Data Blacklists
– Random Data generation
61 © 2020 Oracle MySQL
MySQL Enterprise Support
 Largest MySQL engineering and support organization
 Backed by the MySQL developers
 World-class support, in 29 languages
 Hot fixes & maintenance releases
 24x7x365
 Unlimited incidents
 Consultative support
 Global scale and reach
62 © 2020 Oracle MySQL
Get immediate help for any
MySQL issue, plus expert
advice
Get immediate help for any
MySQL issue, plus expert
advice
https://www.mysql.com/fr/support/
MySQL Enterprise Consultative Support
 Remote troubleshooting
 Replication review
 Partitioning review
 Schema review
 Query review
 Performance tuning
 ...and more
63 © 2020 Oracle MySQL
https://www.mysql.com/fr/support/consultative.html
Make the Most of your Deployments
References 1/2
 https://dev.mysql.com/doc/refman/8.0/en/upgrading.html
 https://mysqlserverteam.com/inplace-upgrade-from-mysql-5-7-to-mysql-8-0/
 https://mysqlserverteam.com/upgrading-to-mysql-8-0-here-is-what-you-need-to-know/
 https://mysqlserverteam.com/upgrading-to-mysql-8-0-with-spatial-data/
 https://mysqlserverteam.com/upgrading-your-mysql-server-farm/
 https://mysqlserverteam.com/mysql-8-0-collations-migrating-from-older-collations/
 https://mysqlserverteam.com/new-defaults-in-mysql-8-0/
 https://mysqlserverteam.com/whats-new-in-mysql-8-0-generally-available/
 https://mysqlserverteam.com/the-complete-list-of-new-features-in-mysql-8-0/
 https://mysqlserverteam.com/mysql-shell-8-0-4-introducing-upgrade-checker-utility/
 https://mysqlserverteam.com/mysql-shell-dump-load-part-1-demo/
 https://mysqlserverteam.com/mysql-shell-dump-load-part-2-benchmarks/
 https://mysqlserverteam.com/mysql-shell-dump-load-part-3-load-dump/
 https://mysqlserverteam.com/mysql-shell-8-0-21-speeding-up-the-dump-process/
64 © 2020 Oracle MySQL
References 2/2
 MySQL Server Team Blog
http://mysqlserverteam.com/
 MySQL High Availability Blog
http://mysqlhighavailability.com/
 MySQL Release Engineering Blog
https://mysqlrelease.com/
 MySQL Dev Team Blog
https://insidemysql.com/
 MySQL Enterprise Team Blogs
https://blogs.oracle.com/mysql/
65 © 2020 Oracle MySQL
 Lefred’s blog
https://lefred.be/
 Dimitri’s blog
http://dimitrik.free.fr/blog/
 Andrew’s blog
https://thesubtlepath.com/blog/
 Olivier Dasini’s blog
http://dasini.net/blog/en
 Olivier's MySQL Channel
https://youtube.com/channel/UC12TulyJsJZHoCmby3Nm3WQ
66 © 2020 Oracle MySQL
Questions?
olivier.dasini@oracle.com
Thank you
67 © 2020 Oracle MySQL
Olivier Dasini
MySQL Principal Solutions Architect EMEA
olivier.dasini@oracle.com
Twitter : @freshdaz
Blog : http://dasini.net/blog/en
Upgrade from MySQL 5.7 to MySQL 8.0

More Related Content

What's hot

MySQL8.0_performance_schema.pptx
MySQL8.0_performance_schema.pptxMySQL8.0_performance_schema.pptx
MySQL8.0_performance_schema.pptxNeoClova
 
MySQL Administrator 2021 - 네오클로바
MySQL Administrator 2021 - 네오클로바MySQL Administrator 2021 - 네오클로바
MySQL Administrator 2021 - 네오클로바NeoClova
 
How to upgrade like a boss to MySQL 8.0 - PLE19
How to upgrade like a boss to MySQL 8.0 -  PLE19How to upgrade like a boss to MySQL 8.0 -  PLE19
How to upgrade like a boss to MySQL 8.0 - PLE19Alkin Tezuysal
 
Database in Kubernetes: Diagnostics and Monitoring
Database in Kubernetes: Diagnostics and MonitoringDatabase in Kubernetes: Diagnostics and Monitoring
Database in Kubernetes: Diagnostics and MonitoringSveta Smirnova
 
The Full MySQL and MariaDB Parallel Replication Tutorial
The Full MySQL and MariaDB Parallel Replication TutorialThe Full MySQL and MariaDB Parallel Replication Tutorial
The Full MySQL and MariaDB Parallel Replication TutorialJean-François Gagné
 
How to upgrade like a boss to my sql 8.0?
How to upgrade like a boss to my sql 8.0?How to upgrade like a boss to my sql 8.0?
How to upgrade like a boss to my sql 8.0?Alkin Tezuysal
 
MySQL Advanced Administrator 2021 - 네오클로바
MySQL Advanced Administrator 2021 - 네오클로바MySQL Advanced Administrator 2021 - 네오클로바
MySQL Advanced Administrator 2021 - 네오클로바NeoClova
 
MariaDB 마이그레이션 - 네오클로바
MariaDB 마이그레이션 - 네오클로바MariaDB 마이그레이션 - 네오클로바
MariaDB 마이그레이션 - 네오클로바NeoClova
 
MySQL Group Replication
MySQL Group ReplicationMySQL Group Replication
MySQL Group ReplicationUlf Wendel
 
Percona Live 2022 - MySQL Architectures
Percona Live 2022 - MySQL ArchitecturesPercona Live 2022 - MySQL Architectures
Percona Live 2022 - MySQL ArchitecturesFrederic Descamps
 
Maria db 이중화구성_고민하기
Maria db 이중화구성_고민하기Maria db 이중화구성_고민하기
Maria db 이중화구성_고민하기NeoClova
 
MySQL GTID Concepts, Implementation and troubleshooting
MySQL GTID Concepts, Implementation and troubleshooting MySQL GTID Concepts, Implementation and troubleshooting
MySQL GTID Concepts, Implementation and troubleshooting Mydbops
 
Disaster Recovery with MySQL InnoDB ClusterSet - What is it and how do I use it?
Disaster Recovery with MySQL InnoDB ClusterSet - What is it and how do I use it?Disaster Recovery with MySQL InnoDB ClusterSet - What is it and how do I use it?
Disaster Recovery with MySQL InnoDB ClusterSet - What is it and how do I use it?Miguel Araújo
 
Patroni - HA PostgreSQL made easy
Patroni - HA PostgreSQL made easyPatroni - HA PostgreSQL made easy
Patroni - HA PostgreSQL made easyAlexander Kukushkin
 
MySQL InnoDB Cluster - New Features in 8.0 Releases - Best Practices
MySQL InnoDB Cluster - New Features in 8.0 Releases - Best PracticesMySQL InnoDB Cluster - New Features in 8.0 Releases - Best Practices
MySQL InnoDB Cluster - New Features in 8.0 Releases - Best PracticesKenny Gryp
 
MySQL_MariaDB-성능개선-202201.pptx
MySQL_MariaDB-성능개선-202201.pptxMySQL_MariaDB-성능개선-202201.pptx
MySQL_MariaDB-성능개선-202201.pptxNeoClova
 
binary log と 2PC と Group Commit
binary log と 2PC と Group Commitbinary log と 2PC と Group Commit
binary log と 2PC と Group CommitTakanori Sejima
 

What's hot (20)

MySQL8.0_performance_schema.pptx
MySQL8.0_performance_schema.pptxMySQL8.0_performance_schema.pptx
MySQL8.0_performance_schema.pptx
 
MySQL Shell for DBAs
MySQL Shell for DBAsMySQL Shell for DBAs
MySQL Shell for DBAs
 
MySQL Administrator 2021 - 네오클로바
MySQL Administrator 2021 - 네오클로바MySQL Administrator 2021 - 네오클로바
MySQL Administrator 2021 - 네오클로바
 
How to upgrade like a boss to MySQL 8.0 - PLE19
How to upgrade like a boss to MySQL 8.0 -  PLE19How to upgrade like a boss to MySQL 8.0 -  PLE19
How to upgrade like a boss to MySQL 8.0 - PLE19
 
Liquibase
LiquibaseLiquibase
Liquibase
 
Database in Kubernetes: Diagnostics and Monitoring
Database in Kubernetes: Diagnostics and MonitoringDatabase in Kubernetes: Diagnostics and Monitoring
Database in Kubernetes: Diagnostics and Monitoring
 
The Full MySQL and MariaDB Parallel Replication Tutorial
The Full MySQL and MariaDB Parallel Replication TutorialThe Full MySQL and MariaDB Parallel Replication Tutorial
The Full MySQL and MariaDB Parallel Replication Tutorial
 
How to upgrade like a boss to my sql 8.0?
How to upgrade like a boss to my sql 8.0?How to upgrade like a boss to my sql 8.0?
How to upgrade like a boss to my sql 8.0?
 
MySQL Advanced Administrator 2021 - 네오클로바
MySQL Advanced Administrator 2021 - 네오클로바MySQL Advanced Administrator 2021 - 네오클로바
MySQL Advanced Administrator 2021 - 네오클로바
 
MariaDB 마이그레이션 - 네오클로바
MariaDB 마이그레이션 - 네오클로바MariaDB 마이그레이션 - 네오클로바
MariaDB 마이그레이션 - 네오클로바
 
MySQL Group Replication
MySQL Group ReplicationMySQL Group Replication
MySQL Group Replication
 
Percona Live 2022 - MySQL Architectures
Percona Live 2022 - MySQL ArchitecturesPercona Live 2022 - MySQL Architectures
Percona Live 2022 - MySQL Architectures
 
Maria db 이중화구성_고민하기
Maria db 이중화구성_고민하기Maria db 이중화구성_고민하기
Maria db 이중화구성_고민하기
 
MySQL GTID Concepts, Implementation and troubleshooting
MySQL GTID Concepts, Implementation and troubleshooting MySQL GTID Concepts, Implementation and troubleshooting
MySQL GTID Concepts, Implementation and troubleshooting
 
Disaster Recovery with MySQL InnoDB ClusterSet - What is it and how do I use it?
Disaster Recovery with MySQL InnoDB ClusterSet - What is it and how do I use it?Disaster Recovery with MySQL InnoDB ClusterSet - What is it and how do I use it?
Disaster Recovery with MySQL InnoDB ClusterSet - What is it and how do I use it?
 
Patroni - HA PostgreSQL made easy
Patroni - HA PostgreSQL made easyPatroni - HA PostgreSQL made easy
Patroni - HA PostgreSQL made easy
 
MySQL InnoDB Cluster - New Features in 8.0 Releases - Best Practices
MySQL InnoDB Cluster - New Features in 8.0 Releases - Best PracticesMySQL InnoDB Cluster - New Features in 8.0 Releases - Best Practices
MySQL InnoDB Cluster - New Features in 8.0 Releases - Best Practices
 
LiquiBase
LiquiBaseLiquiBase
LiquiBase
 
MySQL_MariaDB-성능개선-202201.pptx
MySQL_MariaDB-성능개선-202201.pptxMySQL_MariaDB-성능개선-202201.pptx
MySQL_MariaDB-성능개선-202201.pptx
 
binary log と 2PC と Group Commit
binary log と 2PC と Group Commitbinary log と 2PC と Group Commit
binary log と 2PC と Group Commit
 

Similar to Upgrade from MySQL 5.7 to MySQL 8.0

MySQL Community and Commercial Edition
MySQL Community and Commercial EditionMySQL Community and Commercial Edition
MySQL Community and Commercial EditionMario Beck
 
MySQL Day Paris 2018 - Upgrade from MySQL 5.7 to MySQL 8.0
MySQL Day Paris 2018 - Upgrade from MySQL 5.7 to MySQL 8.0MySQL Day Paris 2018 - Upgrade from MySQL 5.7 to MySQL 8.0
MySQL Day Paris 2018 - Upgrade from MySQL 5.7 to MySQL 8.0Olivier DASINI
 
Automatic upgrade and new error logging in my sql 8.0 oct
Automatic upgrade and new error logging in my sql 8.0 octAutomatic upgrade and new error logging in my sql 8.0 oct
Automatic upgrade and new error logging in my sql 8.0 octStåle Deraas
 
MySQL 8: Ready for Prime Time
MySQL 8: Ready for Prime TimeMySQL 8: Ready for Prime Time
MySQL 8: Ready for Prime TimeArnab Ray
 
MySQL High Availability Solutions - Avoid loss of service by reducing the r...
MySQL High Availability Solutions  -  Avoid loss of service by reducing the r...MySQL High Availability Solutions  -  Avoid loss of service by reducing the r...
MySQL High Availability Solutions - Avoid loss of service by reducing the r...Olivier DASINI
 
20200613 my sql-ha-deployment
20200613 my sql-ha-deployment20200613 my sql-ha-deployment
20200613 my sql-ha-deploymentIvan Ma
 
Mysql 8 vs Mariadb 10.4 Webinar 2020 Feb
Mysql 8 vs Mariadb 10.4 Webinar 2020 FebMysql 8 vs Mariadb 10.4 Webinar 2020 Feb
Mysql 8 vs Mariadb 10.4 Webinar 2020 FebAlkin Tezuysal
 
MySQL The State of the Dolphin - jun15
MySQL The State of the Dolphin - jun15MySQL The State of the Dolphin - jun15
MySQL The State of the Dolphin - jun15MySQL Brasil
 
MySQL 8.0 : High Availability Solution for Everybody
MySQL 8.0 : High Availability Solution for EverybodyMySQL 8.0 : High Availability Solution for Everybody
MySQL 8.0 : High Availability Solution for EverybodyFrederic Descamps
 
MySQL Database Service - 100% Developed, Managed and Supported by the MySQL Team
MySQL Database Service - 100% Developed, Managed and Supported by the MySQL TeamMySQL Database Service - 100% Developed, Managed and Supported by the MySQL Team
MySQL Database Service - 100% Developed, Managed and Supported by the MySQL TeamOlivier DASINI
 
MySQL 20 años: pasado, presente y futuro; conoce las nuevas características d...
MySQL 20 años: pasado, presente y futuro; conoce las nuevas características d...MySQL 20 años: pasado, presente y futuro; conoce las nuevas características d...
MySQL 20 años: pasado, presente y futuro; conoce las nuevas características d...GeneXus
 
MySQL Day Virtual: Best Practices Tips - Upgrading to MySQL 8.0
MySQL Day Virtual: Best Practices Tips - Upgrading to MySQL 8.0MySQL Day Virtual: Best Practices Tips - Upgrading to MySQL 8.0
MySQL Day Virtual: Best Practices Tips - Upgrading to MySQL 8.0Frederic Descamps
 
MySQL Shell - The Best MySQL DBA Tool
MySQL Shell - The Best MySQL DBA ToolMySQL Shell - The Best MySQL DBA Tool
MySQL Shell - The Best MySQL DBA ToolMiguel Araújo
 
From Nice to Have to Mission Critical: MySQL Enterprise Edition
From Nice to Have to Mission Critical: MySQL Enterprise EditionFrom Nice to Have to Mission Critical: MySQL Enterprise Edition
From Nice to Have to Mission Critical: MySQL Enterprise Edition郁萍 王
 
Upgrading to my sql 8.0
Upgrading to my sql 8.0Upgrading to my sql 8.0
Upgrading to my sql 8.0Ståle Deraas
 
MySQL 8.0 - What's New ?
MySQL 8.0 - What's New ?MySQL 8.0 - What's New ?
MySQL 8.0 - What's New ?Olivier DASINI
 
NoSQL and MySQL: News about JSON
NoSQL and MySQL: News about JSONNoSQL and MySQL: News about JSON
NoSQL and MySQL: News about JSONMario Beck
 
Oracle Open World Middle East - MySQL 8 a Giant Leap for SQL
Oracle Open World Middle East - MySQL 8 a Giant Leap for SQLOracle Open World Middle East - MySQL 8 a Giant Leap for SQL
Oracle Open World Middle East - MySQL 8 a Giant Leap for SQLFrederic Descamps
 

Similar to Upgrade from MySQL 5.7 to MySQL 8.0 (20)

MySQL Community and Commercial Edition
MySQL Community and Commercial EditionMySQL Community and Commercial Edition
MySQL Community and Commercial Edition
 
MySQL Day Paris 2018 - Upgrade from MySQL 5.7 to MySQL 8.0
MySQL Day Paris 2018 - Upgrade from MySQL 5.7 to MySQL 8.0MySQL Day Paris 2018 - Upgrade from MySQL 5.7 to MySQL 8.0
MySQL Day Paris 2018 - Upgrade from MySQL 5.7 to MySQL 8.0
 
Marcin Szałowicz - MySQL Workbench
Marcin Szałowicz - MySQL WorkbenchMarcin Szałowicz - MySQL Workbench
Marcin Szałowicz - MySQL Workbench
 
Automatic upgrade and new error logging in my sql 8.0 oct
Automatic upgrade and new error logging in my sql 8.0 octAutomatic upgrade and new error logging in my sql 8.0 oct
Automatic upgrade and new error logging in my sql 8.0 oct
 
MySQL 8: Ready for Prime Time
MySQL 8: Ready for Prime TimeMySQL 8: Ready for Prime Time
MySQL 8: Ready for Prime Time
 
MySQL High Availability Solutions - Avoid loss of service by reducing the r...
MySQL High Availability Solutions  -  Avoid loss of service by reducing the r...MySQL High Availability Solutions  -  Avoid loss of service by reducing the r...
MySQL High Availability Solutions - Avoid loss of service by reducing the r...
 
20200613 my sql-ha-deployment
20200613 my sql-ha-deployment20200613 my sql-ha-deployment
20200613 my sql-ha-deployment
 
Mysql 8 vs Mariadb 10.4 Webinar 2020 Feb
Mysql 8 vs Mariadb 10.4 Webinar 2020 FebMysql 8 vs Mariadb 10.4 Webinar 2020 Feb
Mysql 8 vs Mariadb 10.4 Webinar 2020 Feb
 
MySQL The State of the Dolphin - jun15
MySQL The State of the Dolphin - jun15MySQL The State of the Dolphin - jun15
MySQL The State of the Dolphin - jun15
 
MySQL 8.0 : High Availability Solution for Everybody
MySQL 8.0 : High Availability Solution for EverybodyMySQL 8.0 : High Availability Solution for Everybody
MySQL 8.0 : High Availability Solution for Everybody
 
MySQL Database Service - 100% Developed, Managed and Supported by the MySQL Team
MySQL Database Service - 100% Developed, Managed and Supported by the MySQL TeamMySQL Database Service - 100% Developed, Managed and Supported by the MySQL Team
MySQL Database Service - 100% Developed, Managed and Supported by the MySQL Team
 
MySQL 20 años: pasado, presente y futuro; conoce las nuevas características d...
MySQL 20 años: pasado, presente y futuro; conoce las nuevas características d...MySQL 20 años: pasado, presente y futuro; conoce las nuevas características d...
MySQL 20 años: pasado, presente y futuro; conoce las nuevas características d...
 
MySQL Day Virtual: Best Practices Tips - Upgrading to MySQL 8.0
MySQL Day Virtual: Best Practices Tips - Upgrading to MySQL 8.0MySQL Day Virtual: Best Practices Tips - Upgrading to MySQL 8.0
MySQL Day Virtual: Best Practices Tips - Upgrading to MySQL 8.0
 
MySQL Shell - The Best MySQL DBA Tool
MySQL Shell - The Best MySQL DBA ToolMySQL Shell - The Best MySQL DBA Tool
MySQL Shell - The Best MySQL DBA Tool
 
From Nice to Have to Mission Critical: MySQL Enterprise Edition
From Nice to Have to Mission Critical: MySQL Enterprise EditionFrom Nice to Have to Mission Critical: MySQL Enterprise Edition
From Nice to Have to Mission Critical: MySQL Enterprise Edition
 
Upgrading to my sql 8.0
Upgrading to my sql 8.0Upgrading to my sql 8.0
Upgrading to my sql 8.0
 
MySQL
MySQLMySQL
MySQL
 
MySQL 8.0 - What's New ?
MySQL 8.0 - What's New ?MySQL 8.0 - What's New ?
MySQL 8.0 - What's New ?
 
NoSQL and MySQL: News about JSON
NoSQL and MySQL: News about JSONNoSQL and MySQL: News about JSON
NoSQL and MySQL: News about JSON
 
Oracle Open World Middle East - MySQL 8 a Giant Leap for SQL
Oracle Open World Middle East - MySQL 8 a Giant Leap for SQLOracle Open World Middle East - MySQL 8 a Giant Leap for SQL
Oracle Open World Middle East - MySQL 8 a Giant Leap for SQL
 

More from Olivier DASINI

MySQL Document Store for Modern Applications
MySQL Document Store for Modern ApplicationsMySQL Document Store for Modern Applications
MySQL Document Store for Modern ApplicationsOlivier DASINI
 
MySQL Performance Best Practices
MySQL Performance Best PracticesMySQL Performance Best Practices
MySQL Performance Best PracticesOlivier DASINI
 
MySQL 8.0.22 - New Features Summary
MySQL 8.0.22 - New Features SummaryMySQL 8.0.22 - New Features Summary
MySQL 8.0.22 - New Features SummaryOlivier DASINI
 
MySQL 8.0.21 - New Features Summary
MySQL 8.0.21 - New Features SummaryMySQL 8.0.21 - New Features Summary
MySQL 8.0.21 - New Features SummaryOlivier DASINI
 
MySQL 8.0.19 - New Features Summary
MySQL 8.0.19 - New Features SummaryMySQL 8.0.19 - New Features Summary
MySQL 8.0.19 - New Features SummaryOlivier DASINI
 
MySQL 8.0.18 - New Features Summary
MySQL 8.0.18 - New Features SummaryMySQL 8.0.18 - New Features Summary
MySQL 8.0.18 - New Features SummaryOlivier DASINI
 
MySQL 8.0.17 - New Features Summary
MySQL 8.0.17 - New Features SummaryMySQL 8.0.17 - New Features Summary
MySQL 8.0.17 - New Features SummaryOlivier DASINI
 
MySQL 8.0.16 New Features Summary
MySQL 8.0.16 New Features SummaryMySQL 8.0.16 New Features Summary
MySQL 8.0.16 New Features SummaryOlivier DASINI
 
MySQL Day Paris 2018 - Introduction & The State of the Dolphin
MySQL Day Paris 2018 - Introduction & The State of the DolphinMySQL Day Paris 2018 - Introduction & The State of the Dolphin
MySQL Day Paris 2018 - Introduction & The State of the DolphinOlivier DASINI
 
MySQL Day Paris 2018 - MySQL & GDPR; Privacy and Security requirements
MySQL Day Paris 2018 - MySQL & GDPR; Privacy and Security requirementsMySQL Day Paris 2018 - MySQL & GDPR; Privacy and Security requirements
MySQL Day Paris 2018 - MySQL & GDPR; Privacy and Security requirementsOlivier DASINI
 
MySQL Day Paris 2018 - MySQL InnoDB Cluster; A complete High Availability sol...
MySQL Day Paris 2018 - MySQL InnoDB Cluster; A complete High Availability sol...MySQL Day Paris 2018 - MySQL InnoDB Cluster; A complete High Availability sol...
MySQL Day Paris 2018 - MySQL InnoDB Cluster; A complete High Availability sol...Olivier DASINI
 
MySQL Day Paris 2018 - MySQL JSON Document Store
MySQL Day Paris 2018 - MySQL JSON Document StoreMySQL Day Paris 2018 - MySQL JSON Document Store
MySQL Day Paris 2018 - MySQL JSON Document StoreOlivier DASINI
 
MySQL Day Paris 2018 - What’s New in MySQL 8.0 ?
MySQL Day Paris 2018 - What’s New in MySQL 8.0 ?MySQL Day Paris 2018 - What’s New in MySQL 8.0 ?
MySQL Day Paris 2018 - What’s New in MySQL 8.0 ?Olivier DASINI
 
MySQL 8.0, what's new ? - Forum PHP 2018
MySQL 8.0, what's new ? - Forum PHP 2018MySQL 8.0, what's new ? - Forum PHP 2018
MySQL 8.0, what's new ? - Forum PHP 2018Olivier DASINI
 
MySQL JSON Document Store - A Document Store with all the benefits of a Trans...
MySQL JSON Document Store - A Document Store with all the benefits of a Trans...MySQL JSON Document Store - A Document Store with all the benefits of a Trans...
MySQL JSON Document Store - A Document Store with all the benefits of a Trans...Olivier DASINI
 
MySQL Document Store - A Document Store with all the benefts of a Transactona...
MySQL Document Store - A Document Store with all the benefts of a Transactona...MySQL Document Store - A Document Store with all the benefts of a Transactona...
MySQL Document Store - A Document Store with all the benefts of a Transactona...Olivier DASINI
 
MySQL 5.7 InnoDB Cluster (Jan 2018)
MySQL 5.7 InnoDB Cluster (Jan 2018)MySQL 5.7 InnoDB Cluster (Jan 2018)
MySQL 5.7 InnoDB Cluster (Jan 2018)Olivier DASINI
 
MySQL InnoDB Cluster - Meetup Oracle MySQL / AFUP Paris
MySQL InnoDB Cluster - Meetup Oracle MySQL / AFUP ParisMySQL InnoDB Cluster - Meetup Oracle MySQL / AFUP Paris
MySQL InnoDB Cluster - Meetup Oracle MySQL / AFUP ParisOlivier DASINI
 
MySQL Day Paris 2016 - MySQL Enterprise Edition
MySQL Day Paris 2016 - MySQL Enterprise EditionMySQL Day Paris 2016 - MySQL Enterprise Edition
MySQL Day Paris 2016 - MySQL Enterprise EditionOlivier DASINI
 
MySQL Day Paris 2016 - Introducing Oracle MySQL Cloud Service
MySQL Day Paris 2016 - Introducing Oracle MySQL Cloud ServiceMySQL Day Paris 2016 - Introducing Oracle MySQL Cloud Service
MySQL Day Paris 2016 - Introducing Oracle MySQL Cloud ServiceOlivier DASINI
 

More from Olivier DASINI (20)

MySQL Document Store for Modern Applications
MySQL Document Store for Modern ApplicationsMySQL Document Store for Modern Applications
MySQL Document Store for Modern Applications
 
MySQL Performance Best Practices
MySQL Performance Best PracticesMySQL Performance Best Practices
MySQL Performance Best Practices
 
MySQL 8.0.22 - New Features Summary
MySQL 8.0.22 - New Features SummaryMySQL 8.0.22 - New Features Summary
MySQL 8.0.22 - New Features Summary
 
MySQL 8.0.21 - New Features Summary
MySQL 8.0.21 - New Features SummaryMySQL 8.0.21 - New Features Summary
MySQL 8.0.21 - New Features Summary
 
MySQL 8.0.19 - New Features Summary
MySQL 8.0.19 - New Features SummaryMySQL 8.0.19 - New Features Summary
MySQL 8.0.19 - New Features Summary
 
MySQL 8.0.18 - New Features Summary
MySQL 8.0.18 - New Features SummaryMySQL 8.0.18 - New Features Summary
MySQL 8.0.18 - New Features Summary
 
MySQL 8.0.17 - New Features Summary
MySQL 8.0.17 - New Features SummaryMySQL 8.0.17 - New Features Summary
MySQL 8.0.17 - New Features Summary
 
MySQL 8.0.16 New Features Summary
MySQL 8.0.16 New Features SummaryMySQL 8.0.16 New Features Summary
MySQL 8.0.16 New Features Summary
 
MySQL Day Paris 2018 - Introduction & The State of the Dolphin
MySQL Day Paris 2018 - Introduction & The State of the DolphinMySQL Day Paris 2018 - Introduction & The State of the Dolphin
MySQL Day Paris 2018 - Introduction & The State of the Dolphin
 
MySQL Day Paris 2018 - MySQL & GDPR; Privacy and Security requirements
MySQL Day Paris 2018 - MySQL & GDPR; Privacy and Security requirementsMySQL Day Paris 2018 - MySQL & GDPR; Privacy and Security requirements
MySQL Day Paris 2018 - MySQL & GDPR; Privacy and Security requirements
 
MySQL Day Paris 2018 - MySQL InnoDB Cluster; A complete High Availability sol...
MySQL Day Paris 2018 - MySQL InnoDB Cluster; A complete High Availability sol...MySQL Day Paris 2018 - MySQL InnoDB Cluster; A complete High Availability sol...
MySQL Day Paris 2018 - MySQL InnoDB Cluster; A complete High Availability sol...
 
MySQL Day Paris 2018 - MySQL JSON Document Store
MySQL Day Paris 2018 - MySQL JSON Document StoreMySQL Day Paris 2018 - MySQL JSON Document Store
MySQL Day Paris 2018 - MySQL JSON Document Store
 
MySQL Day Paris 2018 - What’s New in MySQL 8.0 ?
MySQL Day Paris 2018 - What’s New in MySQL 8.0 ?MySQL Day Paris 2018 - What’s New in MySQL 8.0 ?
MySQL Day Paris 2018 - What’s New in MySQL 8.0 ?
 
MySQL 8.0, what's new ? - Forum PHP 2018
MySQL 8.0, what's new ? - Forum PHP 2018MySQL 8.0, what's new ? - Forum PHP 2018
MySQL 8.0, what's new ? - Forum PHP 2018
 
MySQL JSON Document Store - A Document Store with all the benefits of a Trans...
MySQL JSON Document Store - A Document Store with all the benefits of a Trans...MySQL JSON Document Store - A Document Store with all the benefits of a Trans...
MySQL JSON Document Store - A Document Store with all the benefits of a Trans...
 
MySQL Document Store - A Document Store with all the benefts of a Transactona...
MySQL Document Store - A Document Store with all the benefts of a Transactona...MySQL Document Store - A Document Store with all the benefts of a Transactona...
MySQL Document Store - A Document Store with all the benefts of a Transactona...
 
MySQL 5.7 InnoDB Cluster (Jan 2018)
MySQL 5.7 InnoDB Cluster (Jan 2018)MySQL 5.7 InnoDB Cluster (Jan 2018)
MySQL 5.7 InnoDB Cluster (Jan 2018)
 
MySQL InnoDB Cluster - Meetup Oracle MySQL / AFUP Paris
MySQL InnoDB Cluster - Meetup Oracle MySQL / AFUP ParisMySQL InnoDB Cluster - Meetup Oracle MySQL / AFUP Paris
MySQL InnoDB Cluster - Meetup Oracle MySQL / AFUP Paris
 
MySQL Day Paris 2016 - MySQL Enterprise Edition
MySQL Day Paris 2016 - MySQL Enterprise EditionMySQL Day Paris 2016 - MySQL Enterprise Edition
MySQL Day Paris 2016 - MySQL Enterprise Edition
 
MySQL Day Paris 2016 - Introducing Oracle MySQL Cloud Service
MySQL Day Paris 2016 - Introducing Oracle MySQL Cloud ServiceMySQL Day Paris 2016 - Introducing Oracle MySQL Cloud Service
MySQL Day Paris 2016 - Introducing Oracle MySQL Cloud Service
 

Recently uploaded

Data Analysis Project Presentation: Unveiling Your Ideal Customer, Bank Custo...
Data Analysis Project Presentation: Unveiling Your Ideal Customer, Bank Custo...Data Analysis Project Presentation: Unveiling Your Ideal Customer, Bank Custo...
Data Analysis Project Presentation: Unveiling Your Ideal Customer, Bank Custo...Boston Institute of Analytics
 
Real-Time AI Streaming - AI Max Princeton
Real-Time AI  Streaming - AI Max PrincetonReal-Time AI  Streaming - AI Max Princeton
Real-Time AI Streaming - AI Max PrincetonTimothy Spann
 
What To Do For World Nature Conservation Day by Slidesgo.pptx
What To Do For World Nature Conservation Day by Slidesgo.pptxWhat To Do For World Nature Conservation Day by Slidesgo.pptx
What To Do For World Nature Conservation Day by Slidesgo.pptxSimranPal17
 
Bank Loan Approval Analysis: A Comprehensive Data Analysis Project
Bank Loan Approval Analysis: A Comprehensive Data Analysis ProjectBank Loan Approval Analysis: A Comprehensive Data Analysis Project
Bank Loan Approval Analysis: A Comprehensive Data Analysis ProjectBoston Institute of Analytics
 
Decoding the Heart: Student Presentation on Heart Attack Prediction with Data...
Decoding the Heart: Student Presentation on Heart Attack Prediction with Data...Decoding the Heart: Student Presentation on Heart Attack Prediction with Data...
Decoding the Heart: Student Presentation on Heart Attack Prediction with Data...Boston Institute of Analytics
 
Learn How Data Science Changes Our World
Learn How Data Science Changes Our WorldLearn How Data Science Changes Our World
Learn How Data Science Changes Our WorldEduminds Learning
 
Rithik Kumar Singh codealpha pythohn.pdf
Rithik Kumar Singh codealpha pythohn.pdfRithik Kumar Singh codealpha pythohn.pdf
Rithik Kumar Singh codealpha pythohn.pdfrahulyadav957181
 
Student profile product demonstration on grades, ability, well-being and mind...
Student profile product demonstration on grades, ability, well-being and mind...Student profile product demonstration on grades, ability, well-being and mind...
Student profile product demonstration on grades, ability, well-being and mind...Seán Kennedy
 
why-transparency-and-traceability-are-essential-for-sustainable-supply-chains...
why-transparency-and-traceability-are-essential-for-sustainable-supply-chains...why-transparency-and-traceability-are-essential-for-sustainable-supply-chains...
why-transparency-and-traceability-are-essential-for-sustainable-supply-chains...Jack Cole
 
English-8-Q4-W3-Synthesizing-Essential-Information-From-Various-Sources-1.pdf
English-8-Q4-W3-Synthesizing-Essential-Information-From-Various-Sources-1.pdfEnglish-8-Q4-W3-Synthesizing-Essential-Information-From-Various-Sources-1.pdf
English-8-Q4-W3-Synthesizing-Essential-Information-From-Various-Sources-1.pdfblazblazml
 
NO1 Certified Black Magic Specialist Expert Amil baba in Lahore Islamabad Raw...
NO1 Certified Black Magic Specialist Expert Amil baba in Lahore Islamabad Raw...NO1 Certified Black Magic Specialist Expert Amil baba in Lahore Islamabad Raw...
NO1 Certified Black Magic Specialist Expert Amil baba in Lahore Islamabad Raw...Amil Baba Dawood bangali
 
Data Analysis Project : Targeting the Right Customers, Presentation on Bank M...
Data Analysis Project : Targeting the Right Customers, Presentation on Bank M...Data Analysis Project : Targeting the Right Customers, Presentation on Bank M...
Data Analysis Project : Targeting the Right Customers, Presentation on Bank M...Boston Institute of Analytics
 
Digital Marketing Plan, how digital marketing works
Digital Marketing Plan, how digital marketing worksDigital Marketing Plan, how digital marketing works
Digital Marketing Plan, how digital marketing worksdeepakthakur548787
 
Cyber awareness ppt on the recorded data
Cyber awareness ppt on the recorded dataCyber awareness ppt on the recorded data
Cyber awareness ppt on the recorded dataTecnoIncentive
 
Decoding Movie Sentiments: Analyzing Reviews with Data Analysis model
Decoding Movie Sentiments: Analyzing Reviews with Data Analysis modelDecoding Movie Sentiments: Analyzing Reviews with Data Analysis model
Decoding Movie Sentiments: Analyzing Reviews with Data Analysis modelBoston Institute of Analytics
 
The Power of Data-Driven Storytelling_ Unveiling the Layers of Insight.pptx
The Power of Data-Driven Storytelling_ Unveiling the Layers of Insight.pptxThe Power of Data-Driven Storytelling_ Unveiling the Layers of Insight.pptx
The Power of Data-Driven Storytelling_ Unveiling the Layers of Insight.pptxTasha Penwell
 
Networking Case Study prepared by teacher.pptx
Networking Case Study prepared by teacher.pptxNetworking Case Study prepared by teacher.pptx
Networking Case Study prepared by teacher.pptxHimangsuNath
 
6 Tips for Interpretable Topic Models _ by Nicha Ruchirawat _ Towards Data Sc...
6 Tips for Interpretable Topic Models _ by Nicha Ruchirawat _ Towards Data Sc...6 Tips for Interpretable Topic Models _ by Nicha Ruchirawat _ Towards Data Sc...
6 Tips for Interpretable Topic Models _ by Nicha Ruchirawat _ Towards Data Sc...Dr Arash Najmaei ( Phd., MBA, BSc)
 
modul pembelajaran robotic Workshop _ by Slidesgo.pptx
modul pembelajaran robotic Workshop _ by Slidesgo.pptxmodul pembelajaran robotic Workshop _ by Slidesgo.pptx
modul pembelajaran robotic Workshop _ by Slidesgo.pptxaleedritatuxx
 

Recently uploaded (20)

Data Analysis Project Presentation: Unveiling Your Ideal Customer, Bank Custo...
Data Analysis Project Presentation: Unveiling Your Ideal Customer, Bank Custo...Data Analysis Project Presentation: Unveiling Your Ideal Customer, Bank Custo...
Data Analysis Project Presentation: Unveiling Your Ideal Customer, Bank Custo...
 
Real-Time AI Streaming - AI Max Princeton
Real-Time AI  Streaming - AI Max PrincetonReal-Time AI  Streaming - AI Max Princeton
Real-Time AI Streaming - AI Max Princeton
 
What To Do For World Nature Conservation Day by Slidesgo.pptx
What To Do For World Nature Conservation Day by Slidesgo.pptxWhat To Do For World Nature Conservation Day by Slidesgo.pptx
What To Do For World Nature Conservation Day by Slidesgo.pptx
 
Bank Loan Approval Analysis: A Comprehensive Data Analysis Project
Bank Loan Approval Analysis: A Comprehensive Data Analysis ProjectBank Loan Approval Analysis: A Comprehensive Data Analysis Project
Bank Loan Approval Analysis: A Comprehensive Data Analysis Project
 
Decoding the Heart: Student Presentation on Heart Attack Prediction with Data...
Decoding the Heart: Student Presentation on Heart Attack Prediction with Data...Decoding the Heart: Student Presentation on Heart Attack Prediction with Data...
Decoding the Heart: Student Presentation on Heart Attack Prediction with Data...
 
Insurance Churn Prediction Data Analysis Project
Insurance Churn Prediction Data Analysis ProjectInsurance Churn Prediction Data Analysis Project
Insurance Churn Prediction Data Analysis Project
 
Learn How Data Science Changes Our World
Learn How Data Science Changes Our WorldLearn How Data Science Changes Our World
Learn How Data Science Changes Our World
 
Rithik Kumar Singh codealpha pythohn.pdf
Rithik Kumar Singh codealpha pythohn.pdfRithik Kumar Singh codealpha pythohn.pdf
Rithik Kumar Singh codealpha pythohn.pdf
 
Student profile product demonstration on grades, ability, well-being and mind...
Student profile product demonstration on grades, ability, well-being and mind...Student profile product demonstration on grades, ability, well-being and mind...
Student profile product demonstration on grades, ability, well-being and mind...
 
why-transparency-and-traceability-are-essential-for-sustainable-supply-chains...
why-transparency-and-traceability-are-essential-for-sustainable-supply-chains...why-transparency-and-traceability-are-essential-for-sustainable-supply-chains...
why-transparency-and-traceability-are-essential-for-sustainable-supply-chains...
 
English-8-Q4-W3-Synthesizing-Essential-Information-From-Various-Sources-1.pdf
English-8-Q4-W3-Synthesizing-Essential-Information-From-Various-Sources-1.pdfEnglish-8-Q4-W3-Synthesizing-Essential-Information-From-Various-Sources-1.pdf
English-8-Q4-W3-Synthesizing-Essential-Information-From-Various-Sources-1.pdf
 
NO1 Certified Black Magic Specialist Expert Amil baba in Lahore Islamabad Raw...
NO1 Certified Black Magic Specialist Expert Amil baba in Lahore Islamabad Raw...NO1 Certified Black Magic Specialist Expert Amil baba in Lahore Islamabad Raw...
NO1 Certified Black Magic Specialist Expert Amil baba in Lahore Islamabad Raw...
 
Data Analysis Project : Targeting the Right Customers, Presentation on Bank M...
Data Analysis Project : Targeting the Right Customers, Presentation on Bank M...Data Analysis Project : Targeting the Right Customers, Presentation on Bank M...
Data Analysis Project : Targeting the Right Customers, Presentation on Bank M...
 
Digital Marketing Plan, how digital marketing works
Digital Marketing Plan, how digital marketing worksDigital Marketing Plan, how digital marketing works
Digital Marketing Plan, how digital marketing works
 
Cyber awareness ppt on the recorded data
Cyber awareness ppt on the recorded dataCyber awareness ppt on the recorded data
Cyber awareness ppt on the recorded data
 
Decoding Movie Sentiments: Analyzing Reviews with Data Analysis model
Decoding Movie Sentiments: Analyzing Reviews with Data Analysis modelDecoding Movie Sentiments: Analyzing Reviews with Data Analysis model
Decoding Movie Sentiments: Analyzing Reviews with Data Analysis model
 
The Power of Data-Driven Storytelling_ Unveiling the Layers of Insight.pptx
The Power of Data-Driven Storytelling_ Unveiling the Layers of Insight.pptxThe Power of Data-Driven Storytelling_ Unveiling the Layers of Insight.pptx
The Power of Data-Driven Storytelling_ Unveiling the Layers of Insight.pptx
 
Networking Case Study prepared by teacher.pptx
Networking Case Study prepared by teacher.pptxNetworking Case Study prepared by teacher.pptx
Networking Case Study prepared by teacher.pptx
 
6 Tips for Interpretable Topic Models _ by Nicha Ruchirawat _ Towards Data Sc...
6 Tips for Interpretable Topic Models _ by Nicha Ruchirawat _ Towards Data Sc...6 Tips for Interpretable Topic Models _ by Nicha Ruchirawat _ Towards Data Sc...
6 Tips for Interpretable Topic Models _ by Nicha Ruchirawat _ Towards Data Sc...
 
modul pembelajaran robotic Workshop _ by Slidesgo.pptx
modul pembelajaran robotic Workshop _ by Slidesgo.pptxmodul pembelajaran robotic Workshop _ by Slidesgo.pptx
modul pembelajaran robotic Workshop _ by Slidesgo.pptx
 

Upgrade from MySQL 5.7 to MySQL 8.0

  • 1. Upgrade from MySQL 5.7 to MySQL 8.0 1 © 2020 Oracle MySQL Olivier Dasini MySQL Principal Solutions Architect EMEA olivier.dasini@oracle.com Twitter : @freshdaz Blogs : http://dasini.net/blog/en : http://dasini.net/blog/fr
  • 2. Safe harbor statement 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, timing, and pricing of any features or functionality described for Oracle’s products may change and remains at the sole discretion of Oracle Corporation. 2 © 2020 Oracle MySQL
  • 3. 3 Me, Myself & I  MySQL Geek  Addicted to MySQL for 15+ years  Playing with databases for 20+ years  MySQL Writer, Blogger and Speaker  Also former : DBA, Consultant, Architect, Trainer, ...  MySQL Principal Solutions Architect EMEA at Oracle  Stay up to date!  Twitter: @freshdaz  Blog: http://dasini.net/blog 3 Olivier DASINI Copyright © 2020 Oracle and/or its affiliates. All rights reserved.
  • 4. Why MySQL ? Program agenda 1 2 3 4 Why Upgrade ? The Toolbox Upgrade to MySQL 8.0 4 © 2020 Oracle MySQL MySQL Enterprise Edition Overview5
  • 5. Why MySQL ? 5 © 2020 Oracle MySQL
  • 6. 6 © 2020 Oracle MySQL The world’s most popular open source database
  • 7. Some Of Our Customers  MySQL powers the most demanding Web, E-commerce, SaaS and Online Transaction Processing (OLTP) applications  It is a fully integrated transaction-safe, ACID compliant database with full commit, rollback, crash recovery and row level locking capabilities  MySQL delivers the ease of use, scalability, and performance to power: 7 © 2020 Oracle MySQL
  • 8. Title only 8 © 2020 Oracle MySQL They Scale with MySQL Mobile Network Supporting Over 800 Million Subscribers 2+ Billion Active Users 100 TB of User Data for PayPal IDs Processed for 1 Billion Citizens 850 Million Candy Crush Game Plays/Day 2 Billion Events/Day for Booking.com
  • 9. Explosive Data Growth 9 © 2020 Oracle MySQL Source IDC, 2017 Source Domo, 2018
  • 10. Why Upgrade ? 10 © 2020 Oracle MySQL
  • 11. Why Upgrade ?  New features – InnoDB Cluster, InnoDB ReplicaSet, Clone plugin, Instant Add Column, JSON Document Store, CTE, Window Functions, JSON, GIS, Functional indexes, Hash Joins, Histograms, Check Constraints, ... – New features in 8.0: https://mysqlserverteam.com/the-complete-list-of-new-features-in-mysql-8-0/  Security improvements – New Authentication Plugin, SSL/TLS, SQL Roles, Tables & Log Encryption, Password management, ...  Performance/Scalability improvements – Cost Model, Histograms, P_S, I_S, Scaling R/W workloads, Resource Groups, ...  Manageability – Set Persist, Invisible Indexes, Restart command, Instant Add Column, – InnoDB Cluster / Group Replication, InnoDB ReplicaSet, ...  Reduce tech debt for the MySQL installation – Softer upgrades  Stay on fully supported release  ... 11 © 2020 Oracle MySQL Because “MySQL 8 Is Great” :) but also for...
  • 12. Why Upgrade ? - MySQL 8.0 New Features  What Is New in MySQL 8.0 – https://dev.mysql.com/doc/refman/8.0/en/mysql-nutshell.html  The complete list of new features in MySQL 8.0 – https://mysqlserverteam.com/the-complete-list-of-new-features-in-mysql-8-0/  What’s New in MySQL 8.0? (Generally Available) – https://mysqlserverteam.com/whats-new-in-mysql-8-0-generally-available/  Changes in MySQL 8.0... – https://mysqlserverteam.com/changes-in-mysql-8-0-11-general-availability/ – https://mysqlserverteam.com/the-mysql-8-0-12-maintenance-release-is-generally-available/ – ... – https://mysqlserverteam.com/the-mysql-8-0-21-maintenance-release-is-generally-available/ 12 © 2020 Oracle MySQL Over 300 new features in MySQL 8.0
  • 13. Why Upgrade ? - Performance/Scalability improvements 13 © 2020 Oracle MySQL 2x Faster than MySQL 5.7 - SysBench IO Bound Read Only (Point Selects) OS : Oracle Linux 7.4 CPU : 48cores-HT Intel Skylake 2.7Ghz (2CPU sockets, Intel(R) Xeon(R) Platinum 8168 CPU) RAM: 256GB Storage : x2 Intel Optane flash devices (Intel (R) Optane (TM) SSD P4800X Series)
  • 14. Why Upgrade ? - MySQL Security  SSL enabled by default  Force root password during install  Stronger passwords / Better password management features  New Authentication Plugin  MySQL Security: https://dev.mysql.com/doc/refman/8.0/en/security.html  MySQL Enterprise Edition: – MySQL Enterprise Audit – MySQL Enterprise Monitor – MySQL Enterprise Backup – MySQL Enterprise Firewall – MySQL Enterprise Encryption – MySQL Enterprise Transparent Data Encryption – MySQL Enterprise Data Masking and De-identification – MySQL Enterprise Thread Pool  MySQL Enterprise Security Overview: https://dev.mysql.com/doc/refman/8.0/en/mysql-enterprise-security.html 14 © 2020 Oracle MySQL Privacy and Security requirements for GDPR, PCI DSS, HIPAA, …
  • 15. MySQL Security Achitecture 15 © 2020 Oracle MySQL
  • 16. Why Upgrade ? - Support Life Cycle 16 © 2020 Oracle MySQL Release GA Date Premier Support End Extended Support End Sustaining Support End MySQL 5.0 Oct 2005 Dec 2011 N/A Indefinite MySQL 5.1 Dec 2008 Dec 2013 N/A Indefinite MySQL 5.5 Dec 2010 Dec 2015 Dec 2018 Indefinite MySQL 5.6 Feb 2013 Feb 2018 Feb 2021 Indefinite MySQL 5.7 Oct 2015 Oct 2020 Oct 2023 Indefinite MySQL 8.0 Apr 2018 Apr 2023 Feb 2026 Indefinite http://www.oracle.com/us/support/library/lifetime-support-technology-069183.pdf Ensure that MySQL meets security, reliability & performance requirements
  • 17. MySQL Upgrade – Supported Paths  All minor upgrades are supported – e.g. 8.0.19 → 8.0.20 – or doing a jump e.g. 8.0.17 → 8.0.21  Upgrading one major release level is supported – e.g. 5.6 → 5.7 , 5.7 → 8.0 , ... – It’s recommended upgrading to the latest 5.7 release before moving to 8.0  Doing long-jumps (e.g. 5.1 → 8.0) is supported if you upgrade one release level at a time – e.g. 5.1 → 5.5 → 5.6 → 5.7 → 8.0  Direct upgrades that skip a release level (for example, upgrading directly from MySQL 5.5 to 8.0) is not recommended  Yon can not upgrade from DMR to GA 17 © 2020 Oracle MySQL
  • 18. MySQL Upgrade – Before you start !  Review "Changes in MySQL 8.0" for changes that may require action before upgrading – https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html  Review "What Is New in MySQL 8.0" for added / deprecated / removed features – https://dev.mysql.com/doc/refman/8.0/en/mysql-nutshell.html  Review "Server and Status Variables and Options Added, Deprecated, or Removed in MySQL 8.0" – If you use deprecated or removed variables, an upgrade may require configuration changes. – https://dev.mysql.com/doc/refman/8.0/en/added-deprecated-removed.html  Review "Release Notes" for information about fixes, changes, and new features – https://dev.mysql.com/doc/relnotes/mysql/8.0/en/  Create a plan for your upgrade/downgrade path 18 © 2020 Oracle MySQL https://dev.mysql.com/doc/refman/8.0/en/upgrade-before-you-begin.html
  • 19. MySQL 8.0 Defaults Changes - Samples  There are a lot of changes to the defaults in 8.0, see – https://mysqlserverteam.com/new-defaults-in-mysql-8-0/  Use “MySQL Parameters” website: – https://mysql-params.tmtms.net/mysqld/  Some important ones: – Default character set and collation to utf8mb4 and utf8mb4_0900_ai_ci – The default/preferred authentication plugin caching_sha2_password – log_bin has been changed from OFF to ON 19 © 2020 Oracle MySQL
  • 20. (Some) New Servers Default’s in MySQL 8.0  charset_set_server = utf8mb4  collation_server = utf8mb4_0900_ai_ci  event_scheduler = ON  log_bin = ON  server_id = 1  Log-slave-updates = ON  expire_log_days = 30  Master-info-repository = TABLE  Relay-log-info-repository = TABLE  Transaction-write-set-extraction = XXHASH64  … and many more, see link below for more details – https://mysqlserverteam.com/new-defaults-in-mysql-8-0/ 20 © 2020 Oracle MySQL
  • 21. MySQL 8.0 Deprecation/Removals - Samples  Features removed – Query Cache, Non-native partitioning, ...  Options and variables removed – Log_errors/log_warnings replaced by log_error_verbosity – SQL Modes removed – https://dev.mysql.com/doc/refman/8.0/en/added-deprecated-removed.html  Account management – The PASSWORD() function has been removed, using GRANT to create users is no longer supported  Syntaxes affected – EXTENDED and PARTITIONS keywords for EXPLAIN removed – N as a synonym for NULL in SQL removed. Use NULL instead 21 © 2020 Oracle MySQL
  • 22. Before you Upgrade – Backups of Your Data!  Database upgrading is very serious work! – So backup your data!  Plan for the worst - Paranoia is not always a bad things – So backup your data!  Use your favorite backup tool – MySQL Enterprise Backup – dumpInstance() / dumpSchema() / loadDump() from MySQL Shell ● For MySQL Server 5.7 & 8.0 – mysqldump / mysqlpump – …  Double check your backups  Test your Restore procedure 22 © 2020 Oracle MySQL Credit: https://tricyclefish.com/wp-content/uploads/2016/01/back-up1.jpg
  • 23. MySQL Enterprise Backup 23 © 2020 Oracle MySQL
  • 24. MySQL Enterprise Backup  Online, non-locking backup and recovery – Complete MySQL instance backup (data and config) – Full & Partial backup and restore  Direct Cloud storage backups (S3, etc.)  Incremental backups & Point-in-time recovery  Advanced compressed and Strong encryption: AES 256  Backup to tape (SBT)  Backup validation  Optimistic backups  Cross-Platform (Windows, Linux, Unix)  Certified with Oracle Secure Backup, NetBackup, Tivoli, ... 24 © 2020 Oracle MySQL Ensure availability of end-user data
  • 25. Instance Dump Utility Schema Dump Utility Dump Loading Utility 25 © 2020 Oracle MySQL
  • 26. MySQL Shell dump utilities - dumpInstance & dumpSchemas  Logical Dump Utilities from MySQL Shell (start with MySQL Shell 8.0.21) – Instance dump: util.dumpInstance() ● Dump an entire database instance, including users – Schema dump: util.dumpSchemas() ● Dump a set of schemas – Support the export of all schemas or a selected schema from an on-premise MySQL server instance into a set of local files or an Oracle Cloud Infrastructure Object Storage bucket – The schemas can then be imported into a MySQL Database Service DB System using MySQL Shell's new dump loading utility – Provide Oracle Cloud Infrastructure Object Storage streaming, MySQL Database Service compatibility checks and modifications, parallel dumping with multiple threads, and file compression 26 © 2020 Oracle MySQL Export data from a MySQL instance into a set of local files or an OCI Object Storage bucket https://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-utilities-dump-instance-schema.html
  • 27. MySQL Shell load utility - loadDump  Logical Load Utility from MySQL Shell (start with MySQL Shell 8.0.21) – Load a dump: util.loadDump() ● Load a dump into a target database – Support the import of schemas dumped using MySQL Shell's new instance dump utility and schema dump utility into a MySQL instance or a MySQL Database Service DB System – The dump loading utility provides data streaming from remote storage, parallel loading of tables or table chunks, progress state tracking, resume and reset capability, and the option of concurrent loading while the dump is taking place 27 © 2020 Oracle MySQL Import into a MySQL Server instance or a MySQL Database Service DB System of schemas dumped https://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-utilities-load-dump.html
  • 28. Is your MySQL server instance ready for upgrade? 28 © 2020 Oracle MySQL
  • 29. Is your MySQL server instance ready for upgrade?  Preliminary checks... – Usage of old temporal type? – Conflicting db object names and reserved keywords? – Usage of utf8mb3 charset? – Reserved tablenames in mysql schema? – FK names longer than 64 chars? – Usage of obsolete sql_mode? – ENUM/SET column definitions containing elements longer than 255 characters? – Usage of partitioned tables in shared tablespaces? – Usage of removed functions? – Usage of removed GROUP BY ASC/DESC? – Issues reported by ”check table x for upgrade” command? – ... 29 © 2020 Oracle MySQL https://dev.mysql.com/doc/refman/8.0/en/upgrade-prerequisites.html
  • 30. Upgrade Checker Utility 30 © 2020 Oracle MySQL Credit: http://images.clipartpanda.com/superman-clipart-spiderman-logo-clip-art.jpg
  • 31. MySQL Shell Upgrade Checker Utility - checkForServerUpgrade  Utility from MySQL Shell (start with MySQL Shell 8.0.13) – JS> util.checkForServerUpgrade()  Will check your MySQL 5.7 or 8.0 installation readiness for upgrade – Check for legacy issues – Run the tool on the 5.7 before upgrading! - Users can make changes when time permits before the upgrade – Always use latest version of MySQL Shell  It is in active development and more checks will be added  Privileges needed: – Since 8.0.21: RELOAD, PROCESS & SELECT 31 © 2020 Oracle MySQL https://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-utilities-upgrade.html Examples: mysqlsh -- util check-for-server-upgrade { --user=root --host=172.25.0.10 } mysqlsh -e "util.checkForServerUpgrade({user:'root', host:'172.25.0.10'})" MYSQL JS> util.checkForServerUpgrade("root@172.25.0.10", {outputFormat:'JSON'}) Upgrade checker utility that enables you to verify whether MySQL server instances are ready for upgrade
  • 32. 32 © 2020 Oracle MySQL
  • 33. 33 © 2020 Oracle MySQL Ready to Upgrade o/
  • 34. Just one more thing… 34 Copyright © 2020, Oracle and/or its affiliates. All rights reserved.
  • 35. 35 © 2020 Oracle MySQL Did I mention BACKUP?
  • 36. In-place Upgrade 36 © 2020 Oracle MySQL
  • 37. In-Place Upgrade  An in-place upgrade involves: – Shutting down the old MySQL server – Replacing the old MySQL binaries or packages with the new ones – Restarting MySQL on the existing data directory – Upgrading any remaining parts of the existing installation that require upgrading ● mysql_upgrade with MySQL versions <= 8.0.15 37 © 2020 Oracle MySQL https://dev.mysql.com/doc/refman/8.0/en/upgrade-binary-package.html#upgrade-procedure-inplace
  • 38. MySQL Upgrade – In-place Upgrade 1. Do all necessary preparations/plans/upgrade checker as explained earlier ● e.g. mysqlsh -- util check-for-server-upgrade { --user=admin --host=172.25.0.10 } 2. Create a backup of your MySQL instance (data, logs, config files) 3. Do a graceful shutdown of MySQL (innodb_fast_shutdown=0) 4. Upgrade MySQL 8.0 - replace the old binaries with the new ones 5. Start the new MySQL 8.0 instance using the new binaries and the new my.cnf 6. Check messages in the error log 7. Verify that apps and services are working as expected 38 © 2020 Oracle MySQL
  • 39. What you’ll see in the error log  Example upgrade from 8.0.17 to 8.0.19 2019-10-15T12:44:14.308874Z mysqld_safe Logging to 'mysqld.err'. 2019-10-15T12:44:14.338620Z mysqld_safe Starting mysqld daemon with databases from data 2019-10-15T12:44:14.371936Z 0 [Warning] [MY-010139] [Server] Changed limits: max_open_files: 1024 (requested 8161) 2019-10-15T12:44:14.371948Z 0 [Warning] [MY-010142] [Server] Changed limits: table_open_cache: 431 (requested 4000) 2019-10-15T12:44:14.636779Z 0 [System] [MY-010116] [Server] mysqld (mysqld 8.0.18) starting as process 18741 2019-10-15T12:44:23.388628Z 4 [System] [MY-013381] [Server] Server upgrade from '80017' to '80018' started. 2019-10-15T12:44:39.925381Z 4 [System] [MY-013381] [Server] Server upgrade from '80017' to '80018' completed. 2019-10-15T12:44:40.153931Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed. 2019-10-15T12:44:40.194680Z 0 [System] [MY-010931] [Server] mysqld: ready for connections. Version: '8.0.18' socket: '/tmp/mysql.sock' port: 3306 MySQL Server. 2019-10-15T12:44:40.422575Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Socket: '/tmp/mysqlx.sock' bind-address: '::' port: 33060 2019-10-15T12:45:06.909992Z 0 [System] [MY-010910] [Server] mysqld: Shutdown complete (mysqld 8.0.18) MySQL Server. 2020-01-14T11:09:48.878286Z mysqld_safe Logging to 'mysqld.err'. 2020-01-14T11:09:48.898560Z mysqld_safe Starting mysqld daemon with databases from data 2020-01-14T11:09:48.906717Z 0 [Warning] [MY-010139] [Server] Changed limits: max_open_files: 1024 (requested 8161) 2020-01-14T11:09:48.906726Z 0 [Warning] [MY-010142] [Server] Changed limits: table_open_cache: 431 (requested 4000) 2020-01-14T11:09:49.741917Z 0 [System] [MY-010116] [Server] mysqld (mysqld 8.0.19) starting as process 26998 2020-01-14T11:10:08.740404Z 4 [System] [MY-013381] [Server] Server upgrade from '80018' to '80019' started. 2020-01-14T11:10:49.289995Z 4 [System] [MY-013381] [Server] Server upgrade from '80018' to '80019' completed. 2020-01-14T11:10:50.147909Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed. 2020-01-14T11:10:50.249474Z 0 [System] [MY-010931] [Server] mysqld: ready for connections. Version: '8.0.19' socket: '/tmp/mysql.sock' port: 3306 MySQL Server. 2020-01-14T11:10:50.384503Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Socket: '/tmp/mysqlx.sock' bind-address: '::' port: 33060 41 © 2020 Oracle MySQL
  • 40. Logical Upgrade 42 © 2020 Oracle MySQL
  • 41. Logical Upgrade  A logical upgrade involves: – Exporting SQL from the old MySQL instance using an utility such as ● MySQL Shell Dump utilities : dumpInstance, dumpSchemas ● mysqldump ● mysqlpump – Installing the new MySQL server – Applying the SQL to your new MySQL instance 43 © 2020 Oracle MySQL https://dev.mysql.com/doc/refman/8.0/en/upgrade-binary-package.html#upgrade-procedure-logical
  • 42. MySQL Upgrade – Logical Upgrade 1. Do all necessary preparations/plans/upgrade checker as explained earlier ● e.g. mysqlsh -- util check-for-server-upgrade { --user=admin --host=172.25.0.10 } 2. Create a dump of your MySQL instance (data, logs, config files) ● Don’t forget your stored routines and your Event Scheduler events 3. Shutdown your MySQL Server 4. Do a clean installation of the new MySQL Server version - Initialize a new data directory ● Copy the temporary 'root'@'localhost' password displayed to your screen or written to your error log for later use 5. Start the new MySQL 8.0 instance using the new binaries and the new my.cnf 6. Reset the root password ● ALTER USER USER() IDENTIFIED BY 'new password'; 7. Load the dump into the new MySQL server instance 8. Restart the MySQL Server with the --upgrade=FORCE option to perform the remaining upgrade tasks 9. Check messages in the error log 10.Verify that apps and services are working as expected 44 © 2020 Oracle MySQL
  • 43. 45 © 2020 Oracle MySQL Troubleshooting
  • 45. caching_sha2_password  caching_sha2_password : new default Authentication plugin in 8.0 – Requires password exchange using a secure connection ● TCP using TLS/SSL credentials, ● a Unix socket file, or shared memory, ● or an unencrypted connection that supports password exchange using an RSA key pair – Then cached a copy of the password hash in memory – MySQL 5.7 default is mysql_native_password ● Relies on SHA1 algorithm and NIST has suggested to stop using it 47 © 2020 Oracle MySQL
  • 46. caching_sha2_password  New users created in MySQL 8.0 will use the caching_sha2_password as their authentication plugin – User accounts already created in existing instances are not altered as a part of an upgrade 48 © 2020 Oracle MySQL Examples: Existing users who wish to switch to caching_sha2_password ALTER USER 'daz'@'localhost' IDENTIFIED WITH caching_sha2_password BY '<password>';
  • 47. caching_sha2_password - Troubleshooting  If you encounter compatibility issues after upgrading to MySQL 8.0 the simplest way to address those issues is to reconfigure the server to revert to the previous default authentication plugin, mysql_native_password : Example: [mysqld] default_authentication_plugin = mysql_native_password  This setting should be viewed as temporary, not as a long term or permanent solution  More details – https://mysqlserverteam.com/mysql-8-0-4-new-default-authentication-plugin-caching_sha2_password/ – https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html#upgrade-caching-sha2-password 49 © 2020 Oracle MySQL
  • 48. 50 © 2020 Oracle MySQL Keep in Mind
  • 49. MySQL Upgrade – Keep in mind!  Performance/Scalability monitoring and testing – Consider MySQL Enterprise Monitor – Monitor resource usage (iostat, top, vmstat etc)  Do you need to consider rolling upgrade with MySQL Replication or InnoDB Cluster – Primary: 5.7 → Replicas/Secondaries: 8.0  Changes in default values  Statements creating warnings/errors  New optimizer features causing query plan changes  Upgrade connectors as well  Extensive TESTS and a controlled BACKUP / RESTORE process are your best insurance 51 © 2020 Oracle MySQL
  • 50. MySQL Enterprise Monitor 52 © 2020 Oracle MySQL
  • 51. MySQL Enterprise Monitor  See a central view of the complete MySQL env  Real-time MySQL performance and availability monitoring  Visually find & fix problem queries with the Query Analyzer  Alerts through email or text message  Disk monitoring for capacity planning  Replications monitoring  Role based access controls  Cloud friendly architecture – No agents required – Policy driven configuration – Easy integration with DevOps tools 53 © 2020 Oracle MySQL A DBA’s assistant: Visualize problems and tuning opportunities.
  • 52. MySQL Enterprise Monitor – Query Analyzer  Real-time query performance  Visual correlation graphs  Find & fix expensive queries  Detailed query statistics  Query Response Time index (QRTi) – "Quality of Service" (QoS) measurement for each query – QoS measurement for a server, group, or every instance – Single metric for query performance 54 © 2020 Oracle MySQL Visual Query Analysis “With the MySQL Query Analyzer, we were able to identify and analyze problematic SQL code, and triple our database performance. More importantly, we were able to accomplish this in three days, rather than taking weeks.” Keith Souhrada Software Development Engineer Big Fish Games
  • 53. MySQL Enterprise Monitor – Best Practice Advisors  Enforce MySQL best practices  14 Advisor categories  250+ Advisors  Threshold-based alerts – Exponential moving averages – Rate change detection  Expert problem resolution advice 55 © 2020 Oracle MySQL Provide a set of rules designed to enforce MySQL best practices “I definitely recommend the MySQL Enterprise Monitor to DBAs who don't have a ton of MySQL experience. It makes monitoring MySQL security, performance and availability very easy to understand and to act on.” Sandi Barr Sr. Software Engineer Schneider Electric
  • 54. 56 © 2020 Oracle MySQL Wrap-Up
  • 55. MySQL Upgrade – Recap  PREPARE your upgrade (release notes, resources)  Preliminary CHECKS – DO run the Upgrade Checker Utility : util.checkForServerUpgrade() – Fix issues until it runs clean  TEST your applications on MySQL 8.0 – Replication can help – Source : 5.7 → Secondary : 8.0  DO your BACKUP  UPGRADE to MySQL 8.0  Post CHECKS – logs, data consistency, performance, behavior of the application, ... 57 © 2020 Oracle MySQL
  • 56. MySQL Enterprise Edition 58 © 2020 Oracle MySQL https://youtu.be/CtRIc6Hsia8
  • 57. MySQL Enterprise Edition 59 © 2020 Oracle MySQL Oracle Premier Lifetime Support Oracle Product Certifications/IntegrationsMySQL Enterprise High Availability MySQL Enterprise Security MySQL Enterprise Scalability MySQL Enterprise Backup MySQL Enterprise Monitor/Query Analyzer MySQL Enterprise Audit Highest Levels of MySQL Security, Manageability and Reliability
  • 58. MySQL Enterprise Edition 60 © 2020 Oracle MySQL Management ToolsAdvanced Features Support • Authentication • Audit • Encryption / TDE • Firewall • Data Masking • High Availability • Monitoring • Backup • Development • Administration • Migration • Technical Support • Consultative Support • Oracle Certifications Highest Levels of MySQL Security, Manageability and Reliability
  • 59. MySQL Enterprise Edition  MySQL Enterprise Authentication – External Authentication Modules ● Microsoft AD, Linux PAMs, Native LDAP  MySQL Enterprise Encryption – Public/Private Key Cryptography – Asymmetric Encryption – Digital Signatures, Data Validation  MySQL Enterprise Firewall – Block SQL Injection Attacks – Intrusion Detection  MySQL Enterprise Audit – User Activity Auditing, Regulatory Compliance  MySQL Enterprise Monitor – Changes in Database Configurations, Users Permissions, Database Schema, Passwords  MySQL Enterprise Backup – Securing Backups, AES 256 encryption  MySQL Enterprise TDE – AES 256 encryption – Key Management  MySQL Enterprise De-Identification – Data Masking and Obfuscation – Formatted Data Randomization – Pseudonymization, Data Blacklists – Random Data generation 61 © 2020 Oracle MySQL
  • 60. MySQL Enterprise Support  Largest MySQL engineering and support organization  Backed by the MySQL developers  World-class support, in 29 languages  Hot fixes & maintenance releases  24x7x365  Unlimited incidents  Consultative support  Global scale and reach 62 © 2020 Oracle MySQL Get immediate help for any MySQL issue, plus expert advice Get immediate help for any MySQL issue, plus expert advice https://www.mysql.com/fr/support/
  • 61. MySQL Enterprise Consultative Support  Remote troubleshooting  Replication review  Partitioning review  Schema review  Query review  Performance tuning  ...and more 63 © 2020 Oracle MySQL https://www.mysql.com/fr/support/consultative.html Make the Most of your Deployments
  • 62. References 1/2  https://dev.mysql.com/doc/refman/8.0/en/upgrading.html  https://mysqlserverteam.com/inplace-upgrade-from-mysql-5-7-to-mysql-8-0/  https://mysqlserverteam.com/upgrading-to-mysql-8-0-here-is-what-you-need-to-know/  https://mysqlserverteam.com/upgrading-to-mysql-8-0-with-spatial-data/  https://mysqlserverteam.com/upgrading-your-mysql-server-farm/  https://mysqlserverteam.com/mysql-8-0-collations-migrating-from-older-collations/  https://mysqlserverteam.com/new-defaults-in-mysql-8-0/  https://mysqlserverteam.com/whats-new-in-mysql-8-0-generally-available/  https://mysqlserverteam.com/the-complete-list-of-new-features-in-mysql-8-0/  https://mysqlserverteam.com/mysql-shell-8-0-4-introducing-upgrade-checker-utility/  https://mysqlserverteam.com/mysql-shell-dump-load-part-1-demo/  https://mysqlserverteam.com/mysql-shell-dump-load-part-2-benchmarks/  https://mysqlserverteam.com/mysql-shell-dump-load-part-3-load-dump/  https://mysqlserverteam.com/mysql-shell-8-0-21-speeding-up-the-dump-process/ 64 © 2020 Oracle MySQL
  • 63. References 2/2  MySQL Server Team Blog http://mysqlserverteam.com/  MySQL High Availability Blog http://mysqlhighavailability.com/  MySQL Release Engineering Blog https://mysqlrelease.com/  MySQL Dev Team Blog https://insidemysql.com/  MySQL Enterprise Team Blogs https://blogs.oracle.com/mysql/ 65 © 2020 Oracle MySQL  Lefred’s blog https://lefred.be/  Dimitri’s blog http://dimitrik.free.fr/blog/  Andrew’s blog https://thesubtlepath.com/blog/  Olivier Dasini’s blog http://dasini.net/blog/en  Olivier's MySQL Channel https://youtube.com/channel/UC12TulyJsJZHoCmby3Nm3WQ
  • 64. 66 © 2020 Oracle MySQL Questions? olivier.dasini@oracle.com
  • 65. Thank you 67 © 2020 Oracle MySQL Olivier Dasini MySQL Principal Solutions Architect EMEA olivier.dasini@oracle.com Twitter : @freshdaz Blog : http://dasini.net/blog/en