SlideShare a Scribd company logo
1 of 84
Download to read offline
How to Migrate from MySQL to MariaDB
without Tears
September 14-16, 2020
Sveta Smirnova
• MySQL Support Engineer
• Author of
• MySQL Troubleshooting
• JSON UDF functions
•
FILTER clause for MySQL
• Speaker
• Percona Live, OOW, Fosdem,
DevConf, HighLoad...
Sveta Smirnova
2
•Initial Setup
•Authentication
•Replication
•SQL Differences
•Functional Differences
•Diagnostics
Table of Contents
3
• Started as fork of MySQL
MariaDB
4
• Started as fork of MySQL
• Independent product
MariaDB
4
• Started as fork of MySQL
• Independent product
• Hundreds of unique features
MariaDB
4
• Started as fork of MySQL
• Independent product
• Hundreds of unique features
• Important improvements are backported
•
from MySQL
MariaDB
4
Initial Setup
• Check version compatibility
MySQL MariaDB
5.1 5.1, 5.2, 5.3
5.5 5.5
5.6 10.0, 10.1
5.7 10.2, 10.3, 10.4, 10.5
8.0 -
Drop-in Replacement
6
• Check version compatibility
• Stop MySQL Server
Drop-in Replacement
6
• Check version compatibility
• Stop MySQL Server
• Install MariaDB
Drop-in Replacement
6
• Check version compatibility
• Stop MySQL Server
• Install MariaDB
•
Point MariaDB to MySQL datadir
Drop-in Replacement
6
• Check version compatibility
• Stop MySQL Server
• Install MariaDB
•
Point MariaDB to MySQL datadir
•
Start MariaDB
Drop-in Replacement
6
• Check version compatibility
• Stop MySQL Server
• Install MariaDB
•
Point MariaDB to MySQL datadir
•
Start MariaDB
•
Run mariadb-upgrade
Drop-in Replacement
6
• Before upgrade
$ ls -w100 data/mysql/
columns_priv.frm gtid_executed.ibd proc.MYD slow_log.CSV
columns_priv.MYD help_category.frm proc.MYI slow_log.frm
columns_priv.MYI help_category.ibd procs_priv.frm tables_priv.frm
db.frm help_keyword.frm procs_priv.MYD tables_priv.MYD
db.MYD help_keyword.ibd procs_priv.MYI tables_priv.MYI
db.MYI help_relation.frm proxies_priv.frm time_zone.frm
db.opt help_relation.ibd proxies_priv.MYD time_zone.ibd
engine_cost.frm help_topic.frm proxies_priv.MYI time_zone_leap_second.frm
engine_cost.ibd help_topic.ibd server_cost.frm time_zone_leap_second.ibd
event.frm innodb_index_stats.frm server_cost.ibd time_zone_name.frm
event.MYD innodb_index_stats.ibd servers.frm time_zone_name.ibd
event.MYI innodb_table_stats.frm servers.ibd time_zone_transition.frm
func.frm innodb_table_stats.ibd slave_master_info.frm time_zone_transition.ibd
...
System Database Changes
7
• After upgrade
$ ls -w100 data/mysql/
columns_priv.frm gtid_executed.ibd proc.frm slow_log.frm
columns_priv.MAD gtid_slave_pos.frm proc.MAD tables_priv.frm
columns_priv.MAI gtid_slave_pos.ibd proc.MAI tables_priv.MAD
column_stats.frm help_category.frm procs_priv.frm tables_priv.MAI
column_stats.MAD help_category.MAD procs_priv.MAD table_stats.frm
column_stats.MAI help_category.MAI procs_priv.MAI table_stats.MAD
db.frm help_keyword.frm proxies_priv.frm table_stats.MAI
db.MAD help_keyword.MAD proxies_priv.MAD time_zone.frm
db.MAI help_keyword.MAI proxies_priv.MAI time_zone_leap_second.frm
db.opt help_relation.frm roles_mapping.frm time_zone_leap_second.MAD
engine_cost.frm help_relation.MAD roles_mapping.MAD time_zone_leap_second.MAI
engine_cost.ibd help_relation.MAI roles_mapping.MAI time_zone.MAD
event.frm help_topic.frm server_cost.frm time_zone.MAI
...
System Database Changes
7
• Specific MariaDB features
• • Storage engines
•
SQL statements
• Options
• Just use them
Differences
8
• Specific MariaDB features
• Specific MySQL features
• • SQL statements
•
Plugins
• They are missed
Differences
8
• Specific MariaDB features
• Specific MySQL features
• Features, present in both products
• • Working differently
•
Our focus today
Differences
8
Authentication
• MySQL
•
–initialize
• mysql_install_db deprecated, removed in 8.0
Initial Setup
10
• MySQL
•
–initialize
• mysql_install_db deprecated, removed in 8.0
• MariaDB
•
Only mysql_install_db
Initial Setup
10
• Supported plugins
•
MySQL
Native
Caching SHA-2 - Default in 8.0
SHA-256
Cleartext
No-login
Socket Peer-Credential
Authentication Plugins
11
• Supported plugins
•
MariaDB
mysql_native_password
mysql_old_password
SHA-256 - Client only!
ed25519
GSSAPI
PAM
Named Pipe
Unix Socket
Authentication Plugins
11
• Supported plugins
• User management SQL is same
Authentication Plugins
11
• Supported plugins
• User management SQL is same
• MariaDB supports multiple plugins per account
Authentication Plugins
11
• MySQL
•
validate_password plugin
Deprecated!
•
validate_password component
mysql> SHOW VARIABLES LIKE ’validate_password%’;
+––––––––––––––––––––––––––––––––––––––+––––––––+
| Variable_name | Value |
+––––––––––––––––––––––––––––––––––––––+––––––––+
| validate_password_check_user_name | ON |
| validate_password_dictionary_file | |
| validate_password_length | 8 |
| validate_password_mixed_case_count | 1 |
| validate_password_number_count | 1 |
| validate_password_policy | MEDIUM |
| validate_password_special_char_count | 1 |
+––––––––––––––––––––––––––––––––––––––+––––––––+
Password Validation
12
• MariaDB
• Password Validation Plugin API
• Two plugins
simple_password_check
MariaDB [performance_schema]> show variables like ’simple_password_check%’;
+–––––––––––––––––––––––––––––––––––––––––+–––––––+
| Variable_name | Value |
+–––––––––––––––––––––––––––––––––––––––––+–––––––+
| simple_password_check_digits | 1 |
| simple_password_check_letters_same_case | 1 |
| simple_password_check_minimal_length | 8 |
| simple_password_check_other_characters | 1 |
+–––––––––––––––––––––––––––––––––––––––––+–––––––+
4 rows in set (0.001 sec)
Password Validation
12
• MariaDB
• Password Validation Plugin API
• Two plugins
cracklib_password_check
MariaDB [performance_schema]> show variables like ’cracklib%’;
+––––––––––––––––––––––––––––––––––––+–––––––––––––––––––––––––––––––––––+
| Variable_name | Value |
+––––––––––––––––––––––––––––––––––––+–––––––––––––––––––––––––––––––––––+
| cracklib_password_check_dictionary | /var/cache/cracklib/cracklib_dict |
+––––––––––––––––––––––––––––––––––––+–––––––––––––––––––––––––––––––––––+
1 row in set (0.001 sec)
Password Validation
12
• MySQL
• MariaDB
• Password expiration works same way
Password Validation
12
• Syntax is same
Roles
13
• Syntax is same
• MySQL
•
Details are in Information Schema
ADMINISTRABLE_ROLE_AUTHORIZATIONS
APPLICABLE_ROLES
ENABLED_ROLES
ROLE_COLUMN_GRANTS
ROLE_ROUTINE_GRANTS
ROLE_TABLE_GRANTS
Roles
13
• Syntax is same
• MySQL
• Stored in mysql
user
role_edges
mysql> select * from mysql.role_edgesG
*************************** 1. row ***************************
FROM_HOST: %
FROM_USER: my_role
TO_HOST: %
TO_USER: sveta
WITH_ADMIN_OPTION: N
1 row in set (0.00 sec)
default_roles
Roles
13
• Syntax is same
• MariaDB
• Details are in Information Schema
APPLICABLE_ROLES
ENABLED_ROLES
Roles
13
• Syntax is same
• MariaDB• Stored in mysql
user
roles_mapping
MariaDB [information_schema]> select * from mysql.roles_mappingG
*************************** 1. row ***************************
Host: localhost
User: root
Role: my_role
Admin_option: Y
*************************** 2. row ***************************
Host: %
User: sveta
Role: my_role
Admin_option: N
2 rows in set (0.001 sec)
Roles
13
• Syntax is same
• MariaDB
•
The role automatically available for the grantor
Roles
13
Replication
• Compatible
• Can work any way around
No GTIDs
15
• Compatible
• Can work any way around
• Unless data types are incompatible
•
Before 8.0!
No GTIDs
15
• Implementation is different
• MariaDB understands MySQL GTIDs
• MySQL does not accept MariaDB GTIDs
•
Only replication from MySQL is possible!
GTIDs
16
• Different concurrency control
Multi-threaded Replication
17
• Different concurrency control
• MySQL: slave_parallel_workers
Multi-threaded Replication
17
• Different concurrency control
• MySQL: slave_parallel_workers
• MySQL: slave_parallel_type=DATABASE | LOGICAL_CLOCK
• MYSQL: binlog_transaction_dependency_tracking =
COMMIT_ORDER | WRITESET | WRITESET_SESSION
Multi-threaded Replication
17
• Different concurrency control
•
MariaDB: slave_parallel_threads
Multi-threaded Replication
17
• Different concurrency control
•
MariaDB: slave_parallel_threads
• MariaDB: slave_parallel_max_queued
Multi-threaded Replication
17
• Different concurrency control
•
MariaDB: slave_parallel_threads
• MariaDB: slave_parallel_max_queued
• MariaDB: slave_domain_parallel_threads
Multi-threaded Replication
17
• Different concurrency control
•
MariaDB: slave_parallel_threads
• MariaDB: slave_parallel_max_queued
• MariaDB: slave_domain_parallel_threads
• MariaDB: slave_parallel_mode=optimistic | conservative |
aggressive | minimal | none
Multi-threaded Replication
17
• Different syntax for the source name
• CHANGE MASTER
• MySQL
CHANGE MASTER TO MASTER_HOST=’source1’ FOR CHANNEL ’source_1’;
• MariaDB
CHANGE MASTER ’source_1’ TO MASTER_HOST=’source1’;
Multi-source Replication
18
• Different syntax for the source name
• Slave status
• MySQL
SHOW SLAVE STATUS FOR CHANNEL ’source1’;
SELECT * FROM performance_schema.replication_connection_status WHERE
CHANNEL_NAME=’source_1’;
Default is for all channels
• MariaDB
SHOW SLAVE ’source_1’ STATUS
SHOW ALL SLAVES STATUS
Default is default connection
Multi-source Replication
18
SQL Differences
• MySQL
mysql> explain analyze select * from ol where thread_id=10432 and site_id != 9939
-> order by id limit 3G
*************************** 1. row ***************************
EXPLAIN: -> Limit: 3 row(s) (actual time=364.792..364.792 rows=0 loops=1)
-> Filter: ((ol.thread_id = 10432) and (ol.site_id <> 9939)) (cost=0.06 rows=3)
(actual time=364.789..364.789 rows=0 loops=1)
-> Index scan on ol using PRIMARY (cost=0.06 rows=33)
(actual time=0.417..337.585 rows=100000 loops=1)
ANALYZE
20
• MariaDB
MariaDB [test]> analyze select * from ol
-> where thread_id=10432 and site_id != 9939 order by id limit 3G
*************************** 1. row ***************************
...
type: index
possible_keys: thread_id
key: PRIMARY
key_len: 4
ref: const
rows: 100000
r_rows: 100000.00
filtered: 8.96
r_filtered: 0.00
Extra: Using where
ANALYZE
20
• MySQL
mysql> show processlistG
*************************** 1. row ***************************
Id: 2
User: root
Host: localhost:41352
db: test
Command: Query
Time: 37
State: User sleep
Info: select sleep(100)
Rows_sent: 0
Rows_examined: 0
...
EXPLAIN for Running Thread
21
• MySQL
mysql> explain for connection 2G
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: NULL
partitions: NULL
type: NULL
possible_keys: NULL
key: NULL
key_len: NULL
ref: NULL
rows: NULL
filtered: NULL
Extra: No tables used
1 row in set (0.00 sec)
EXPLAIN for Running Thread
21
• MariaDB
MariaDB [(none)]> show processlistG
*************************** 1. row ***************************
Id: 3
User: root
Host: localhost:51126
db: test
Command: Query
Time: 2
State: User sleep
Info: select sleep(30)
Progress: 0.000
EXPLAIN for Running Thread
21
• MariaDB
MariaDB [(none)]> show explain for 3G
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: NULL
type: NULL
possible_keys: NULL
key: NULL
key_len: NULL
ref: NULL
rows: NULL
Extra: No tables used
1 row in set, 1 warning (25.718 sec)
EXPLAIN for Running Thread
21
• MariaDB
MariaDB [(none)]> show processlistG
*************************** 1. row ***************************
Id: 3
User: root
Host: localhost:51126
db: test
Command: Query
Time: 2
State: User sleep
Info: select sleep(40)
Progress: 0.000
...
MariaDB [(none)]> show explain for 3G
ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction
EXPLAIN for Running Thread
21
• MySQL
•
Only histograms
• Collected on demand
Histograms and Table-Independent Statistics
22
• MySQL
•
Only histograms
• Collected on demand
• MariaDB
•
Histograms collected and used by default
• Other
Collected on demand
Used by default
Histograms and Table-Independent Statistics
22
Functional Differences
• MySQL
• Special data type
• Functions, not available in MariaDB
JSON_OVERLAPS
JSON_PRETTY
JSON_STORAGE_FREE
JSON_STORAGE_SIZE
JSON_TABLE
JSON
24
• MySQL
• MariaDB
• Data type JSON mapped to LONGTEXT
CHECK (JSON_VALID(...)) automatically enabled if JSON alias is used
• Functions, not available in MySQL
JSON_COMPACT
JSON_DETAILED
JSON_EXISTS
JSON_LOOSE
JSON_QUERY
JSON_VALUE
JSON
24
• MySQL
• MariaDB
• Replication
• Statement-based works fine
• Row-based
Convert MySQL JSON data type to LONGTEXT
JSON
24
• "SQL with Geometry Types" of OGC
•
Both MySQL and MariaDB
• Not all MySQL GIS functions are in MariaDB
GIS
25
• MySQL
•
Full Unicode support since 8.0.4
ICU library
• Extended regex syntax
Regular Expressions
26
• MySQL
•
Full Unicode support since 8.0.4
ICU library
• Extended regex syntax
• MariaDB
•
Full Unicode support since 10.5
• PCRE syntax
Regular Expressions
26
• MySQL
•
Full Unicode support since 8.0.4
ICU library
• Extended regex syntax
• MariaDB
•
Full Unicode support since 10.5
• PCRE syntax
• REGEXP_LIKE only in MySQL
Regular Expressions
26
• Character set gb18030 only in MySQL
• MariaDB has more collations
• MariaDB supports not all MySQL collations
Localization
27
Diagnostics
• MySQL
•
In Performance Schema
mysql> SELECT EVENT_NAME, WORK_COMPLETED, WORK_ESTIMATED
-> FROM performance_schema.events_stages_current where event_name like ’%alter%’;
+––––––––––––––––––––––––––––––––––––––––––––––––––––––+––––––––––––––––+––––––––––––––––+
| EVENT_NAME | WORK_COMPLETED | WORK_ESTIMATED |
+––––––––––––––––––––––––––––––––––––––––––––––––––––––+––––––––––––––––+––––––––––––––––+
| stage/innodb/alter table (read PK and internal sort) | 488 | 8512 |
...
| stage/innodb/alter table (read PK and internal sort) | 9396 | 9396 |
+––––––––––––––––––––––––––––––––––––––––––––––––––––––+––––––––––––––––+––––––––––––––––+
1 row in set (0.00 sec)
Progress for ALTER TABLE
29
• MariaDB
•
In Information Schema
MariaDB [information_schema]> select stage, max_stage, progress
-> from processlist where info like ’alter table%’;
+–––––––+–––––––––––+––––––––––+
| stage | max_stage | progress |
+–––––––+–––––––––––+––––––––––+
| 1 | 2 | 46.881 |
...
| 1 | 2 | 68.103 |
...
| 1 | 2 | 83.452 |
+–––––––+–––––––––––+––––––––––+
1 row in set (0.001 sec)
Progress for ALTER TABLE
29
• MariaDB
• In SHOW PROCESSLIST
MariaDB [information_schema]> show processlistG
*************************** 1. row ***************************
Id: 5
User: root
Host: localhost:53616
db: employees
Command: Query
Time: 4
State: copy to tmp table
Info: alter table salaries engine=innodb
Progress: 31.510
Progress for ALTER TABLE
29
• MariaDB
• In the supporting client
MariaDB [employees]> alter table salaries engine=innodb;
Stage: 1 of 2 ’copy to tmp table’ 73.4% of stage done
Progress for ALTER TABLE
29
• Tables, which MariaDB misses
• Locks
data_lock_waits
data_locks
MariaDB: in Information Schema SE_*
Performance Schema
30
• Tables, which MariaDB misses
• Variables
global_variables - MariaDB: in I_S
session_variables - MariaDB: in I_S
variables_by_thread - MariaDB: do not exist
variables_info - MariaDB: I_S.SYSTEM_VARIABLES
Performance Schema
30
• Tables, which MariaDB misses
• Replication
replication_applier_filters
replication_applier_global_filters
replication_applier_status_by_worker
replication_connection_status
MariaDB: SHOW SLAVE STATUS
Performance Schema
30
• Tables, which MariaDB misses
•
Errors
events_errors_summary_by_account_by_error
events_errors_summary_by_host_by_error
events_errors_summary_by_thread_by_error
events_errors_summary_by_user_by_error
events_errors_summary_global_by_error
Performance Schema
30
• Tables, which MariaDB misses
• Statements histograms
events_statements_histogram_by_digest
events_statements_histogram_global
Performance Schema
30
• Tables, which MariaDB misses
• User-defined functions
user_defined_functions
MariaDB: mysql.func
Performance Schema
30
• Tables, which MariaDB misses
• Binary log status and LSN
log_status
MariaDB: SHOW MASTER STATUS and SHOW ENGINE INNODB STATUS
Performance Schema
30
• Initial upgrade is straightforward
• Feature differences are easily solvable
• MariaDB has options which simplify migration
•
Migrate to explore all MariaDB advantages!
Conclusions
31
•
Migrating to MariaDB from MySQL
MariaDB vs MySQL: Features
Function Difference
Replication Compatibility Matrix
Optimizer Features Comparison Matrix
Spatial Support Matrix
More Details
32
www.slideshare.net/SvetaSmirnova
twitter.com/svetsmirnova
github.com/svetasmirnova
Thank you!
33
DATABASE PERFORMANCE
MATTERS

