SlideShare a Scribd company logo
MySQL 8 vs MariaDB 10.4
Alkin Tezuysal
Sr. Technical Manager
Feb 6th 2020 - Webinar
Who am I?
@ask_dba - Alkin Tezuysal
Born to Sail, Forced to
Work
 Open Source Database Evangelist
 Global Database Operations
Expert
 Cloud Infrastructure Architect
AWS
 Inspiring Technical and Strategic
Leader
 Creative Team Builder
 Speaker, Mentor, and Coach
© 2020 Percona2
Agenda
 Installation
 Authentication
 Storage Engines
 Clustering Options
 Routing and Proxy
 Security and Encryption
 Backup and Recovery
 Performance and Benchmarks
3 © 2020 Percona
Installation -
MySQL 8
❖ Straight forward MySQL Yum repos
➢ Oracle Linux, Red Hat Enterprise Linux,
CentOS
➢ Also available Debian packages
❖ Fedora provides RPM packages
 MySQL server, client, MySQL Workbench,
MySQL Utilities, MySQL Router, MySQL
Shell, Connector/ODBC, Connector/Python
© 2020 Percona4
Installation -
MySQL 8
$curl https://dev.mysql.com/get/mysql80-community-
release-el7-3.noarch.rpm
$sudo yum localinstall mysql80-community-release-el7-
3.noarch.rpm
$sudo yum install mysql-community-server
$sudo grep 'temporary password' /var/log/mysqld.log
$mysql -uroot -p
> ALTER USER 'root'@'localhost' IDENTIFIED BY
'MyNewPass4!';
© 2020 Percona5
Installation -
MySQL 8
(Debian)
Download the repository package from:
https://dev.mysql.com/get/mysql-apt-config_0.8.14-
1_all.deb
shell> sudo dpkg -i mysql-apt-config_0.8.14-1_all.deb
Set up the version you want to install
and
shell> sudo apt update
shell> sudo apt-get install mysql-community-server
© 2020 Percona6
Installation -
MySQL 8
1. The server is initialized.
2. SSL certificate and key files are generated in
the data directory.
3. validate_password policy is installed and
enabled: The default password policy
implemented by validate_password requires
that passwords contain at least one upper case
letter, one lower case letter, one digit, and one
special character, and that the total password
length is at least 8 characters.
© 2020 Percona7
Installation
MariaDB 10.4
 Downloadable script to install
$curl -sS
https://downloads.mariadb.com/MariaDB/mariadb_re
po_setup | sudo bash
$sudo yum install MariaDB-server MariaDB-client
MariaDB-shared MariaDB-backup MariaDB-common
$sudo systemctl start mariadb
$sudo journalctl -f -u mariadb
© 2020 Percona8
Installation
MariaDB 10.4
(Debian)
 Downloadable script to install
sudo apt-get install software-properties-common
dirmngr
sudo apt-key adv --recv-keys --keyserver
keyserver.ubuntu.com 0xF1656F24C74CD1D8
sudo add-apt-repository 'deb [arch=amd64]
http://mirror.biznetgio.com/mariadb/repo/10.4/de
bian buster main'
sudo apt update
sudo apt install mariadb-server
© 2020 Percona9
Authentication
- MySQL 8
 A superuser account 'root'@'localhost
is created.
 A password for the superuser is set
and stored in the error log file.
 Single authentication method per user
© 2020 Percona10
Authentication -
MariaDB 10.4
 Multiple Authentication Methods per Account
 The root user is created with both
mysql_native_password and the unix_socket
auth plugin.
 unix_socket matches your OS uid with a mysql
user.
 mysql_native_password auth creates an
“INVALID” password change with SET
PASSWORD() classic approach.
© 2020 Percona11
Storage Engines
- MySQL 8
 FEDERATED
 MEMORY
 InnoDB
 Performance_Schema
 MyISAM
 MRG_MYISAM
 BLACKHOLE
 CSV
 ARCHIVE
© 2020 Percona12
Storage Engines
- MariaDB 10.4
Default Installation (8)
❖ CSV
❖ MRG_MyISAM
❖ MEMORY
❖ Aria
❖ MyISAM
❖ SEQUENCE
❖ InnoDB
❖ PERFORMANCE_SCHEMA
Plugins (6)
 TokuDB
 RocksDB
 Spider
 Connect
 OQGRAPH
 Mroonga
