0

The web host that I use provides free database via MySQL v5.6.38. Recently, they switched to MariaDB v10.3.31

They converted all my databases and all my apps still work as expected. The problem is I've put in considerable effort into learning MySQL over two years and so I don't want to abandon it. I know MariaDB is based on MySQL and so there's some good compatibility until MySQL 8. I want to keep developing on MySQL and then just convert/port that particular database to MariaDB. Is there a way to do this?

Most articles talk about converting/upgrading the whole MySQL instance and its databases to MariaDB. How do I convert just a single database from MySQL format to MariaDB format?

Thanks.

UPDATE: While MariaDB is seemingly better than MySQL, MySQL is more popular & more common. For this reason, my plan is to use only features & functions that are common between both of them. - If I happen to change web hosts in the future and the new webhost doesn't offer MariaDB, then I'll have a lot of work to do if I have used features specific to MariaDB.

asked Apr 3, 2022 at 22:16
1
  • If you are used to 5.6, you will hardly notice anything different in 10.3. If you start using CTEs and windowing functions, then a future change to 8.0 will also be relatively painless. (Going back to 5.6 could be a problem.) Commented Apr 4, 2022 at 0:16

1 Answer 1

3

If you develop on a MySQL-5.7 or earlier, most features there are MariaDB compatible (exceptions).

There's no real convert to MariaDB format in a MySQL server.

Your learning isn't wasted. There is significant similarity with MariaDB, especially with such an old version of MySQL that you where developing for.

If MariaDB-10.3 is your hosted application, its prudent to use the same in your development version that way the small number of differences will show up in your development rather than a last pre-deployment step. This will also give you the opportunity to use new database features that are available on your host, like common table expressions, window functions, sequences, and other functions.

answered Apr 3, 2022 at 22:30
6
  • Also I have to notice that MariaDB 10.4+ parser has a more strict syntax and some routines from earlier versions may fail in a strange way. For example versions prior to 10.4 raise no errors for routines using undeclared variables, while on 10.4+ the same routines will not even shown by SHOW PROCEDURE STATUS LIKE 'xxxxx'; after upgrade. Commented Apr 5, 2022 at 21:11
  • @danblack Bummer that there is no way to convert just 1 database, Commented Apr 7, 2022 at 5:08
  • "There's no real convert to MariaDB format in a MySQL server.". You can't make a MySQL server pretend its MariaDB. You can run multiple MySQL and MariaDB instances on the same host provided you separate their datadir, port, and socket are not conflicting. So you can export one database to an actual MariaDB instance, however the concept of an in-place convert cannot happen. Commented Apr 7, 2022 at 5:15
  • Sorry about the confusion. I don't mean using a MySQL Server to convert to MariaDB format. I'm asking if there's a third party utility that can do the conversion or perhaps even MariaDB it self. Please see the update in the question. Thanks. Commented Apr 7, 2022 at 5:20
  • MariaDB should be able to read a MySQL-5.6 data directory. Otherwise and mysqldump of the database should import as is. Third option in assisted tools is sqlines (who seem to be having website cert troubles at the moment). Commented Apr 7, 2022 at 5:53

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.