More Related Content

What's hot

MySQL Performance for DevOps
MySQL Performance for DevOpsMySQL Performance for DevOps
MySQL Performance for DevOpsSveta Smirnova
 
MySQL Performance Schema in Action
MySQL Performance Schema in ActionMySQL Performance Schema in Action
MySQL Performance Schema in ActionSveta Smirnova
 
Introduction into MySQL Query Tuning for Dev[Op]s
Introduction into MySQL Query Tuning for Dev[Op]sIntroduction into MySQL Query Tuning for Dev[Op]s
Introduction into MySQL Query Tuning for Dev[Op]sSveta Smirnova
 
MySQL Performance Schema in Action
MySQL Performance Schema in ActionMySQL Performance Schema in Action
MySQL Performance Schema in ActionSveta Smirnova
 
Why MySQL Replication Fails, and How to Get it Back
Why MySQL Replication Fails, and How to Get it BackWhy MySQL Replication Fails, and How to Get it Back
Why MySQL Replication Fails, and How to Get it BackSveta Smirnova
 
Performance Schema in Action: demo
Performance Schema in Action: demoPerformance Schema in Action: demo
Performance Schema in Action: demoSveta Smirnova
 
Managing MariaDB Server operations with Percona Toolkit
Managing MariaDB Server operations with Percona ToolkitManaging MariaDB Server operations with Percona Toolkit
Managing MariaDB Server operations with Percona ToolkitSveta Smirnova
 