© 2020 Percona13
Clustering
Options
MySQL 8
 InnoDB Cluster which
consists of:
 Group Replication
(available as a plugin)
 MySQL Shell
 MySQL Router
MariaDB 10.4
 MariaDB Galera Cluster:
 Galera 4 (available in
a separate package)
© 2020 Percona14
Routing & Proxy
MySQL 8
 MySQL Router (GPLv2)
[CE/EE]
 3rd Party ProxySQL
MariaDB 10.4
 Maxscale (2.X versions
are using the BSL licence)
© 2020 Percona15
Security and
Encryption -
MySQL 8
 (Data-at-Rest) Encryption
 MySQL System Tablespace Encryption
 General Tablespace Encryption
 Undo log
 Redo log
 Binary and relay log encryption
 Audit log
 Keyring
 keyring_file
 keyring_encrypted_file [E]
 keyring_okv [E]
 keyring_aws [E]
 HashiCorp Vault Keyring [E]
© 2020 Percona16
Security and
Encryption -
MariaDB 10.4
 (TDE) Transparent Data Encryption
 Everything including all tables
 Individual tables
 Everything, excluding individual tables
 Key Management and Encryption Plugin
 Data-at-rest with Encryption Key Management
 File Key Management
 AWS Key Management
 Eperi Key Management
 Plugin API
© 2020 Percona17
Security and
Encryption - HC
Vault
MySQL 8
 In MySQL 8.0.18
available as an Enterprise
plugin
 3rd Party
 Percona Server 5.7
and 8.0
MariaDB 10.4
 MariaDB 10.4 has a
feature request
© 2020 Percona18
Data Masking
MySQL 8
 MySQL Enterprise Data
Masking and De-
Identification [EE only
feature]
 3rd Party:
 Inexpensive
Datamasking for
MySQL with
ProxySQL [CE]
MariaDB 10.4
 Data masking by using
MaxScale proxy
© 2020 Percona19
Auditing
MySQL 8
 MySQL Enterprise Audit
[EE]
 3rd Party
 Percona Audit Log
Plugin
MariaDB 10.4
 MariaDB Audit Plugin
© 2020 Percona20
Backup and
Recovery
MySQL 8
 Mysqldump
 Mysqlpump
 MySQL Enterprise
Backup [EE]
 The Clone Plugin (8.0.17)
 3rd Party
 Percona XtraBackup
[CE]
 Mydumper
MariaDB 10.4
 Mysqldump
 Mariabackup
 3rd Party
 Mydumper
© 2020 Percona21
Key Default
Variables
MySQL 8 MariaDB 10.4
innodb_autoinc_lock_mode=2 innodb_autoinc_lock_mode=1
log_bin=ON log_bin=OFF
max_allowed_packet=64M max_allowed_packet=16M
open_files_limit=10000 open_files_limit=4186
Query cache removed:
https://mysqlserverteam.com/mysql-8-0-retiring-
support-for-the-query-cache/
query_cache_type=off
But
query_cache_limit=1M
table_open_cache_instances=16 table_open_cache_instances=8
table_open_cache=4000 table_open_cache=2000
© 2020 Percona22
Key Default
Variables
MySQL 8 MariaDB 10.4
thread_cache_size=9 thread_cache_size=151
binlog_format=ROW binlog_format=MIXED
binlog_group_commit_sync_delay ---
DEPRECATED innodb_locks_unsafe_for_binlog
log_slave_updates=ON log_slave_updates=OFF
sync_binlog=1 sync_binlog=0
sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRA
NS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE
,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_S
UBSTITUTION
sql_mode=STRICT_TRANS_TABLES,ERROR_FOR_
DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,N
O_ENGINE_SUBSTITUTION
© 2020 Percona23
Performance
and Benchmarks
Thanks to Dimitri Kravchuk for providing
 Information on Benchmarks
 Blog
 Talks
 Twitter