Lessons Learned: Troubleshooting Replication
Lessons Learned: Troubleshooting ReplicationLessons Learned: Troubleshooting Replication
Lessons Learned: Troubleshooting ReplicationSveta Smirnova
 
Percona Live 2012PPT: introduction-to-mysql-replication
Percona Live 2012PPT: introduction-to-mysql-replicationPercona Live 2012PPT: introduction-to-mysql-replication
Percona Live 2012PPT: introduction-to-mysql-replicationmysqlops
 
Fosdem2012 replication-features-of-2011
Fosdem2012 replication-features-of-2011Fosdem2012 replication-features-of-2011
Fosdem2012 replication-features-of-2011Sergey Petrunya
 
Preparse Query Rewrite Plugins
Preparse Query Rewrite PluginsPreparse Query Rewrite Plugins
Preparse Query Rewrite PluginsSveta Smirnova
 
MySQL Replication Troubleshooting for Oracle DBAs
MySQL Replication Troubleshooting for Oracle DBAsMySQL Replication Troubleshooting for Oracle DBAs
MySQL Replication Troubleshooting for Oracle DBAsSveta Smirnova
 
Easy MySQL Replication Setup and Troubleshooting
Easy MySQL Replication Setup and TroubleshootingEasy MySQL Replication Setup and Troubleshooting
Easy MySQL Replication Setup and TroubleshootingBob Burgess
 
MongoDB Engines: Demystified
MongoDB Engines: DemystifiedMongoDB Engines: Demystified
MongoDB Engines: DemystifiedSveta Smirnova
 
MySQL Performance Tuning Variables
MySQL Performance Tuning VariablesMySQL Performance Tuning Variables
MySQL Performance Tuning VariablesFromDual GmbH
 
MySQL 8 for Developers
MySQL 8 for DevelopersMySQL 8 for Developers
MySQL 8 for DevelopersGeorgi Sotirov
 
MySQL 5.7 innodb_enhance_partii_20160527
MySQL 5.7 innodb_enhance_partii_20160527MySQL 5.7 innodb_enhance_partii_20160527
MySQL 5.7 innodb_enhance_partii_20160527Saewoong Lee
 
MySQL 5.7 - What's new and How to upgrade
MySQL 5.7 - What's new and How to upgradeMySQL 5.7 - What's new and How to upgrade
MySQL 5.7 - What's new and How to upgradeAbel Flórez
 
Mini Session - Using GDB for Profiling
Mini Session - Using GDB for ProfilingMini Session - Using GDB for Profiling
Mini Session - Using GDB for ProfilingEnkitec
 
My sql 5.7-upcoming-changes-v2
My sql 5.7-upcoming-changes-v2My sql 5.7-upcoming-changes-v2
My sql 5.7-upcoming-changes-v2Morgan Tocker
 

What's hot (20)

MySQL Performance for DevOps
MySQL Performance for DevOpsMySQL Performance for DevOps
MySQL Performance for DevOps
 
MySQL Performance Schema in Action
MySQL Performance Schema in ActionMySQL Performance Schema in Action
MySQL Performance Schema in Action
 
Introduction into MySQL Query Tuning for Dev[Op]s
Introduction into MySQL Query Tuning for Dev[Op]sIntroduction into MySQL Query Tuning for Dev[Op]s
Introduction into MySQL Query Tuning for Dev[Op]s
 
MySQL Performance Schema in Action
MySQL Performance Schema in ActionMySQL Performance Schema in Action
MySQL Performance Schema in Action
 
Why MySQL Replication Fails, and How to Get it Back
Why MySQL Replication Fails, and How to Get it BackWhy MySQL Replication Fails, and How to Get it Back
Why MySQL Replication Fails, and How to Get it Back
 
Performance Schema in Action: demo
Performance Schema in Action: demoPerformance Schema in Action: demo
Performance Schema in Action: demo
 
Managing MariaDB Server operations with Percona Toolkit
Managing MariaDB Server operations with Percona ToolkitManaging MariaDB Server operations with Percona Toolkit
Managing MariaDB Server operations with Percona Toolkit
 
Lessons Learned: Troubleshooting Replication
Lessons Learned: Troubleshooting ReplicationLessons Learned: Troubleshooting Replication
Lessons Learned: Troubleshooting Replication
 
Percona Live 2012PPT: introduction-to-mysql-replication
Percona Live 2012PPT: introduction-to-mysql-replicationPercona Live 2012PPT: introduction-to-mysql-replication
Percona Live 2012PPT: introduction-to-mysql-replication
 
Fosdem2012 replication-features-of-2011
Fosdem2012 replication-features-of-2011Fosdem2012 replication-features-of-2011
Fosdem2012 replication-features-of-2011
 
Preparse Query Rewrite Plugins
Preparse Query Rewrite PluginsPreparse Query Rewrite Plugins
Preparse Query Rewrite Plugins
 
MySQL Replication Troubleshooting for Oracle DBAs
MySQL Replication Troubleshooting for Oracle DBAsMySQL Replication Troubleshooting for Oracle DBAs
MySQL Replication Troubleshooting for Oracle DBAs
 
Easy MySQL Replication Setup and Troubleshooting
Easy MySQL Replication Setup and TroubleshootingEasy MySQL Replication Setup and Troubleshooting
Easy MySQL Replication Setup and Troubleshooting
 
MongoDB Engines: Demystified
MongoDB Engines: DemystifiedMongoDB Engines: Demystified
MongoDB Engines: Demystified
 
MySQL Performance Tuning Variables
MySQL Performance Tuning VariablesMySQL Performance Tuning Variables
MySQL Performance Tuning Variables
 
MySQL 8 for Developers
MySQL 8 for DevelopersMySQL 8 for Developers
MySQL 8 for Developers
 
MySQL 5.7 innodb_enhance_partii_20160527
MySQL 5.7 innodb_enhance_partii_20160527MySQL 5.7 innodb_enhance_partii_20160527
MySQL 5.7 innodb_enhance_partii_20160527
 
MySQL 5.7 - What's new and How to upgrade
MySQL 5.7 - What's new and How to upgradeMySQL 5.7 - What's new and How to upgrade
MySQL 5.7 - What's new and How to upgrade
 
Mini Session - Using GDB for Profiling
Mini Session - Using GDB for ProfilingMini Session - Using GDB for Profiling
Mini Session - Using GDB for Profiling
 
My sql 5.7-upcoming-changes-v2
My sql 5.7-upcoming-changes-v2My sql 5.7-upcoming-changes-v2
My sql 5.7-upcoming-changes-v2
 

Similar to How to migrate from MySQL to MariaDB without tears

MariaDB 5.5 and what comes next - Percona Live NYC 2012
MariaDB 5.5 and what comes next - Percona Live NYC 2012MariaDB 5.5 and what comes next - Percona Live NYC 2012
MariaDB 5.5 and what comes next - Percona Live NYC 2012Colin Charles
 
MariaDB: in-depth (hands on training in Seoul)
MariaDB: in-depth (hands on training in Seoul)MariaDB: in-depth (hands on training in Seoul)
MariaDB: in-depth (hands on training in Seoul)Colin Charles
 
MySQL features missing in MariaDB Server
MySQL features missing in MariaDB ServerMySQL features missing in MariaDB Server
MySQL features missing in MariaDB ServerColin Charles
 
Meet MariaDB Server 10.1 London MySQL meetup December 2015
Meet MariaDB Server 10.1 London MySQL meetup December 2015Meet MariaDB Server 10.1 London MySQL meetup December 2015
Meet MariaDB Server 10.1 London MySQL meetup December 2015Colin Charles
 
Maria db the new mysql (Colin Charles)
Maria db the new mysql (Colin Charles)Maria db the new mysql (Colin Charles)
Maria db the new mysql (Colin Charles)Ontico
 
MariaDB: The 2012 Edition
MariaDB: The 2012 EditionMariaDB: The 2012 Edition
MariaDB: The 2012 EditionColin Charles
 
MariaDB - a MySQL Replacement #SELF2014
MariaDB - a MySQL Replacement #SELF2014MariaDB - a MySQL Replacement #SELF2014
MariaDB - a MySQL Replacement #SELF2014Colin Charles
 
Differences between MariaDB 10.3 & MySQL 8.0
Differences between MariaDB 10.3 & MySQL 8.0Differences between MariaDB 10.3 & MySQL 8.0
Differences between MariaDB 10.3 & MySQL 8.0Colin Charles
 
NY Meetup: Scaling MariaDB with Maxscale
NY Meetup: Scaling MariaDB with MaxscaleNY Meetup: Scaling MariaDB with Maxscale
NY Meetup: Scaling MariaDB with MaxscaleWagner Bianchi
 
Maria DB Galera Cluster for High Availability
Maria DB Galera Cluster for High AvailabilityMaria DB Galera Cluster for High Availability
Maria DB Galera Cluster for High AvailabilityOSSCube
 
MariaDB Galera Cluster
MariaDB Galera ClusterMariaDB Galera Cluster
MariaDB Galera ClusterAbdul Manaf
 
MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)
MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)
MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)Aurimas Mikalauskas
 
A26 MariaDB : The New&Implemented MySQL Branch by Colin Charles
A26 MariaDB : The New&Implemented MySQL Branch by Colin CharlesA26 MariaDB : The New&Implemented MySQL Branch by Colin Charles
A26 MariaDB : The New&Implemented MySQL Branch by Colin CharlesInsight Technology, Inc.
 
MariaDB Enterprise & MariaDB Enterprise Cluster - MariaDB Webinar July 2014
MariaDB Enterprise & MariaDB Enterprise Cluster - MariaDB Webinar July 2014MariaDB Enterprise & MariaDB Enterprise Cluster - MariaDB Webinar July 2014
MariaDB Enterprise & MariaDB Enterprise Cluster - MariaDB Webinar July 2014MariaDB Corporation
 
Meet MariaDB 10.1 at the Bulgaria Web Summit
Meet MariaDB 10.1 at the Bulgaria Web SummitMeet MariaDB 10.1 at the Bulgaria Web Summit
Meet MariaDB 10.1 at the Bulgaria Web SummitColin Charles
 
MariaDB - Fast, Easy & Strong - Get Started Tutorial
MariaDB - Fast, Easy & Strong - Get Started TutorialMariaDB - Fast, Easy & Strong - Get Started Tutorial
MariaDB - Fast, Easy & Strong - Get Started Tutorialphamhphuc
 
ProxySQL for MySQL
ProxySQL for MySQLProxySQL for MySQL
ProxySQL for MySQLMydbops
 
Höchste Datenbankleistung durch Anpassung und Optimierung
Höchste Datenbankleistung durch Anpassung und OptimierungHöchste Datenbankleistung durch Anpassung und Optimierung
Höchste Datenbankleistung durch Anpassung und OptimierungMariaDB plc
 
ScaleDB Technical Presentation
ScaleDB Technical PresentationScaleDB Technical Presentation
ScaleDB Technical PresentationIvan Zoratti
 

Similar to How to migrate from MySQL to MariaDB without tears (20)

MariaDB 5.5 and what comes next - Percona Live NYC 2012
MariaDB 5.5 and what comes next - Percona Live NYC 2012MariaDB 5.5 and what comes next - Percona Live NYC 2012
MariaDB 5.5 and what comes next - Percona Live NYC 2012
 
MariaDB: in-depth (hands on training in Seoul)
MariaDB: in-depth (hands on training in Seoul)MariaDB: in-depth (hands on training in Seoul)
MariaDB: in-depth (hands on training in Seoul)
 