© 2020 Percona24
Benchmarks -
MySQL
Ref:http://dimitrik.free.fr/Presentations/MySQL_Perf-PLIVE19-EU-dim.pdf
© 2020 Percona25
Benchmarks -
MySQL
Ref:http://dimitrik.free.fr/Presentations/MySQL_Perf-PLIVE19-EU-dim.pdf
© 2020 Percona26
Benchmarks -
MySQL
Ref:http://dimitrik.free.fr/Presentations/MySQL_Perf-PLIVE19-EU-dim.pdf
© 2020 Percona27
Benchmarks -
MySQL
Ref:http://dimitrik.free.fr/Presentations/MySQL_Perf-PLIVE19-EU-dim.pdf
© 2020 Percona28
Benchmarks -
MariaDB
Ref:http://dimitrik.free.fr/Presentations/MySQL_Perf-PLIVE19-EU-dim.pdf
© 2020 Percona29
Benchmarks -
MariaDB
Ref:http://dimitrik.free.fr/Presentations/MySQL_Perf-PLIVE19-EU-dim.pdf
© 2020 Percona30
Conclusion -
MySQL 8
❖ 8.0.0 to 8.0.5 Several Bugs Fixed
❖ 8.0.11 Deprecates uft8mb3
❖ 8.0.12 Improves performance_schema defaults
❖ 8.0.13 Major deprecations InnoDB, Partitioning
❖ 8.0.14 Dual passwords, Lateral Derived Tables, Parallel Read of
Index , GR Consistency Levels
❖ 8.0.15 Bugs Fixed
➢ InnoDB: After a checkpoint operation persisted modifications to
data dictionary metadata, there was potential for new metadata
changes to be lost under certain circumstances. (Bug
#29120297)
➢ Group Replication was unable to function in the 8.0.14 release of
MySQL Server if IPv6 support was disabled at the operating
system level, even if the replication group did not use any IPv6
addresses. The issue is fixed by this release of MySQL Server,
8.0.15. (Bug #29249542, Bug #94004)
❖ If MySQL was running on the host system and within Docker, it
was not possible to update or remove MySQL on the host system.
(Bug #28244773, Bug #91405)8.0.0 to 8.0.11 several bug fixes
❖ 8.0.16 Account-management capabilities, deprecation of
mysql_upgrade, Check Constraints, GR Auto Re-Join
❖ 8.0.17 Clone Plugin, JSON Array Indexes and Schema
❖ 8.0.18 Hash Join, Explain Analyze
31 © 2020 Percona
Conclusion -
MariaDB 10.4
 Authentication
 The unix_socket authentication plugin is now default on Unix-like
systems, which is a major change to authentication in MariaDB
(MDEV-12484)
➢ User password expiry (MDEV-7597)
➢ Account Locking (MDEV-13095)
➢ ...more
❖ InnoDB
 Added instant DROP COLUMN and changing of the order of columns
(MDEV-15562)
 More Instant VARCHAR extension or
ROW_FORMAT=DYNAMIC and ROW_FORMAT=COMPACT
(MDEV-15563)
➢ Reduced redo log volume for undo tablespace initialization
(MDEV-17138)
➢ Removed crash-upgrade support for pre-10.2.19 TRUNCATE
TABLE (MDEV-13564)
❖ Optimizer
➢ Implementation of the optimizer trace, one can enable the
optimizer trace by enabling the system variable optimizer_trace
(MDEV-6111)
❖ GaleraRef:https://mariadb.com/kb/en/library/changes-improvements-in-mariadb-104/
© 2020 Percona32
Special Thanks
to...
 Daniel Guzman Burgos
 Stephen Thorn
 Hrvoje Matijakovic
 Sveta Smirnova @svetsmirnova
 Engineering, Experts and Services Teams at Percona
© 2020 Percona33
Credits &
References
Q&A
https://www.percona.com/doc/percona-server/8.0/feature_comparison.html
https://mariadb.com/kb/en/library/changes-improvements-in-mariadb-
104/#new-features-in-galera-4
34 © 2020 Percona
Open Source Database Experts

More Related Content

PPTX
Mysql 8 vs Mariadb 10.4 Highload++ 2019
PDF
How to upgrade like a boss to MySQL 8.0 - PLE19
PDF
Introduction to Vitess on Kubernetes for MySQL - Webinar
PPTX
How to upgrade like a boss to my sql 8.0?
PPTX
Myrocks in the wild wild west! FOSDEM 2020
PPTX
MariaDB Enterprise & MariaDB Enterprise Cluster - MariaDB Webinar July 2014
PDF
20171104 hk-py con-mysql-documentstore_v1
PPTX
Ansible MySQL MHA
Mysql 8 vs Mariadb 10.4 Highload++ 2019
How to upgrade like a boss to MySQL 8.0 - PLE19
Introduction to Vitess on Kubernetes for MySQL - Webinar
How to upgrade like a boss to my sql 8.0?
Myrocks in the wild wild west! FOSDEM 2020
MariaDB Enterprise & MariaDB Enterprise Cluster - MariaDB Webinar July 2014
20171104 hk-py con-mysql-documentstore_v1
Ansible MySQL MHA

What's hot (20)

PDF
Meet MariaDB Server 10.1 London MySQL meetup December 2015
PPTX
2020 pre fosdem mysql clone
PDF
Using MySQL in Automated Testing
PDF
Lessons from database failures
PDF
Meet MariaDB 10.1 at the Bulgaria Web Summit
PPTX
The New MariaDB Offering: MariaDB 10, MaxScale and More
PDF
Securing your MySQL / MariaDB Server data
PDF
MySQL features missing in MariaDB Server
PPTX
MariaDB und mehr - MariaDB Roadshow Summer 2014 Hamburg Berlin Frankfurt
PDF
High Performance Drupal with MariaDB
PPTX
Tips to drive maria db cluster performance for nextcloud
PDF
Webseminar: MariaDB Enterprise und MariaDB Enterprise Cluster
PPT
Top 15 MySQL parameters
PDF
Best practices for MySQL/MariaDB Server/Percona Server High Availability
PDF
MySQL Performance Best Practices
PDF
MariaDB - the "new" MySQL is 5 years old and everywhere (LinuxCon Europe 2015)
PDF
MySQL Security
PDF
Databases in the hosted cloud
PDF
Better encryption & security with MariaDB 10.1 & MySQL 5.7
PDF
Cool MariaDB Plugins
Meet MariaDB Server 10.1 London MySQL meetup December 2015
2020 pre fosdem mysql clone
Using MySQL in Automated Testing
Lessons from database failures
Meet MariaDB 10.1 at the Bulgaria Web Summit
The New MariaDB Offering: MariaDB 10, MaxScale and More
Securing your MySQL / MariaDB Server data
MySQL features missing in MariaDB Server
MariaDB und mehr - MariaDB Roadshow Summer 2014 Hamburg Berlin Frankfurt
High Performance Drupal with MariaDB
Tips to drive maria db cluster performance for nextcloud
Webseminar: MariaDB Enterprise und MariaDB Enterprise Cluster
Top 15 MySQL parameters
Best practices for MySQL/MariaDB Server/Percona Server High Availability
MySQL Performance Best Practices
MariaDB - the "new" MySQL is 5 years old and everywhere (LinuxCon Europe 2015)
MySQL Security
Databases in the hosted cloud
Better encryption & security with MariaDB 10.1 & MySQL 5.7
Cool MariaDB Plugins
Ad

Similar to Mysql 8 vs Mariadb 10.4 Webinar 2020 Feb (20)

PDF
Differences between MariaDB 10.3 & MySQL 8.0
PPTX
Mysql ecosystem in 2019
PDF
MySQL Ecosystem in 2020
PDF
MySQL Ecosystem in 2023 - FOSSASIA'23 - Alkin.pptx.pdf
PDF
MariaDB 10.1 what's new and what's coming in 10.2 - Tokyo MariaDB Meetup
PDF
MySQL Ecosystem in 2018
PDF
Webinar - Key Reasons to Upgrade to MySQL 8.0 or MariaDB 10.11
PDF
MariaDB Server Compatibility with MySQL
PDF
MariaDB Amsterdam Roadshow: 19 September, 2024
PDF
DebConf 2020: What’s New in MariaDB Server 10.5 and Galera 4?
PDF
The MySQL ecosystem - understanding it, not running away from it!
PDF
How to migrate from MySQL to MariaDB without tears
PDF
[db tech showcase Tokyo 2014] B15: Scalability with MariaDB and MaxScale by ...
PDF
Percona Server for MySQL 8.0 @ Percona Live 2019
PDF
What is MariaDB Server 10.3?
PDF
MariaDB 10: A MySQL Replacement - HKOSC
PDF
MariaDB: in-depth (hands on training in Seoul)
PDF
The Complete MariaDB Server Tutorial - Percona Live 2015
PDF
MariaDB 10 and what's new with the project
PDF
Mariadb10 和新项目中有什么
Differences between MariaDB 10.3 & MySQL 8.0
Mysql ecosystem in 2019
MySQL Ecosystem in 2020
MySQL Ecosystem in 2023 - FOSSASIA'23 - Alkin.pptx.pdf
MariaDB 10.1 what's new and what's coming in 10.2 - Tokyo MariaDB Meetup
MySQL Ecosystem in 2018
Webinar - Key Reasons to Upgrade to MySQL 8.0 or MariaDB 10.11
MariaDB Server Compatibility with MySQL
MariaDB Amsterdam Roadshow: 19 September, 2024
DebConf 2020: What’s New in MariaDB Server 10.5 and Galera 4?
The MySQL ecosystem - understanding it, not running away from it!
How to migrate from MySQL to MariaDB without tears
[db tech showcase Tokyo 2014] B15: Scalability with MariaDB and MaxScale by ...
Percona Server for MySQL 8.0 @ Percona Live 2019
What is MariaDB Server 10.3?
MariaDB 10: A MySQL Replacement - HKOSC
MariaDB: in-depth (hands on training in Seoul)
The Complete MariaDB Server Tutorial - Percona Live 2015
MariaDB 10 and what's new with the project
Mariadb10 和新项目中有什么
Ad

More from Alkin Tezuysal (20)

PDF
Boosting MySQL with Vector Search -THE VECTOR SEARCH CONFERENCE 2025 .pdf
PDF
Unified Observability - Alkin Tezuysal - FOSSASIA Summit March 2025 .pdf
PDF
Boosting MySQL with Vector Search Scale22X 2025.pdf
PDF
Boosting MySQL with Vector Search Fosdem 2025.pdf
PDF
London MySQL Day - Lightning Talk Dec 2024.pdf
PDF
Design and Modeling with MySQL and PostgreSQL - Percona University Istanbul S...
PDF
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
PPTX
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
PDF
FOSSASIA - MySQL Cookbook 4e Journey APR 2023.pdf
PDF
How OLTP to OLAP Archival Demystified
PDF
MySQL Cookbook: Recipes for Developers, Alkin Tezuysal and Sveta Smirnova - P...
PDF
My first 90 days with ClickHouse.pdf
PDF
KubeCon_NA_2021
PDF
Integrating best of breed open source tools to vitess orchestrator pleu21
PDF
Vitess: Scalable Database Architecture - Kubernetes Community Days Africa Ap...
PDF
How to shard MariaDB like a pro - FOSDEM 2021
PDF
Vitess - Data on Kubernetes
PDF
When is Myrocks good? 2020 Webinar Series
PPTX
When is MyRocks good?
PDF
PXC (Xtradb) Failure and Recovery
Boosting MySQL with Vector Search -THE VECTOR SEARCH CONFERENCE 2025 .pdf
Unified Observability - Alkin Tezuysal - FOSSASIA Summit March 2025 .pdf
Boosting MySQL with Vector Search Scale22X 2025.pdf
Boosting MySQL with Vector Search Fosdem 2025.pdf
London MySQL Day - Lightning Talk Dec 2024.pdf
Design and Modeling with MySQL and PostgreSQL - Percona University Istanbul S...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
FOSSASIA - MySQL Cookbook 4e Journey APR 2023.pdf
How OLTP to OLAP Archival Demystified
MySQL Cookbook: Recipes for Developers, Alkin Tezuysal and Sveta Smirnova - P...
My first 90 days with ClickHouse.pdf
KubeCon_NA_2021
Integrating best of breed open source tools to vitess orchestrator pleu21
Vitess: Scalable Database Architecture - Kubernetes Community Days Africa Ap...
How to shard MariaDB like a pro - FOSDEM 2021
Vitess - Data on Kubernetes
When is Myrocks good? 2020 Webinar Series
When is MyRocks good?
PXC (Xtradb) Failure and Recovery

Recently uploaded (20)

PDF
Looking to Work Abroad_ Here’s Why Canada is a Great Option.pdf
PDF
Digital Marketing Skills in Demand for 2025.pdf
PDF
Smart Plumbing Solutions Every Property Owner and Developer Should Know
PDF
Secure Your World with Acme Enterprises PDF Sharing.pdf
PDF
Digital marketing strategy slides .pdf
PPT
8.1 Protein energy malnutrition paedatric.ppt
PPTX
Enhancing Wastewater Treatment Efficiency with GO2™ Water Treatment Chlorine ...
PPTX
The Rise of Work-from-Home Internships.pptx
PDF
Investhill_Report OCD (2007-2024)_2025-1.pdf
PDF
Management Colleges In Delhi Ncr | Galgotias University
PPTX
Why Outsourcing Debt Collection Saves Time and Money.pptx
PDF
How to Inspect Exterior Paint for Early Signs of Summer Damage.pdf
PDF
Choosing an Entrepreneurial Path Based on Your Personality.pdf
PDF
Bisleri vs Coca Cola.pdf intellectual property rights
PDF
The Dark Web’s Front Door: Finding the Real Hidden Wiki
PDF
2025 Electrician Marketing Trends Report | Destiny Marketing Solutions
PDF
Legacy Application Modernisation Services.pdf
PDF
The Role of Testing and QA in Successful Mobile App Development_Spinx Infotec...
PDF
Risk Assessment Survey of the Esarbica 2025.pdf
PDF
Sustainable Fire Safety How AMCs Contribute to a Greener Future.pdf
Looking to Work Abroad_ Here’s Why Canada is a Great Option.pdf
Digital Marketing Skills in Demand for 2025.pdf
Smart Plumbing Solutions Every Property Owner and Developer Should Know
Secure Your World with Acme Enterprises PDF Sharing.pdf
Digital marketing strategy slides .pdf
8.1 Protein energy malnutrition paedatric.ppt
Enhancing Wastewater Treatment Efficiency with GO2™ Water Treatment Chlorine ...
The Rise of Work-from-Home Internships.pptx
Investhill_Report OCD (2007-2024)_2025-1.pdf
Management Colleges In Delhi Ncr | Galgotias University
Why Outsourcing Debt Collection Saves Time and Money.pptx
How to Inspect Exterior Paint for Early Signs of Summer Damage.pdf
Choosing an Entrepreneurial Path Based on Your Personality.pdf
Bisleri vs Coca Cola.pdf intellectual property rights
The Dark Web’s Front Door: Finding the Real Hidden Wiki
2025 Electrician Marketing Trends Report | Destiny Marketing Solutions
Legacy Application Modernisation Services.pdf
The Role of Testing and QA in Successful Mobile App Development_Spinx Infotec...
Risk Assessment Survey of the Esarbica 2025.pdf
Sustainable Fire Safety How AMCs Contribute to a Greener Future.pdf

Mysql 8 vs Mariadb 10.4 Webinar 2020 Feb

  • 1. MySQL 8 vs MariaDB 10.4 Alkin Tezuysal Sr. Technical Manager Feb 6th 2020 - Webinar
  • 2. Who am I? @ask_dba - Alkin Tezuysal Born to Sail, Forced to Work  Open Source Database Evangelist  Global Database Operations Expert  Cloud Infrastructure Architect AWS  Inspiring Technical and Strategic Leader  Creative Team Builder  Speaker, Mentor, and Coach © 2020 Percona2
  • 3. Agenda  Installation  Authentication  Storage Engines  Clustering Options  Routing and Proxy  Security and Encryption  Backup and Recovery  Performance and Benchmarks 3 © 2020 Percona
  • 4. Installation - MySQL 8 ❖ Straight forward MySQL Yum repos ➢ Oracle Linux, Red Hat Enterprise Linux, CentOS ➢ Also available Debian packages ❖ Fedora provides RPM packages  MySQL server, client, MySQL Workbench, MySQL Utilities, MySQL Router, MySQL Shell, Connector/ODBC, Connector/Python © 2020 Percona4
  • 5. Installation - MySQL 8 $curl https://dev.mysql.com/get/mysql80-community- release-el7-3.noarch.rpm $sudo yum localinstall mysql80-community-release-el7- 3.noarch.rpm $sudo yum install mysql-community-server $sudo grep 'temporary password' /var/log/mysqld.log $mysql -uroot -p > ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!'; © 2020 Percona5
  • 6. Installation - MySQL 8 (Debian) Download the repository package from: https://dev.mysql.com/get/mysql-apt-config_0.8.14- 1_all.deb shell> sudo dpkg -i mysql-apt-config_0.8.14-1_all.deb Set up the version you want to install and shell> sudo apt update shell> sudo apt-get install mysql-community-server © 2020 Percona6
  • 7. Installation - MySQL 8 1. The server is initialized. 2. SSL certificate and key files are generated in the data directory. 3. validate_password policy is installed and enabled: The default password policy implemented by validate_password requires that passwords contain at least one upper case letter, one lower case letter, one digit, and one special character, and that the total password length is at least 8 characters. © 2020 Percona7
  • 8. Installation MariaDB 10.4  Downloadable script to install $curl -sS https://downloads.mariadb.com/MariaDB/mariadb_re po_setup | sudo bash $sudo yum install MariaDB-server MariaDB-client MariaDB-shared MariaDB-backup MariaDB-common $sudo systemctl start mariadb $sudo journalctl -f -u mariadb © 2020 Percona8
  • 9. Installation MariaDB 10.4 (Debian)  Downloadable script to install sudo apt-get install software-properties-common dirmngr sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xF1656F24C74CD1D8 sudo add-apt-repository 'deb [arch=amd64] http://mirror.biznetgio.com/mariadb/repo/10.4/de bian buster main' sudo apt update sudo apt install mariadb-server © 2020 Percona9
  • 10. Authentication - MySQL 8  A superuser account 'root'@'localhost is created.  A password for the superuser is set and stored in the error log file.  Single authentication method per user © 2020 Percona10
  • 11. Authentication - MariaDB 10.4  Multiple Authentication Methods per Account  The root user is created with both mysql_native_password and the unix_socket auth plugin.  unix_socket matches your OS uid with a mysql user.  mysql_native_password auth creates an “INVALID” password change with SET PASSWORD() classic approach. © 2020 Percona11
  • 12. Storage Engines - MySQL 8  FEDERATED  MEMORY  InnoDB  Performance_Schema  MyISAM  MRG_MYISAM  BLACKHOLE  CSV  ARCHIVE © 2020 Percona12
  • 13. Storage Engines - MariaDB 10.4 Default Installation (8) ❖ CSV ❖ MRG_MyISAM ❖ MEMORY ❖ Aria ❖ MyISAM ❖ SEQUENCE ❖ InnoDB ❖ PERFORMANCE_SCHEMA Plugins (6)  TokuDB  RocksDB  Spider  Connect  OQGRAPH  Mroonga © 2020 Percona13
  • 14. Clustering Options MySQL 8  InnoDB Cluster which consists of:  Group Replication (available as a plugin)  MySQL Shell  MySQL Router MariaDB 10.4  MariaDB Galera Cluster:  Galera 4 (available in a separate package) © 2020 Percona14
  • 15. Routing & Proxy MySQL 8  MySQL Router (GPLv2) [CE/EE]  3rd Party ProxySQL MariaDB 10.4  Maxscale (2.X versions are using the BSL licence) © 2020 Percona15
  • 16. Security and Encryption - MySQL 8  (Data-at-Rest) Encryption  MySQL System Tablespace Encryption  General Tablespace Encryption  Undo log  Redo log  Binary and relay log encryption  Audit log  Keyring  keyring_file  keyring_encrypted_file [E]  keyring_okv [E]  keyring_aws [E]  HashiCorp Vault Keyring [E] © 2020 Percona16
  • 17. Security and Encryption - MariaDB 10.4  (TDE) Transparent Data Encryption  Everything including all tables  Individual tables  Everything, excluding individual tables  Key Management and Encryption Plugin  Data-at-rest with Encryption Key Management  File Key Management  AWS Key Management  Eperi Key Management  Plugin API © 2020 Percona17
  • 18. Security and Encryption - HC Vault MySQL 8  In MySQL 8.0.18 available as an Enterprise plugin  3rd Party  Percona Server 5.7 and 8.0 MariaDB 10.4  MariaDB 10.4 has a feature request © 2020 Percona18
  • 19. Data Masking MySQL 8  MySQL Enterprise Data Masking and De- Identification [EE only feature]  3rd Party:  Inexpensive Datamasking for MySQL with ProxySQL [CE] MariaDB 10.4  Data masking by using MaxScale proxy © 2020 Percona19
  • 20. Auditing MySQL 8  MySQL Enterprise Audit [EE]  3rd Party  Percona Audit Log Plugin MariaDB 10.4  MariaDB Audit Plugin © 2020 Percona20
  • 21. Backup and Recovery MySQL 8  Mysqldump  Mysqlpump  MySQL Enterprise Backup [EE]  The Clone Plugin (8.0.17)  3rd Party  Percona XtraBackup [CE]  Mydumper MariaDB 10.4  Mysqldump  Mariabackup  3rd Party  Mydumper © 2020 Percona21
  • 22. Key Default Variables MySQL 8 MariaDB 10.4 innodb_autoinc_lock_mode=2 innodb_autoinc_lock_mode=1 log_bin=ON log_bin=OFF max_allowed_packet=64M max_allowed_packet=16M open_files_limit=10000 open_files_limit=4186 Query cache removed: https://mysqlserverteam.com/mysql-8-0-retiring- support-for-the-query-cache/ query_cache_type=off But query_cache_limit=1M table_open_cache_instances=16 table_open_cache_instances=8 table_open_cache=4000 table_open_cache=2000 © 2020 Percona22
  • 23. Key Default Variables MySQL 8 MariaDB 10.4 thread_cache_size=9 thread_cache_size=151 binlog_format=ROW binlog_format=MIXED binlog_group_commit_sync_delay --- DEPRECATED innodb_locks_unsafe_for_binlog log_slave_updates=ON log_slave_updates=OFF sync_binlog=1 sync_binlog=0 sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRA NS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE ,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_S UBSTITUTION sql_mode=STRICT_TRANS_TABLES,ERROR_FOR_ DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,N O_ENGINE_SUBSTITUTION © 2020 Percona23
  • 24. Performance and Benchmarks Thanks to Dimitri Kravchuk for providing  Information on Benchmarks  Blog  Talks  Twitter © 2020 Percona24
  • 31. Conclusion - MySQL 8 ❖ 8.0.0 to 8.0.5 Several Bugs Fixed ❖ 8.0.11 Deprecates uft8mb3 ❖ 8.0.12 Improves performance_schema defaults ❖ 8.0.13 Major deprecations InnoDB, Partitioning ❖ 8.0.14 Dual passwords, Lateral Derived Tables, Parallel Read of Index , GR Consistency Levels ❖ 8.0.15 Bugs Fixed ➢ InnoDB: After a checkpoint operation persisted modifications to data dictionary metadata, there was potential for new metadata changes to be lost under certain circumstances. (Bug #29120297) ➢ Group Replication was unable to function in the 8.0.14 release of MySQL Server if IPv6 support was disabled at the operating system level, even if the replication group did not use any IPv6 addresses. The issue is fixed by this release of MySQL Server, 8.0.15. (Bug #29249542, Bug #94004) ❖ If MySQL was running on the host system and within Docker, it was not possible to update or remove MySQL on the host system. (Bug #28244773, Bug #91405)8.0.0 to 8.0.11 several bug fixes ❖ 8.0.16 Account-management capabilities, deprecation of mysql_upgrade, Check Constraints, GR Auto Re-Join ❖ 8.0.17 Clone Plugin, JSON Array Indexes and Schema ❖ 8.0.18 Hash Join, Explain Analyze 31 © 2020 Percona
  • 32. Conclusion - MariaDB 10.4  Authentication  The unix_socket authentication plugin is now default on Unix-like systems, which is a major change to authentication in MariaDB (MDEV-12484) ➢ User password expiry (MDEV-7597) ➢ Account Locking (MDEV-13095) ➢ ...more ❖ InnoDB  Added instant DROP COLUMN and changing of the order of columns (MDEV-15562)  More Instant VARCHAR extension or ROW_FORMAT=DYNAMIC and ROW_FORMAT=COMPACT (MDEV-15563) ➢ Reduced redo log volume for undo tablespace initialization (MDEV-17138) ➢ Removed crash-upgrade support for pre-10.2.19 TRUNCATE TABLE (MDEV-13564) ❖ Optimizer ➢ Implementation of the optimizer trace, one can enable the optimizer trace by enabling the system variable optimizer_trace (MDEV-6111) ❖ GaleraRef:https://mariadb.com/kb/en/library/changes-improvements-in-mariadb-104/ © 2020 Percona32
  • 33. Special Thanks to...  Daniel Guzman Burgos  Stephen Thorn  Hrvoje Matijakovic  Sveta Smirnova @svetsmirnova  Engineering, Experts and Services Teams at Percona © 2020 Percona33