MySQL features missing in MariaDB Server
MySQL features missing in MariaDB ServerMySQL features missing in MariaDB Server
MySQL features missing in MariaDB Server
 
Meet MariaDB Server 10.1 London MySQL meetup December 2015
Meet MariaDB Server 10.1 London MySQL meetup December 2015Meet MariaDB Server 10.1 London MySQL meetup December 2015
Meet MariaDB Server 10.1 London MySQL meetup December 2015
 
Maria db the new mysql (Colin Charles)
Maria db the new mysql (Colin Charles)Maria db the new mysql (Colin Charles)
Maria db the new mysql (Colin Charles)
 
MariaDB: The 2012 Edition
MariaDB: The 2012 EditionMariaDB: The 2012 Edition
MariaDB: The 2012 Edition
 
MariaDB - a MySQL Replacement #SELF2014
MariaDB - a MySQL Replacement #SELF2014MariaDB - a MySQL Replacement #SELF2014
MariaDB - a MySQL Replacement #SELF2014
 
Differences between MariaDB 10.3 & MySQL 8.0
Differences between MariaDB 10.3 & MySQL 8.0Differences between MariaDB 10.3 & MySQL 8.0
Differences between MariaDB 10.3 & MySQL 8.0
 
NY Meetup: Scaling MariaDB with Maxscale
NY Meetup: Scaling MariaDB with MaxscaleNY Meetup: Scaling MariaDB with Maxscale
NY Meetup: Scaling MariaDB with Maxscale
 
Maria DB Galera Cluster for High Availability
Maria DB Galera Cluster for High AvailabilityMaria DB Galera Cluster for High Availability
Maria DB Galera Cluster for High Availability
 
MariaDB Galera Cluster
MariaDB Galera ClusterMariaDB Galera Cluster
MariaDB Galera Cluster
 
DPC Tutorial
DPC TutorialDPC Tutorial
DPC Tutorial
 
MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)
MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)
MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)
 
A26 MariaDB : The New&Implemented MySQL Branch by Colin Charles
A26 MariaDB : The New&Implemented MySQL Branch by Colin CharlesA26 MariaDB : The New&Implemented MySQL Branch by Colin Charles
A26 MariaDB : The New&Implemented MySQL Branch by Colin Charles
 
MariaDB Enterprise & MariaDB Enterprise Cluster - MariaDB Webinar July 2014
MariaDB Enterprise & MariaDB Enterprise Cluster - MariaDB Webinar July 2014MariaDB Enterprise & MariaDB Enterprise Cluster - MariaDB Webinar July 2014
MariaDB Enterprise & MariaDB Enterprise Cluster - MariaDB Webinar July 2014
 
Meet MariaDB 10.1 at the Bulgaria Web Summit
Meet MariaDB 10.1 at the Bulgaria Web SummitMeet MariaDB 10.1 at the Bulgaria Web Summit
Meet MariaDB 10.1 at the Bulgaria Web Summit
 
MariaDB - Fast, Easy & Strong - Get Started Tutorial
MariaDB - Fast, Easy & Strong - Get Started TutorialMariaDB - Fast, Easy & Strong - Get Started Tutorial
MariaDB - Fast, Easy & Strong - Get Started Tutorial
 
ProxySQL for MySQL
ProxySQL for MySQLProxySQL for MySQL
ProxySQL for MySQL
 
Höchste Datenbankleistung durch Anpassung und Optimierung
Höchste Datenbankleistung durch Anpassung und OptimierungHöchste Datenbankleistung durch Anpassung und Optimierung
Höchste Datenbankleistung durch Anpassung und Optimierung
 
ScaleDB Technical Presentation
ScaleDB Technical PresentationScaleDB Technical Presentation
ScaleDB Technical Presentation
 

More from Sveta Smirnova

MySQL 2024: Зачем переходить на MySQL 8, если в 5.х всё устраивает?
MySQL 2024: Зачем переходить на MySQL 8, если в 5.х всё устраивает?MySQL 2024: Зачем переходить на MySQL 8, если в 5.х всё устраивает?
MySQL 2024: Зачем переходить на MySQL 8, если в 5.х всё устраивает?Sveta Smirnova
 
Database in Kubernetes: Diagnostics and Monitoring
Database in Kubernetes: Diagnostics and MonitoringDatabase in Kubernetes: Diagnostics and Monitoring
Database in Kubernetes: Diagnostics and MonitoringSveta Smirnova
 
MySQL Database Monitoring: Must, Good and Nice to Have
MySQL Database Monitoring: Must, Good and Nice to HaveMySQL Database Monitoring: Must, Good and Nice to Have
MySQL Database Monitoring: Must, Good and Nice to HaveSveta Smirnova
 
MySQL Cookbook: Recipes for Developers
MySQL Cookbook: Recipes for DevelopersMySQL Cookbook: Recipes for Developers
MySQL Cookbook: Recipes for DevelopersSveta Smirnova
 
MySQL Performance for DevOps
MySQL Performance for DevOpsMySQL Performance for DevOps
MySQL Performance for DevOpsSveta Smirnova
 
MySQL Test Framework для поддержки клиентов и верификации багов
MySQL Test Framework для поддержки клиентов и верификации баговMySQL Test Framework для поддержки клиентов и верификации багов
MySQL Test Framework для поддержки клиентов и верификации баговSveta Smirnova
 
MySQL Cookbook: Recipes for Your Business
MySQL Cookbook: Recipes for Your BusinessMySQL Cookbook: Recipes for Your Business
MySQL Cookbook: Recipes for Your BusinessSveta Smirnova
 
Производительность MySQL для DevOps
 Производительность MySQL для DevOps Производительность MySQL для DevOps
Производительность MySQL для DevOpsSveta Smirnova
 
How Safe is Asynchronous Master-Master Setup?
How Safe is Asynchronous Master-Master Setup?How Safe is Asynchronous Master-Master Setup?
How Safe is Asynchronous Master-Master Setup?Sveta Smirnova
 
Современному хайлоду - современные решения: MySQL 8.0 и улучшения Percona
Современному хайлоду - современные решения: MySQL 8.0 и улучшения PerconaСовременному хайлоду - современные решения: MySQL 8.0 и улучшения Percona
Современному хайлоду - современные решения: MySQL 8.0 и улучшения PerconaSveta Smirnova
 
How Safe is Asynchronous Master-Master Setup?
 How Safe is Asynchronous Master-Master Setup? How Safe is Asynchronous Master-Master Setup?
How Safe is Asynchronous Master-Master Setup?Sveta Smirnova
 
Billion Goods in Few Categories: How Histograms Save a Life?
Billion Goods in Few Categories: How Histograms Save a Life?Billion Goods in Few Categories: How Histograms Save a Life?
Billion Goods in Few Categories: How Histograms Save a Life?Sveta Smirnova
 
A Billion Goods in a Few Categories: When Optimizer Histograms Help and When ...
A Billion Goods in a Few Categories: When Optimizer Histograms Help and When ...A Billion Goods in a Few Categories: When Optimizer Histograms Help and When ...
A Billion Goods in a Few Categories: When Optimizer Histograms Help and When ...Sveta Smirnova
 
Что нужно знать о трёх топовых фичах MySQL
Что нужно знать  о трёх топовых фичах  MySQLЧто нужно знать  о трёх топовых фичах  MySQL
Что нужно знать о трёх топовых фичах MySQLSveta Smirnova
 
Billion Goods in Few Categories: How Histograms Save a Life?
Billion Goods in Few Categories: How Histograms Save a Life?Billion Goods in Few Categories: How Histograms Save a Life?
Billion Goods in Few Categories: How Histograms Save a Life?Sveta Smirnova
 
MySQL Performance Schema in Action
MySQL Performance Schema in ActionMySQL Performance Schema in Action
MySQL Performance Schema in ActionSveta Smirnova
 
Optimizer Histograms: When they Help and When Do Not?
Optimizer Histograms: When they Help and When Do Not?Optimizer Histograms: When they Help and When Do Not?
Optimizer Histograms: When they Help and When Do Not?Sveta Smirnova
 
Billion Goods in Few Categories: how Histograms Save a Life?
Billion Goods in Few Categories: how Histograms Save a Life?Billion Goods in Few Categories: how Histograms Save a Life?
Billion Goods in Few Categories: how Histograms Save a Life?Sveta Smirnova
 
MySQL Performance Schema in Action: the Complete Tutorial
MySQL Performance Schema in Action: the Complete TutorialMySQL Performance Schema in Action: the Complete Tutorial
MySQL Performance Schema in Action: the Complete TutorialSveta Smirnova
 

More from Sveta Smirnova (19)

MySQL 2024: Зачем переходить на MySQL 8, если в 5.х всё устраивает?
MySQL 2024: Зачем переходить на MySQL 8, если в 5.х всё устраивает?MySQL 2024: Зачем переходить на MySQL 8, если в 5.х всё устраивает?
MySQL 2024: Зачем переходить на MySQL 8, если в 5.х всё устраивает?
 
Database in Kubernetes: Diagnostics and Monitoring
Database in Kubernetes: Diagnostics and MonitoringDatabase in Kubernetes: Diagnostics and Monitoring
Database in Kubernetes: Diagnostics and Monitoring
 
MySQL Database Monitoring: Must, Good and Nice to Have
MySQL Database Monitoring: Must, Good and Nice to HaveMySQL Database Monitoring: Must, Good and Nice to Have
MySQL Database Monitoring: Must, Good and Nice to Have
 
MySQL Cookbook: Recipes for Developers
MySQL Cookbook: Recipes for DevelopersMySQL Cookbook: Recipes for Developers
MySQL Cookbook: Recipes for Developers
 
MySQL Performance for DevOps
MySQL Performance for DevOpsMySQL Performance for DevOps
MySQL Performance for DevOps
 
MySQL Test Framework для поддержки клиентов и верификации багов
MySQL Test Framework для поддержки клиентов и верификации баговMySQL Test Framework для поддержки клиентов и верификации багов
MySQL Test Framework для поддержки клиентов и верификации багов
 
MySQL Cookbook: Recipes for Your Business
MySQL Cookbook: Recipes for Your BusinessMySQL Cookbook: Recipes for Your Business
MySQL Cookbook: Recipes for Your Business
 
Производительность MySQL для DevOps
 Производительность MySQL для DevOps Производительность MySQL для DevOps
Производительность MySQL для DevOps
 
How Safe is Asynchronous Master-Master Setup?
How Safe is Asynchronous Master-Master Setup?How Safe is Asynchronous Master-Master Setup?
How Safe is Asynchronous Master-Master Setup?
 
Современному хайлоду - современные решения: MySQL 8.0 и улучшения Percona
Современному хайлоду - современные решения: MySQL 8.0 и улучшения PerconaСовременному хайлоду - современные решения: MySQL 8.0 и улучшения Percona
Современному хайлоду - современные решения: MySQL 8.0 и улучшения Percona
 
How Safe is Asynchronous Master-Master Setup?
 How Safe is Asynchronous Master-Master Setup? How Safe is Asynchronous Master-Master Setup?
How Safe is Asynchronous Master-Master Setup?
 
Billion Goods in Few Categories: How Histograms Save a Life?
Billion Goods in Few Categories: How Histograms Save a Life?Billion Goods in Few Categories: How Histograms Save a Life?
Billion Goods in Few Categories: How Histograms Save a Life?
 
A Billion Goods in a Few Categories: When Optimizer Histograms Help and When ...
A Billion Goods in a Few Categories: When Optimizer Histograms Help and When ...A Billion Goods in a Few Categories: When Optimizer Histograms Help and When ...
A Billion Goods in a Few Categories: When Optimizer Histograms Help and When ...
 
Что нужно знать о трёх топовых фичах MySQL
Что нужно знать  о трёх топовых фичах  MySQLЧто нужно знать  о трёх топовых фичах  MySQL
Что нужно знать о трёх топовых фичах MySQL
 
Billion Goods in Few Categories: How Histograms Save a Life?
Billion Goods in Few Categories: How Histograms Save a Life?Billion Goods in Few Categories: How Histograms Save a Life?
Billion Goods in Few Categories: How Histograms Save a Life?
 
MySQL Performance Schema in Action
MySQL Performance Schema in ActionMySQL Performance Schema in Action
MySQL Performance Schema in Action
 
Optimizer Histograms: When they Help and When Do Not?
Optimizer Histograms: When they Help and When Do Not?Optimizer Histograms: When they Help and When Do Not?
Optimizer Histograms: When they Help and When Do Not?
 
Billion Goods in Few Categories: how Histograms Save a Life?
Billion Goods in Few Categories: how Histograms Save a Life?Billion Goods in Few Categories: how Histograms Save a Life?
Billion Goods in Few Categories: how Histograms Save a Life?
 
MySQL Performance Schema in Action: the Complete Tutorial
MySQL Performance Schema in Action: the Complete TutorialMySQL Performance Schema in Action: the Complete Tutorial
MySQL Performance Schema in Action: the Complete Tutorial
 

Recently uploaded

Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfDrew Moseley
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLionel Briand
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfkalichargn70th171
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf31events.com
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfInnovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfYashikaSharma391629
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZABSYZ Inc
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
Patterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencePatterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencessuser9e7c64
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 

Recently uploaded (20)

Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and Repair
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
 
Advantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessAdvantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your Business
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfInnovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZ
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
Patterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencePatterns for automating API delivery. API conference
Patterns for automating API delivery. API conference
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 

How to migrate from MySQL to MariaDB without tears

  • 1. How to Migrate from MySQL to MariaDB without Tears September 14-16, 2020 Sveta Smirnova
  • 2. • MySQL Support Engineer • Author of • MySQL Troubleshooting • JSON UDF functions • FILTER clause for MySQL • Speaker • Percona Live, OOW, Fosdem, DevConf, HighLoad... Sveta Smirnova 2
  • 4. • Started as fork of MySQL MariaDB 4
  • 5. • Started as fork of MySQL • Independent product MariaDB 4
  • 6. • Started as fork of MySQL • Independent product • Hundreds of unique features MariaDB 4
  • 7. • Started as fork of MySQL • Independent product • Hundreds of unique features • Important improvements are backported • from MySQL MariaDB 4
  • 9. • Check version compatibility MySQL MariaDB 5.1 5.1, 5.2, 5.3 5.5 5.5 5.6 10.0, 10.1 5.7 10.2, 10.3, 10.4, 10.5 8.0 - Drop-in Replacement 6
  • 10. • Check version compatibility • Stop MySQL Server Drop-in Replacement 6
  • 11. • Check version compatibility • Stop MySQL Server • Install MariaDB Drop-in Replacement 6
  • 12. • Check version compatibility • Stop MySQL Server • Install MariaDB • Point MariaDB to MySQL datadir Drop-in Replacement 6
  • 13. • Check version compatibility • Stop MySQL Server • Install MariaDB • Point MariaDB to MySQL datadir • Start MariaDB Drop-in Replacement 6
  • 14. • Check version compatibility • Stop MySQL Server • Install MariaDB • Point MariaDB to MySQL datadir • Start MariaDB • Run mariadb-upgrade Drop-in Replacement 6
  • 15. • Before upgrade $ ls -w100 data/mysql/ columns_priv.frm gtid_executed.ibd proc.MYD slow_log.CSV columns_priv.MYD help_category.frm proc.MYI slow_log.frm columns_priv.MYI help_category.ibd procs_priv.frm tables_priv.frm db.frm help_keyword.frm procs_priv.MYD tables_priv.MYD db.MYD help_keyword.ibd procs_priv.MYI tables_priv.MYI db.MYI help_relation.frm proxies_priv.frm time_zone.frm db.opt help_relation.ibd proxies_priv.MYD time_zone.ibd engine_cost.frm help_topic.frm proxies_priv.MYI time_zone_leap_second.frm engine_cost.ibd help_topic.ibd server_cost.frm time_zone_leap_second.ibd event.frm innodb_index_stats.frm server_cost.ibd time_zone_name.frm event.MYD innodb_index_stats.ibd servers.frm time_zone_name.ibd event.MYI innodb_table_stats.frm servers.ibd time_zone_transition.frm func.frm innodb_table_stats.ibd slave_master_info.frm time_zone_transition.ibd ... System Database Changes 7
  • 16. • After upgrade $ ls -w100 data/mysql/ columns_priv.frm gtid_executed.ibd proc.frm slow_log.frm columns_priv.MAD gtid_slave_pos.frm proc.MAD tables_priv.frm columns_priv.MAI gtid_slave_pos.ibd proc.MAI tables_priv.MAD column_stats.frm help_category.frm procs_priv.frm tables_priv.MAI column_stats.MAD help_category.MAD procs_priv.MAD table_stats.frm column_stats.MAI help_category.MAI procs_priv.MAI table_stats.MAD db.frm help_keyword.frm proxies_priv.frm table_stats.MAI db.MAD help_keyword.MAD proxies_priv.MAD time_zone.frm db.MAI help_keyword.MAI proxies_priv.MAI time_zone_leap_second.frm db.opt help_relation.frm roles_mapping.frm time_zone_leap_second.MAD engine_cost.frm help_relation.MAD roles_mapping.MAD time_zone_leap_second.MAI engine_cost.ibd help_relation.MAI roles_mapping.MAI time_zone.MAD event.frm help_topic.frm server_cost.frm time_zone.MAI ... System Database Changes 7
  • 17. • Specific MariaDB features • • Storage engines • SQL statements • Options • Just use them Differences 8
  • 18. • Specific MariaDB features • Specific MySQL features • • SQL statements • Plugins • They are missed Differences 8
  • 19. • Specific MariaDB features • Specific MySQL features • Features, present in both products • • Working differently • Our focus today Differences 8
  • 21. • MySQL • –initialize • mysql_install_db deprecated, removed in 8.0 Initial Setup 10
  • 22. • MySQL • –initialize • mysql_install_db deprecated, removed in 8.0 • MariaDB • Only mysql_install_db Initial Setup 10
  • 23. • Supported plugins • MySQL Native Caching SHA-2 - Default in 8.0 SHA-256 Cleartext No-login Socket Peer-Credential Authentication Plugins 11
  • 24. • Supported plugins • MariaDB mysql_native_password mysql_old_password SHA-256 - Client only! ed25519 GSSAPI PAM Named Pipe Unix Socket Authentication Plugins 11
  • 25. • Supported plugins • User management SQL is same Authentication Plugins 11
  • 26. • Supported plugins • User management SQL is same • MariaDB supports multiple plugins per account Authentication Plugins 11
  • 27. • MySQL • validate_password plugin Deprecated! • validate_password component mysql> SHOW VARIABLES LIKE ’validate_password%’; +––––––––––––––––––––––––––––––––––––––+––––––––+ | Variable_name | Value | +––––––––––––––––––––––––––––––––––––––+––––––––+ | validate_password_check_user_name | ON | | validate_password_dictionary_file | | | validate_password_length | 8 | | validate_password_mixed_case_count | 1 | | validate_password_number_count | 1 | | validate_password_policy | MEDIUM | | validate_password_special_char_count | 1 | +––––––––––––––––––––––––––––––––––––––+––––––––+ Password Validation 12
  • 28. • MariaDB • Password Validation Plugin API • Two plugins simple_password_check MariaDB [performance_schema]> show variables like ’simple_password_check%’; +–––––––––––––––––––––––––––––––––––––––––+–––––––+ | Variable_name | Value | +–––––––––––––––––––––––––––––––––––––––––+–––––––+ | simple_password_check_digits | 1 | | simple_password_check_letters_same_case | 1 | | simple_password_check_minimal_length | 8 | | simple_password_check_other_characters | 1 | +–––––––––––––––––––––––––––––––––––––––––+–––––––+ 4 rows in set (0.001 sec) Password Validation 12
  • 29. • MariaDB • Password Validation Plugin API • Two plugins cracklib_password_check MariaDB [performance_schema]> show variables like ’cracklib%’; +––––––––––––––––––––––––––––––––––––+–––––––––––––––––––––––––––––––––––+ | Variable_name | Value | +––––––––––––––––––––––––––––––––––––+–––––––––––––––––––––––––––––––––––+ | cracklib_password_check_dictionary | /var/cache/cracklib/cracklib_dict | +––––––––––––––––––––––––––––––––––––+–––––––––––––––––––––––––––––––––––+ 1 row in set (0.001 sec) Password Validation 12
  • 30. • MySQL • MariaDB • Password expiration works same way Password Validation 12
  • 31. • Syntax is same Roles 13
  • 32. • Syntax is same • MySQL • Details are in Information Schema ADMINISTRABLE_ROLE_AUTHORIZATIONS APPLICABLE_ROLES ENABLED_ROLES ROLE_COLUMN_GRANTS ROLE_ROUTINE_GRANTS ROLE_TABLE_GRANTS Roles 13
  • 33. • Syntax is same • MySQL • Stored in mysql user role_edges mysql> select * from mysql.role_edgesG *************************** 1. row *************************** FROM_HOST: % FROM_USER: my_role TO_HOST: % TO_USER: sveta WITH_ADMIN_OPTION: N 1 row in set (0.00 sec) default_roles Roles 13
  • 34. • Syntax is same • MariaDB • Details are in Information Schema APPLICABLE_ROLES ENABLED_ROLES Roles 13
  • 35. • Syntax is same • MariaDB• Stored in mysql user roles_mapping MariaDB [information_schema]> select * from mysql.roles_mappingG *************************** 1. row *************************** Host: localhost User: root Role: my_role Admin_option: Y *************************** 2. row *************************** Host: % User: sveta Role: my_role Admin_option: N 2 rows in set (0.001 sec) Roles 13
  • 36. • Syntax is same • MariaDB • The role automatically available for the grantor Roles 13
  • 38. • Compatible • Can work any way around No GTIDs 15
  • 39. • Compatible • Can work any way around • Unless data types are incompatible • Before 8.0! No GTIDs 15
  • 40. • Implementation is different • MariaDB understands MySQL GTIDs • MySQL does not accept MariaDB GTIDs • Only replication from MySQL is possible! GTIDs 16
  • 41. • Different concurrency control Multi-threaded Replication 17
  • 42. • Different concurrency control • MySQL: slave_parallel_workers Multi-threaded Replication 17
  • 43. • Different concurrency control • MySQL: slave_parallel_workers • MySQL: slave_parallel_type=DATABASE | LOGICAL_CLOCK • MYSQL: binlog_transaction_dependency_tracking = COMMIT_ORDER | WRITESET | WRITESET_SESSION Multi-threaded Replication 17
  • 44. • Different concurrency control • MariaDB: slave_parallel_threads Multi-threaded Replication 17
  • 45. • Different concurrency control • MariaDB: slave_parallel_threads • MariaDB: slave_parallel_max_queued Multi-threaded Replication 17
  • 46. • Different concurrency control • MariaDB: slave_parallel_threads • MariaDB: slave_parallel_max_queued • MariaDB: slave_domain_parallel_threads Multi-threaded Replication 17
  • 47. • Different concurrency control • MariaDB: slave_parallel_threads • MariaDB: slave_parallel_max_queued • MariaDB: slave_domain_parallel_threads • MariaDB: slave_parallel_mode=optimistic | conservative | aggressive | minimal | none Multi-threaded Replication 17
  • 48. • Different syntax for the source name • CHANGE MASTER • MySQL CHANGE MASTER TO MASTER_HOST=’source1’ FOR CHANNEL ’source_1’; • MariaDB CHANGE MASTER ’source_1’ TO MASTER_HOST=’source1’; Multi-source Replication 18
  • 49. • Different syntax for the source name • Slave status • MySQL SHOW SLAVE STATUS FOR CHANNEL ’source1’; SELECT * FROM performance_schema.replication_connection_status WHERE CHANNEL_NAME=’source_1’; Default is for all channels • MariaDB SHOW SLAVE ’source_1’ STATUS SHOW ALL SLAVES STATUS Default is default connection Multi-source Replication 18
  • 51. • MySQL mysql> explain analyze select * from ol where thread_id=10432 and site_id != 9939 -> order by id limit 3G *************************** 1. row *************************** EXPLAIN: -> Limit: 3 row(s) (actual time=364.792..364.792 rows=0 loops=1) -> Filter: ((ol.thread_id = 10432) and (ol.site_id <> 9939)) (cost=0.06 rows=3) (actual time=364.789..364.789 rows=0 loops=1) -> Index scan on ol using PRIMARY (cost=0.06 rows=33) (actual time=0.417..337.585 rows=100000 loops=1) ANALYZE 20
  • 52. • MariaDB MariaDB [test]> analyze select * from ol -> where thread_id=10432 and site_id != 9939 order by id limit 3G *************************** 1. row *************************** ... type: index possible_keys: thread_id key: PRIMARY key_len: 4 ref: const rows: 100000 r_rows: 100000.00 filtered: 8.96 r_filtered: 0.00 Extra: Using where ANALYZE 20
  • 53. • MySQL mysql> show processlistG *************************** 1. row *************************** Id: 2 User: root Host: localhost:41352 db: test Command: Query Time: 37 State: User sleep Info: select sleep(100) Rows_sent: 0 Rows_examined: 0 ... EXPLAIN for Running Thread 21
  • 54. • MySQL mysql> explain for connection 2G *************************** 1. row *************************** id: 1 select_type: SIMPLE table: NULL partitions: NULL type: NULL possible_keys: NULL key: NULL key_len: NULL ref: NULL rows: NULL filtered: NULL Extra: No tables used 1 row in set (0.00 sec) EXPLAIN for Running Thread 21
  • 55. • MariaDB MariaDB [(none)]> show processlistG *************************** 1. row *************************** Id: 3 User: root Host: localhost:51126 db: test Command: Query Time: 2 State: User sleep Info: select sleep(30) Progress: 0.000 EXPLAIN for Running Thread 21
  • 56. • MariaDB MariaDB [(none)]> show explain for 3G *************************** 1. row *************************** id: 1 select_type: SIMPLE table: NULL type: NULL possible_keys: NULL key: NULL key_len: NULL ref: NULL rows: NULL Extra: No tables used 1 row in set, 1 warning (25.718 sec) EXPLAIN for Running Thread 21
  • 57. • MariaDB MariaDB [(none)]> show processlistG *************************** 1. row *************************** Id: 3 User: root Host: localhost:51126 db: test Command: Query Time: 2 State: User sleep Info: select sleep(40) Progress: 0.000 ... MariaDB [(none)]> show explain for 3G ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction EXPLAIN for Running Thread 21
  • 58. • MySQL • Only histograms • Collected on demand Histograms and Table-Independent Statistics 22
  • 59. • MySQL • Only histograms • Collected on demand • MariaDB • Histograms collected and used by default • Other Collected on demand Used by default Histograms and Table-Independent Statistics 22
  • 61. • MySQL • Special data type • Functions, not available in MariaDB JSON_OVERLAPS JSON_PRETTY JSON_STORAGE_FREE JSON_STORAGE_SIZE JSON_TABLE JSON 24
  • 62. • MySQL • MariaDB • Data type JSON mapped to LONGTEXT CHECK (JSON_VALID(...)) automatically enabled if JSON alias is used • Functions, not available in MySQL JSON_COMPACT JSON_DETAILED JSON_EXISTS JSON_LOOSE JSON_QUERY JSON_VALUE JSON 24
  • 63. • MySQL • MariaDB • Replication • Statement-based works fine • Row-based Convert MySQL JSON data type to LONGTEXT JSON 24
  • 64. • "SQL with Geometry Types" of OGC • Both MySQL and MariaDB • Not all MySQL GIS functions are in MariaDB GIS 25
  • 65. • MySQL • Full Unicode support since 8.0.4 ICU library • Extended regex syntax Regular Expressions 26
  • 66. • MySQL • Full Unicode support since 8.0.4 ICU library • Extended regex syntax • MariaDB • Full Unicode support since 10.5 • PCRE syntax Regular Expressions 26
  • 67. • MySQL • Full Unicode support since 8.0.4 ICU library • Extended regex syntax • MariaDB • Full Unicode support since 10.5 • PCRE syntax • REGEXP_LIKE only in MySQL Regular Expressions 26
  • 68. • Character set gb18030 only in MySQL • MariaDB has more collations • MariaDB supports not all MySQL collations Localization 27
  • 70. • MySQL • In Performance Schema mysql> SELECT EVENT_NAME, WORK_COMPLETED, WORK_ESTIMATED -> FROM performance_schema.events_stages_current where event_name like ’%alter%’; +––––––––––––––––––––––––––––––––––––––––––––––––––––––+––––––––––––––––+––––––––––––––––+ | EVENT_NAME | WORK_COMPLETED | WORK_ESTIMATED | +––––––––––––––––––––––––––––––––––––––––––––––––––––––+––––––––––––––––+––––––––––––––––+ | stage/innodb/alter table (read PK and internal sort) | 488 | 8512 | ... | stage/innodb/alter table (read PK and internal sort) | 9396 | 9396 | +––––––––––––––––––––––––––––––––––––––––––––––––––––––+––––––––––––––––+––––––––––––––––+ 1 row in set (0.00 sec) Progress for ALTER TABLE 29
  • 71. • MariaDB • In Information Schema MariaDB [information_schema]> select stage, max_stage, progress -> from processlist where info like ’alter table%’; +–––––––+–––––––––––+––––––––––+ | stage | max_stage | progress | +–––––––+–––––––––––+––––––––––+ | 1 | 2 | 46.881 | ... | 1 | 2 | 68.103 | ... | 1 | 2 | 83.452 | +–––––––+–––––––––––+––––––––––+ 1 row in set (0.001 sec) Progress for ALTER TABLE 29
  • 72. • MariaDB • In SHOW PROCESSLIST MariaDB [information_schema]> show processlistG *************************** 1. row *************************** Id: 5 User: root Host: localhost:53616 db: employees Command: Query Time: 4 State: copy to tmp table Info: alter table salaries engine=innodb Progress: 31.510 Progress for ALTER TABLE 29
  • 73. • MariaDB • In the supporting client MariaDB [employees]> alter table salaries engine=innodb; Stage: 1 of 2 ’copy to tmp table’ 73.4% of stage done Progress for ALTER TABLE 29
  • 74. • Tables, which MariaDB misses • Locks data_lock_waits data_locks MariaDB: in Information Schema SE_* Performance Schema 30
  • 75. • Tables, which MariaDB misses • Variables global_variables - MariaDB: in I_S session_variables - MariaDB: in I_S variables_by_thread - MariaDB: do not exist variables_info - MariaDB: I_S.SYSTEM_VARIABLES Performance Schema 30
  • 76. • Tables, which MariaDB misses • Replication replication_applier_filters replication_applier_global_filters replication_applier_status_by_worker replication_connection_status MariaDB: SHOW SLAVE STATUS Performance Schema 30
  • 77. • Tables, which MariaDB misses • Errors events_errors_summary_by_account_by_error events_errors_summary_by_host_by_error events_errors_summary_by_thread_by_error events_errors_summary_by_user_by_error events_errors_summary_global_by_error Performance Schema 30
  • 78. • Tables, which MariaDB misses • Statements histograms events_statements_histogram_by_digest events_statements_histogram_global Performance Schema 30
  • 79. • Tables, which MariaDB misses • User-defined functions user_defined_functions MariaDB: mysql.func Performance Schema 30
  • 80. • Tables, which MariaDB misses • Binary log status and LSN log_status MariaDB: SHOW MASTER STATUS and SHOW ENGINE INNODB STATUS Performance Schema 30
  • 81. • Initial upgrade is straightforward • Feature differences are easily solvable • MariaDB has options which simplify migration • Migrate to explore all MariaDB advantages! Conclusions 31
  • 82. • Migrating to MariaDB from MySQL MariaDB vs MySQL: Features Function Difference Replication Compatibility Matrix Optimizer Features Comparison Matrix Spatial Support Matrix More Details 32