All pages
Powered by GitBook
Couldn't generate the PDF for 226 pages, generation stopped at 100.
Extend with 50 more pages.
1 of 100

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Clients & Utilities

Discover MariaDB Server's clients and utilities. This section guides you through tools for connecting, managing, and interacting with your database, from command-line clients to graphical interfaces.

Graphical and Enhanced Clients

This list is incomplete - most MySQL tools will work with MariaDB

Deployment Tools

Administrative Tools

Backup, Restore and Import Clients

Clients for taking backups or importing/restoring data

Data Import with MariaDB Enterprise Server

Aria Clients and Utilities

Clients and utilities for working with the Aria storage engine

dbdeployer

dbdeployer is a tool for installing multiple versions of MariaDB and/or MySQL in isolation from each other. It is primarily used for easily testing different server versions. It is written in Go, and is a replacement for MySQL Sandbox.

Visit www.dbdeployer.com for details on how to install and use it.

This page is licensed: CC BY-SA / Gnu FDL

SQL Diagnostic Manager & SQLyog

SQL Diagnostic Manager (sql-diagnostic-manager-for-mysql) A monitoring tool that gives DBAs real-time insights for optimizing the performance of MariaDB servers.

Key Features:

  1. Agentless monitoring

  2. Fully customizable

  3. Affordable

Webyog’s SQL DM is fully compatible with Amazon Aurora databases, and Webyog is an Amazon launch partner.

Features specifically for RDS and Aurora instances also available. SQL Diagnostic Manager is browser based and is a proud MariaDB Monitor and Advisor.

SQLyog Ultimate (en) A MySQL administration tool for DBAs, developers, and database architects. This tool enables database developers, administrators, and architects to visually compare, optimize, and document schemas.

Key Features:

  1. Automatically synchronize data

  2. Visually compare data

  3. Import external data

SQLyog runs on Windows and is a graphical MariaDB manager and admin tool, combining the features of MySQL Administrator, phpMyAdmin and other MariaDB Front Ends and MariaDB GUI tools.

This page is licensed: CC BY-SA / Gnu FDL

Adminer

Adminer is a database administration web interface. It is usable via a web browser. It is written in PHP and requires a web server.

Adminer mainly supports MySQL, but it also supports MySQL, MariaDB, PostgreSQL, SQLite, MS SQL, Oracle, Elasticsearch, MongoDB, SimpleDB, Firebird, ClickHouse. Adminer has a rich range of plugins, some of which have been developed by the community.

Adminer is distributed with a dual license: Apache License 2.0 and GPL 2. Adminer does not have a commercial edition, but it accepts donations.

This page is licensed: CC BY-SA / Gnu FDL

mariadb-tzinfo-to-sql

mariadb-tzinfo-to-sql is a utility used to load on systems that have a zoneinfo database to load the time zone tables (, , , and ) into the mysql database.

Prior to , the client was called mysql_tzinfo_to_sql. It can still be accessed under this name, via a symlink in Linux, or an alternate binary in Windows.

Most Linux, Mac OS X, FreeBSD and Solaris systems will have a zoneinfo database - Windows does not. The database is commonly found in the /usr/share/zoneinfo directory, or, on Solaris, the /usr/share/lib/zoneinfo directory.

Usage

mariadb-tzinfo-to-sql can be called in several ways. The output is usually passed straight to the for direct loading in the mysql database.

Resetting timezone tables

If there is a need to reset the timezone to the default, to before using mariadb-tzinfo-to-sql, one can do that by executing:

The old timezone values will be in effect until the server is .

Examples

Most commonly, the whole directory is passed:

Load a single time zone file, timezone_file, corresponding to the time zone called timezone_name.

A separate command for each time zone and time zone file the server needs is required.

To account for leap seconds, use:

After populating the time zone tables, you should usually restart the server so that the new time zone data is correctly loaded.

This page is licensed: CC BY-SA / Gnu FDL

mariadb-find-rows

mariadb-find-rows reads files containing SQL statements and extracts statements that match a given regular expression or that contain or statements.

Prior to , the client was called mysql_find_rows. It can still be accessed under this name, via a symlink in Linux, or an alternate binary in Windows.

The utility was written for use with update log files (as used prior to MySQL 5.0) and as such expects statements to be terminated with semicolon (;) characters. It may be useful with other files that contain SQL statements as long as statements are terminated with semicolons.

Usage

Each file_name argument should be the name of file containing SQL statements. If no file names are given, mariadb-find-rows reads the standard input.

Options

mariadb-find-rows supports the following options:

Option
Description

Examples

This page is licensed: CC BY-SA / Gnu FDL

perror

perror is a utility that displays descriptions for system or storage engine error codes.

See for a full list of MariaDB error codes, and for a list of Linux and Windows error codes.

Usage

If you need to describe a negative error code, use -- before the first error code to end the options.

Options

Option
Description

Examples

System error code:

MariaDB/MySQL :

This page is licensed: CC BY-SA / Gnu FDL

replace

Description

The replace utility program changes strings in place in files or on the standard input. Invoke replace in one of the following ways:

"from" represents a string to look for and "to" represents its replacement. There can be one or more pairs of strings.

A from-string can contain these special characters:

Character
Description

Use the -- option to indicate where the string-replacement list ends and the file names begin. Any file named on the command line is modified in place, so you may want to make a copy of the original before converting it. replace prints a message indicating which of the input files it actually modifies.

If the -- option is not given, replace reads standard input and writes to standard output.

replace uses a finite state machine to match longer strings first. It can be used to swap strings. For example, the following command swaps "a" and "b" in the given files, /file1andfile2*:*

The replace program is used by .

Options

replace supports the following options.

Option
Description

This page is licensed: CC BY-SA / Gnu FDL

mariadb-embedded

mariadb-embedded is a statically linked to libmariadbd, the embedded server.

Prior to , the client was called mysql_embedded. It can still be accessed under this name, via a symlink in Linux, or an alternate binary in Windows.

Upon execution, an embedded MariaDB server is instantiated and you can execute statements just as you would using the normal mariadb client, using the same options.

Do not run mariadb-embedded using the same database as a running MariaDB server!

Examples

Sending options with --server-arg:

This page is licensed: CC BY-SA / Gnu FDL

Beekeeper Studio

is an open-source database GUI available for Linux, MacOS, and Windows.

Beekeeper Studio works with MariaDB, but also works with other databases like Postgres, Redshift, SQL Server.

Beekeeper Studio includes the following features:

  • Tabbed interface

  • SSH tunneling

  • SQL autocomplete

  • Multi-connection

The Community Edition is , and is , with no usage tracking or similar behavior.

Links

  • Homepage -

  • GitHub -

This page is licensed: CC BY-SA / Gnu FDL

mariadb-waitpid

mariadb_waitpid is a utility for terminating processes. It runs on Unix-like systems, making use of the kill() system call.

Prior to , the client was called mysql_waitpid. It can still be accessed under this name, via a symlink in Linux, or an alternate binary in Windows.

Usage

Description

mariadb-waitpid sends signal 0 to the process pid and waits up to time seconds for the process to terminate. pid and time must be positive integers.

Returns 0 if the process terminates in time, or does not exist, and 1 otherwise.

Signal 1 is used if the kill() system call cannot handle signal 0

Options

Option
Description

This page is licensed: CC BY-SA / Gnu FDL

shell> mariadb-tzinfo-to-sql timezone_dir
shell> mariadb-tzinfo-to-sql timezone_file timezone_name
shell> mariadb-tzinfo-to-sql --leap timezone_file
truncate table mysql.time_zone;
truncate table mysql.time_zone_name;
truncate table mysql.time_zone_transition;
truncate table mysql.time_zone_transition_type;
truncate table mysql.time_zone_leap_second;
shell>mariadb-tzinfo-to-sql /usr/share/zoneinfo | mariadb -u root mysql
shell> mariadb-tzinfo-to-sql timezone_file timezone_name | mariadb -u root mysql
shell> mariadb-tzinfo-to-sql --leap timezone_file | mariadb -u root mysql
time zones
time_zone
time_zone_leap_second
time_zone_name
time_zone_transition
time_zone_transition_type
mariadb client
restarted
mariadb-find-rows [options] [file_name ...]

--help, --Information

Display help and exit.

--regexp=pattern

Display queries that match the pattern.

--rows=N

Quit after displaying N queries.

--skip-use-db

Do not include USE db_name statements in the output.

--start_row=N

Start output from this row (first row is 1).

mariadb-find-rows --regexp=problem_table --rows=20 < update.log
mariadb-find-rows --regexp=problem_table  update-log.1 update-log.2
USE db_name
SET
perror [OPTIONS] [ERRORCODE [ERRORCODE...]]

-?, --help

Display help and exit.

-I, --info

Synonym for --help.

-s, --silent

Only print the error message.

-v, --verbose

Print error code and message (default). (Defaults to on; use --skip-verbose to disable.)

-V, --version

Displays version information and exits.

shell> perror 96
OS error code  96:  Protocol family not supported
shell> perror 1005 1006
MySQL error code 1005 (ER_CANT_CREATE_TABLE): Can't create table %`s.%`s (errno: %M)
MySQL error code 1006 (ER_CANT_CREATE_DB): Can't create database '%-.192s' (errno: %M)
shell> perror --silent 1979
You are not owner of query %lu
shell> replace from to [from to] ... -- file_name [file_name] ...
shell> replace from to [from to] ... < file_name

^

Match start of line.

$

Match end of line.

\b

Match space-character, start of line or end of line. For an end \b the next replace starts looking at the end space-character. A \b alone in a string matches only a space-character

shell> replace a b b a -- file1 file2 ...

-?, -I

Display a help message and exit.

-#debug_options

Enable debugging.

-s

Silent mode. Print less information about what the program does.

-v

Verbose mode. Print more information about what the program does.

-V

Display version information and exit.

msql2mysql
sudo mariadb-embedded -e 'select user, host, password from mysql.user where user="root"'
+------+-----------+-------------------------------------------+
| user | host      | password                                  |
+------+-----------+-------------------------------------------+
| root | localhost | *196BDEDE2AE4F84CA44C47D54D78478C7E2BD7B7 |
| root | db1       | *196BDEDE2AE4F84CA44C47D54D78478C7E2BD7B7 |
| root | 127.0.0.1 | *196BDEDE2AE4F84CA44C47D54D78478C7E2BD7B7 |
| root | ::1       | *196BDEDE2AE4F84CA44C47D54D78478C7E2BD7B7 |
+------+-----------+-------------------------------------------+
sudo mariadb-embedded --server-arg='--skip-innodb'
  --server-arg='--default-storage-engine=myisam' 
  --server-arg='--log-error=/tmp/mysql.err' 
  -e 'select user, host, password from mysql.user where user="root"'
+------+-----------+-------------------------------------------+
| user | host      | password                                  |
+------+-----------+-------------------------------------------+
| root | localhost | *196BDEDE2AE4F84CA44C47D54D78478C7E2BD7B7 |
| root | db1       | *196BDEDE2AE4F84CA44C47D54D78478C7E2BD7B7 |
| root | 127.0.0.1 | *196BDEDE2AE4F84CA44C47D54D78478C7E2BD7B7 |
| root | ::1       | *196BDEDE2AE4F84CA44C47D54D78478C7E2BD7B7 |
+------+-----------+-------------------------------------------+
mariadb client
mariadb-waitpid [options] pid time

-?, --help

Display help and exit

-I, --help

Synonym for -?

-v, --verbose

Be more verbose. Give a warning, if kill can't handle signal 0

-V, --version

Print version information and exit

Beekeeper Studio
free and open source
privacy respecting
beekeeperstudio.io
beekeeper-studio
SQL Gui Screenshot

mariadb-setpermission

Syntax

mariadb-setpermission [options]

Description

mariadb-setpermission is a Perl script that was originally written and contributed by Luuk de Boer. It requires the DBI and DBD::mysql Perl modules to be installed.mariadb-setpermission can help you add users or databases or change passwords in MariaDB.

Prior to , the client was called mysql_setpermission. It can still be accessed under this name, via a symlink in Linux, or an alternate binary in Windows.

It interactively sets permissions in the MariaDB grant tables, but does not check permissions which have already been set in MariaDB. So if you can't connect to MariaDB using the permission you just added, take a look at the permissions which have already been set in MariaDB.

The account used when you connect determines which permissions you have when attempting to modify existing permissions in the grant tables.

mariadb-setpermission also reads options from the [client] and [perl] groups in the .my.cnf file in your home directory, if the file exists.

The following options are available:

Options

--help

Display a help message and exit.

--host=host_name

Connect to the MariaDB server on the given host.

--password=password

The password to use when connecting to the server. Note that the password value is not optional for this option, unlike for other MariaDB programs Specifying a password on the command line should be considered insecure. You can use an option file to avoid giving the password on the command line.

--port=port_num

The TCP/IP port number to use for the connection.

--socket=path

For connections to localhost, the Unix socket file to use.

--user=user_name

The MariaDB user name to use when connecting to the server.

Example

./mariadb-setpermission --user=msandbox --password=msandbox --host=127.0.0.1 --port=11200
######################################################################
## Welcome to the permission setter 1.4 for MariaDB.
## made by Luuk de Boer
######################################################################
What would you like to do:
  1. Set password for an existing user.
  2. Create a database + user privilege for that database
     and host combination (user can only do SELECT)
  3. Create/append user privilege for an existing database
     and host combination (user can only do SELECT)
  4. Create/append broader user privileges for an existing
     database and host combination
     (user can do SELECT,INSERT,UPDATE,DELETE)
  5. Create/append quite extended user privileges for an
     existing database and host combination (user can do
     SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,
     LOCK TABLES,CREATE TEMPORARY TABLES)
  6. Create/append full privileges for an existing database
     and host combination (user has FULL privilege)
  7. Remove all privileges for an existing database and
     host combination.
     (user will have all permission fields set to N)
  0. exit this program

This page is licensed: CC BY-SA / Gnu FDL

mariadb-plugin

mariadb-plugin is a tool for enabling or disabling plugins.

Prior to , the client was called mysql_plugin. It can still be accessed under this name, via a symlink in Linux, or an alternate binary in Windows.

It is a commandline alternative to the INSTALL PLUGIN and UNINSTALL PLUGIN statements, and the --plugin-load option to mariadbd.

mariadb-plugin must be run while the server is offline, and works by adding or removing rows from the mysql.plugin table.

mariadb-plugin basically has two use cases:

  • adding a plugin even before the first real server startup

  • removing a plugin that crashes the server on startup

For the install use case, adding a plugin-load-add entry to my.cnf or in a separate include option file, is probably a better alternative. In case of a plugin loaded via a mysql.plugin crashing the server, uninstalling the plugin with the help of mariadb-plugin can be the only viable action though.

Usage

mariadb-plugin [options] <plugin> ENABLE|DISABLE

mariadb-plugin expects to find a configuration file that indicates how to configure the plugins. The configuration file is by default the same name as the plugin, with a .ini extension. For example:

mariadb-plugin crazyplugins ENABLE

Here, mariadb-plugin will look for a file called crazyplugins.ini

crazyplugins
crazyplugin1
crazyplugin2
crazyplugin3

The first line should contain the name of the library object file, with no extension. The other lines list the names of the components. Each value should be on a separate line, and the # character at the start of the line indicates a comment.

Options

The following options can be specified on the command line, while some can be specified in the [mysqld] group of any option file. For options specified in a [mysqld] group, only the --basedir, --datadir, and --plugin-dir options can be used - the rest are ignored.

Option
Description

-b, --basedir=name

The base directory for the server.

-d, --datadir=name

The data directory for the server.

-?, --help

Display help and exit.

-f, --my-print-defaults=name

Path to my_print_defaults executable. Example: /source/temp11/extra

-m, --mysqld=name

Path to mysqld executable. Example: /sbin/temp1/mysql/bin

-n, --no-defaults

Do not read values from configuration file.

-p, --plugin-dir=name

The plugin directory for the server.

-i, --plugin-ini=name

Read plugin information from configuration file specified instead of from /<plugin_name>.ini.

-P, --print-defaults

Show default values from configuration file.

-v, --verbose

More verbose output; you can use this multiple times to get even more verbose output.

-V, --version

Output version information and exit.

See Also

  • List of Plugins

  • Plugin Overview

  • INFORMATION_SCHEMA.PLUGINS Table

  • INSTALL PLUGIN

  • INSTALL SONAME

  • UNINSTALL PLUGIN

  • UNINSTALL SONAME

This page is licensed: CC BY-SA / Gnu FDL

my_print_defaults

my_print_defaults

my_print_defaults displays the options from option groups of option files. It is useful to see which options a particular tool will use.

Output is one option per line, displayed in the form in which they would be specified on the command line.

Usage

my_print_defaults [OPTIONS] [groups]

Options

Option
Description

-c, --config-file=name

Deprecated, please use --defaults-file instead. Name of config file to read; if no extension is given, default extension (e.g., .ini or .cnf) will be added.

-d, --debug[=#]

In debug versions, write a debugging log. A typical debug_options string is d:t:o,file_name. The default is d:t:o,/tmp/my_print_defaults.trace.

-c, --defaults-file=name

Like --config-file, except: if first option, then read this file only, do not read global or per-user config files; should be the first option. Removed in .

-e, --defaults-extra-file=name

Read this file after the global config file and before the config file in the users home directory; should be the first option. Removed in .

-g, --defaults-group-suffix=name

In addition to the given groups, read also groups with this suffix. Removed in .

-e, --extra-file=name

Deprecated. Synonym for --defaults-extra-file.

--mariadbd

Read the same set of groups that the binary does. From .

--mysqld

Read the same set of groups that the binary does.

-n, --no-defaults

Return an empty string (useful for scripts).

?, --help

Display this help message and exit.

-v, --verbose

Increase the output level.

-V, --version

Output version information and exit.

Examples

my_print_defaults --defaults-file=example.cnf client client-server mysql

mariadb-check reads from the [mariadb-check] and [client] sections, so the following would display the mariadb-check options.

my_print_defaults mariadb-check client

This page is licensed: CC BY-SA / Gnu FDL

resolve_stack_dump

resolve_stack_dump is a tool that resolves numeric stack strace dumps into symbols.

Usage

resolve_stack_dump [OPTIONS] symbols-file [numeric-dump-file]

The symbols-file should include the output from: nm --numeric-sort mariadbd. The numeric-dump-file should contain a numeric stack trace from mariadbd. If the numeric-dump-file is not given, the stack trace is read from stdin.

Options

Option
Description

-h, --help

Display this help and exit.

-V, --version

Output version information and exit.

-s, --symbols-file=name

Use specified symbols file.

-n, --numeric-dump-file=name

Read the dump from specified file.

This page is licensed: CC BY-SA / Gnu FDL

mariadb-report

mariadb-report makes a friendly report of important MariaDB status values.

Prior to , the client was called mysqlreport. It can still be accessed under this name, via a symlink in Linux, or an alternate binary in Windows.

Actually, mariadb-report makes a friendly report of nearly every status value from SHOW STATUS. Unlike SHOW STATUS which simply dumps over 100 values to the screen in one long list, mariadb-report interprets and formats the values and presents the basic values and many more inferred values in a human-readable format. Numerous example reports are available in the archive of the old , .

The benefit of mariadb-report is that it allows you to very quickly see a wide array of performance indicators for your MariaDB server which would otherwise need to be calculated by hand from all the various SHOW STATUS values. For example, the Index Read Ratio is an important value but it's not present in SHOW STATUS; it's an inferred value (the ratio of Key_reads to Key_read_requests).

This documentation outlines all the command line options in mariadb-report, most of which control which reports are printed. This document does not address how to interpret these reports; that topic is covered in the document Guide To Understanding mysqlreport, .

Usage

mariadb-report options

Technically, command line options are in the form --option, but -option works too. All options can be abbreviated if the abbreviation is unique. For example, option --host can be abbreviated to --ho but not --h because --h is ambiguous: it could mean --host or --help.

Option
Description

This page is licensed: CC BY-SA / Gnu FDL

DbSchema

Powerful, yet easy-to-use, DbSchema helps you design, document and manage databases without having to be a SQL pro. Easily design new tables, generate HTML5 documentation, explore and edit the database data, compare and synchronize the schema over multiple databases, edit and execute SQL, generate random data.

DbSchema is compatible with all relational and few No-SQL databases. It works on all major operating systems, including Windows, Linux and Mac.

You can download and evaluate DbSchema 15 days for free.

DBSchema Webpage

This page is licensed: CC BY-SA / Gnu FDL

Logging Tools

mariadb Client

The MariaDB command-line client. Previously, the client was called `mysql`. The client can still be accessed in this way, via a symlink in Linux, or an alternate binary in Windows.

TOAD for MySQL

Features

  • Version control integration.

  • Macro record and playback.

  • Database browser.

  • Code snippet editor.

  • Security manager.

  • SQL editor.

  • Fast, multi-tabbed schema browser.

  • DB extract, compare-and-search utility.

  • Import/export utility.

This page is licensed: CC BY-SA / Gnu FDL

Table Tools

Testing Tools

mariadb-test

MariaDB uses mariadb-test to test functionality. It is an all-in-one test framework doing unit, regression, and conformance testing

Networking Tools

mariadb-report [options]

--all

Equivalent to --dtq --dms --com 3 --sas --qcache. (Notice --tab is not invoked by --all.)

--com N

Print top N number of non-DMS Com_ status values in descending order (after DMS in Questions report). If N is not given, default is 3. Such non-DMS Com_ values include Com_change_db, Com_show_tables, Com_rollback, etc.

--dms

Print Data Manipulation Statements (DMS) report (under DMS in Questions report). DMS are those from the Data Manipulation section. mariadb-report considers only SELECT, INSERT, REPLACE, UPDATE, and DELETE. Each DMS is listed in descending order by count.

--dtq

Print Distribution of Total Queries (DTQ) report (under Total in Questions report). Queries (or Questions) can be divided into four main areas: DMS (see --dms), Com_ (see --com ), COM_QUIT (see COM_QUIT and Questions, archived here), and Unknown. --dtq lists the number of queries in each of these areas in descending order.

--email ADDRESS

After printing the report to screen, email the report to ADDRESS. This option requires sendmail in /usr/sbin/, therefore it does not work on Windows. /usr/sbin/sendmail can be a sym link to qmail, for example, or any MTA that emulates sendmail's -t command line option and operation. The FROM: field is "mariadb-report", SUBJECT: is "MySQL status report".

--flush-status

Execute a FLUSH STATUS after generating the reports. If you do not have permissions in MariaDB to do this an error from DBD::mysql::st will be printed after the reports.

--help

Output help information and exit.

--host ADDRESS

Host address.

--infile FILE

Instead of getting SHOW STATUS values from MariaDB, read values from FILE. FILE is often a copy of the output of SHOW STATUS including formatting characters (+, -). mariadb-report expects FILE to have the format " value number " where value is only alpha and underscore characters (A-Z and _) and number is a positive integer. Anything before, between, or after value and number is ignored. mariadb-report also needs the following MariaDB server variables: version, table_cache, max_connections, key_buffer_size, query_cache_size. These values can be specified in INFILE in the format "name = value" where name is one of the aforementioned server variables and value is a positive integer with or without a trailing M and possible periods (for version). For example, to specify an 18M key_buffer_size: key_buffer_size = 18M. Or, a 256 table_cache: table_cache = 256. The M implies Megabytes not million, so 18M means 18,874,368 not 18,000,000. If these server variables are not specified the following defaults are used (respectively) which may cause strange values to be reported: 0.0.0, 64, 100, 8M, 0.

--no-mycnf

Makes mariadb-report not read /.my.cnf which it does by default otherwise. --user and --password always override values from /.my.cnf.

--outfile FILE

After printing the report to screen, print the report to FILE too. Internally, mariadb-report always writes the report to a temp file first: /tmp/mysqlreport.PID on *nix, c:sqlreport.PID on Windows (PID is the script's process ID). Then it prints the temp file to screen. Then if --outfile is specified, the temp file is copied to OUTFILE. After --email (above), the temp file is deleted.

--password

As of version 2.3 --password can take the password on the command line like --password FOO. Using --password alone without giving a password on the command line causes mariadb-report to prompt for a password.

--port PORT

Port number.

--qcache

Print Query Cache report.

--sas

Print report for Select_ and Sort_ status values (after Questions report). See MySQL Select and Sort Status Variables, archived here.

--socket SOCKET

For connections to localhost, the Unix socket file to use, or, on Windows, the name of the named pipe to use.

--tab

Print Threads, Aborted, and Bytes status reports (after Created temp report). The Threads report reports on all Threads_ status values.

--user USERNAME

Username.

hackmysql.com/mysqlreport
archived here
archived here
mariadbd
mysqld

LOAD DATA With LOAD DATA LOCAL INFILE

Overview

MariaDB Enterprise Server users can import data into a database using the LOAD DATA LOCAL INFILE statement:

  • The LOAD DATA LOCAL INFILE statement can import data from TSV and CSV files

  • The LOAD DATA LOCAL INFILE statement can be executed by any client or connector

Compatibility

Import Schema

  1. Determine the connection parameters for your MariaDB Enterprise Server database.

  2. Use mariadb client with the connection information to import your schema into your MariaDB Enterprise Server database:

$ mariadb --host FULLY_QUALIFIED_DOMAIN_NAME --port TCP_PORT \
      --user DATABASE_USER --password \
      --ssl-verify-server-cert \
      --ssl-ca ~/PATH_TO_PEM_FILE \
      --default-character-set=utf8 \
      < mariadb_schema.sql
  • Replace FULLY_QUALIFIED_DOMAIN_NAME with the IP address or Fully Qualified Domain Name of your database

  • Replace TCP_PORT with the TCP port of your database

  • Replace DATABASE_USER with the username for your database user account

  • If TLS is required, replace /PATH_TO_PEM_FILE with the path to the certificate authority chain (.pem) file

  1. After the command is executed, you will be prompted for the password of your database user account.

Import Data

  1. Determine the connection parameters for your MariaDB Enterprise Server database.

  2. Connect with the mariadb client and specify the --local-infile option, which is needed by the next step:

$ mariadb --host FULLY_QUALIFIED_DOMAIN_NAME --port TCP_PORT \
      --user DATABASE_USER --password \
      --ssl-verify-server-cert \
      --ssl-ca ~/PATH_TO_PEM_FILE \
      --default-character-set=utf8 \
      --local-infile

Replace FULLY_QUALIFIED_DOMAIN_NAME with the IP address or Fully Qualified Domain Name of your database

Replace TCP_PORT with the TCP port of your database

Replace DATABASE_USER with the username for your database user account

If TLS is required, replace /PATH_TO_PEM_FILE with the path to the certificate authority chain (.pem) file

  1. After the command is executed, you will be prompted for the password of your database user account.

  2. For each table that you want to import, execute the LOAD DATA LOCAL INFILE statement to import the data from the TSV or CSV file into your MariaDB Enterprise Server database.

For a TSV file:

LOAD DATA LOCAL INFILE 'contacts.tsv'
INTO TABLE accounts.contacts;
For a CSV file:
LOAD DATA LOCAL INFILE 'contacts.csv'
INTO TABLE accounts.contacts
FIELDS TERMINATED BY ',';

MariaDB Connectors

To execute the LOAD DATA LOCAL INFILE statement, most clients and connectors require a specific option to be enabled.

The section above mentions that mariadb client requires the --local-infile option to be specified.

If you are using a instead of the mariadb client, then you must use a different method to enable support for the LOAD DATA LOCAL INFILE statement.

If you are using , the MYSQL_OPT_LOCAL_INFILE option can be set with the mysql_optionsv() function:

/* enable local infile */
unsigned int enable_local_infile = 1;
mysql_optionsv(mysql, MYSQL_OPT_LOCAL_INFILE, (void *) &enable_local_infile);

If you are using , the allowLocalInfile parameter can be set for the connection:

Connection connection = DriverManager.getConnection("jdbc:mariadb://FULLY_QUALIFIED_DOMAIN_NAME:TCP_PORT/test?user=DATABASE_USER&password=DATABASE_PASSWORD&allowLocalInfile=true");

If you are using , the permitLocalInfile parameter can be set for the connection:

mariadb.createConnection({
   host: 'FULLY_QUALIFIED_DOMAIN_NAME',
   port: 'TCP_PORT',
   user:'DATABASE_USER',
   password: 'DATABASE_PASSWORD',
   permitLocalInfile: 'true'
 });

If you are using , the local_infile parameter can be set for the connection:

conn = mariadb.connect(
   user="DATABASE_USER",
   password="DATABASE_PASSWORD",
   host="FULLY_QUALIFIED_DOMAIN_NAME",
   port=TCP_PORT,
   local_infile=true)

This page is: Copyright © 2025 MariaDB. All rights reserved.

mariadb-conv

MariaDB starting with

mariadb-conv is a character set conversion utility for MariaDB and was added in .

Usage

mariadb-conv [OPTION...] [FILE...]

Options

mariadb-conv supports the following options:

Option
Description

-f, --from=name

Specifies the encoding of the input.

-t, --to=name

Specifies the encoding of the output.

-c, --continue

Silently ignore conversion errors.

--delimiter=name

Treat the specified characters as delimiters.

By default, mariadb-conv exits whenever it encounters any conversion problems, for example:

  • the input byte sequence is not valid in the source character set

  • the character cannot be converted to the target character set

The -c option makes mariadb-conv ignore such errors and use the question mark '?' to replace bytes in bad input sequences, or unconvertable characters.

The --delimiter=... option makes mariadb-conv treat the specified characters as delimiters rather than data to convert, so the input is treated as a combination of:

  • data chunks, which are converted according to the -f and -t options.

  • delimiters, which are not converted and are copied from the input to the output as is.

Examples

Converts the file file.latin1.txt from latin1 to utf8.

mariadb-conv -f latin1 -t utf8 file.latin1.txt

Convert the file file.latin1.txt from latin1 to utf8, reading the input data from stdin.

mariadb-conv -f latin1 -t utf8 < file.latin1.txt

Using mariadb-conv in a pipe:

echo test | ./mariadb-conv -f utf8 -t ucs2 >file.ucs2.txt

As a side effect, mariadb-conv can be used to list MariaDB data directories in a human readable form. Suppose you create the following tables:

SET NAMES utf8;
CREATE OR REPLACE TABLE t1 (a INT);
CREATE OR REPLACE TABLE ß (a INT);
CREATE OR REPLACE TABLE абв (a INT);
CREATE OR REPLACE TABLE 桌子 (a INT);

The above makes the server create the following files in the MariaDB data directory:

@1j.frm
@1j.ibd
@684c@5b50.frm
@684c@5b50.ibd
@g0@h0@i0.frm
@g0@h0@i0.ibd
t1.frm
t1.ibd

It's not precisely clear which file stores which table, because MariaDB uses a special table-name-to-file-name encoding.

This command on Linux (assuming an utf-8 console) can print the table list in a readable way::

ls | mariadb-conv -f filename -t utf8 --delimiter=".\n"

ß.frm
ß.ibd
桌子.frm
桌子.ibd
абв.frm
абв.ibd
t1.frm
t1.ibd

Note, the --delimiter=".\n" option is needed to make mariadb-conv treat the dot character (delimiting the encoded table name from the file extension) and the new line character (delimiting separate lines) as delimiters rather than as the data to convert (otherwise the conversion would fail).

Windows users can use the following command to list the data directory in the ANSI text console:

dir /b | mariadb-conv -c -f filename -t cp850 --delimiter=".\r\n"

Note:

  • The -t options assume a Western machine.

  • The -c option is needed to ignore conversion errors for Cyrillic and CJK characters.

  • --delimiter= additionally needs the carriage return character

This page is licensed: CC BY-SA / Gnu FDL

aria_pack

aria_pack is a tool for compressing Aria tables. The resulting table are read-only, and usually about 40% to 70% smaller.

aria_pack is run as follows

aria_pack [options] file_name [file_name2...]

The file name is the .MAI index file. The extension can be omitted, although keeping it permits wildcards, such as

aria_pack *.MAI

to compress all the files.

aria_pack compresses each column separately, and, when the resulting data is read, only the individual rows and columns required need to be decompressed, allowing for quicker reading.

Once a table has been packed, use aria_chk -rq (the quick and recover options) to rebuild its indexes.

Options

The following variables can be set while passed as commandline options to aria_pack, or set in the [ariapack] section in your my.cnf file.

Option
Description

-b, --backup

Make a backup of the table as table_name.OLD.

--character-sets-dir=name

Directory where character sets are.

-h, --datadir

Path for control file (and logs if --logdir not used). From

-#, --debug[=name]

Output debug log. Often this is 'd:t:o,filename'.

-?, --help

Display help and exit.

-f, --force

Force packing of table even if it gets bigger or if tempfile exists.

--ignore-control-file

Ignore the control file. From .

-j, --join=name

Join all given tables into 'new_table_name'. All tables MUST have identical layouts.

--require-control-file

Abort if cannot find control file. From .

-s, --silent

Only write output when an error occurs.

-t, --test

Don't pack table, only test packing it.

-T, --tmpdir=name

Use temporary directory to store temporary table.

-v, --verbose

Write info about progress and packing result. Use many -v for more verbosity!

-V, --version

Output version information and exit.

-w, --wait

Wait and retry if table is in use.

Unpacking

To unpack a table compressed with aria_pack, use the aria_chk -u option.

Example

> aria_pack /my/data/test/posts
Compressing /my/data/test/posts.MAD: (1690 records)
- Calculating statistics
- Compressing file
37.71%     
> aria_chk -rq --ignore-control-file /my/data/test/posts
- check record delete-chain
- recovering (with keycache) Aria-table '/my/data/test/posts'
Data records: 1690
State updated

See Also

  • FLUSH TABLES FOR EXPORT

  • myisamchk

This page is licensed: CC BY-SA / Gnu FDL

aria_read_log

aria_read_log is a tool for displaying and applying log records from an Aria transaction log.

Note: Aria is compiled without -DIDENTICAL_PAGES_AFTER_RECOVERY which means that the table files are not byte-to-byte identical to files created during normal execution. This should be ok, except for test scripts that try to compare files before and after recovery.

Usage:

aria_read_log OPTIONS

You need to use one of -d or -a.

Options

The following variables can be set while passed as commandline options to aria_read_log, or set in the [aria_read_log] section in your my.cnf file.

Option
Description

-a, --apply

Apply log to tables: modifies tables! you should make a backup first! Displays a lot of information if not run with --silent.

--character-sets-dir=name

Directory where character sets are.

-c, --check

if --display-only, check if record is fully readable (for debugging).

-?, --help

Display help and exit.

-d, --display-only

Display brief info read from records' header.

-e, --end-lsn=#

Stop applying at this lsn. If end-lsn is used, UNDO:s will not be applied

-h, --aria-log-dir-path=name

Path to the directory where to store transactional log

-P, --page-buffer-size=#

The size of the buffer used for index blocks for Aria tables.

-l, --print-log-control-file

Print the content of the aria_log_control_file. From .

-o, --start-from-lsn=#

Start reading log from this lsn.

-C, --start-from-checkpoint

Start applying from last checkpoint.

-s, --silent

Print less information during apply/undo phase.

-T, --tables-to-redo=name

List of comma-separated tables that we should apply REDO on. Use this if you only want to recover some tables.

-t, --tmpdir=name

Path for temporary files. Multiple paths can be specified, separated by colon (:)

--translog-buffer-size=#

The size of the buffer used for transaction log for Aria tables.

-u, --undo

Apply UNDO records to tables. (disable with --disable-undo) (Defaults to on; use --skip-undo to disable.)

-v, --verbose

Print more information during apply/undo phase.

-V, --version

Print version and exit.

This page is licensed: CC BY-SA / Gnu FDL

mariadb-binlog

mariadb-binlog is a utility included with MariaDB for processing binary log and relay log files.

The MariaDB server's binary log is a set of files containing "events" which represent modifications to the contents of a MariaDB database. These events are written in a binary (i.e. non-human-readable) format. The mariadb-binlog utility is used to view these events in plain text.

Prior to , the client was called mysqlbinlog. It can still be accessed under this name, via a symlink in Linux, or an alternate binary in Windows.

mariadb-access

mariadb-access is a tool for checking access privileges, developed by Yves Carlier.

Prior to , the client used to be called mysqlaccess, and can still be accessed under this name, via a symlink in Linux, or an alternate binary in Windows.

It checks the access privileges for a host name, user name, and database combination. Note that mariadb-access checks access using only the , , and host tables. It does not check table, column, or routine privileges specified in the , , or tables.

Usage

If your MariaDB distribution is installed in some non-standard location, you must change the location where mariadb-access expects to find the mariadb client. Edit the mariadb-access script at approximately line 18. Search for a line that looks like this: < $MYSQL = ´/usr/local/bin/mariadb;

path to mariadb executable

<> Change the path to reflect the location where mariadb actually is stored on your system. If you do not do this, a Broken pipe error will occur when you run mariadb-access.

Options

Option
Description

Note

At least the user (-u) and the database (-d) must be given, even with wildcards. If no host is provided, `localhost' is assumed. Wildcards (,?,%,_) are allowed for host, user and db, but be sure to escape them from your shell!! (ie type * or '')

This page is licensed: CC BY-SA / Gnu FDL

innochecksum

innochecksum is a tool for printing checksums for InnoDB files.

Usage

Description

It reads an tablespace file, calculates the checksum for each page, compares the calculated checksum to the stored checksum, and reports mismatches, which indicate damaged pages. It was originally developed to speed up verifying the integrity of tablespace files after power outages but can also be used after file copies. Because checksum mismatches will cause InnoDB to deliberately shut down a running server, it can be preferable to use innochecksum rather than waiting for a server in production usage to encounter the damaged pages.

Multiple filenames can be specified by a wildcard on non-Windows systems only.

innochecksum works with compressed pages, and also includes options to analyze leaf pages to estimate how fragmented an index is and how much benefit can be gained from defragmentation.

innochecksum cannot be used on tablespace files that the server already has open. For such files, you should use to check tables within the tablespace. If checksum mismatches are found, you would normally restore the tablespace from backup or start the server and attempt to use to make a backup of the tables within the tablespace.

Options

innochecksum supports the following options. For options that refer to page numbers, the numbers are zero-based.

Option
Description

Examples

Rewriting a crc32 checksum to replace an invalid checksum:

A count of each page type:

This page is licensed: CC BY-SA / Gnu FDL

Navicat

is a graphical front-end for MariaDB. It is a commercial product with several different versions (Navicat Premium, Navicat for MySQL, etc...) and different "editions" within those versions (Non-commercial, Standard, and Enterprise). Certain features are only available in certain editions/versions.

Navicat is compatible with all versions of MariaDB and with MySQL 3.21 and above. It is available for Windows, MacOS, and Linux.

In addition to standard client features, it includes:

  • a SQL Builder/Editor

  • a Data Modeling Tool (Enterprise version only)

  • Data/Structure Synchronization

  • Report Builder (Windows-only)

  • "Premium" version which can connect to MariaDB, MySQL, SQL Server, SQLite, Oracle, and PostgreSQL databases simultaneously.

A is available. More information, including pricing and "trial" versions, is available on the .

This page is licensed: CC BY-SA / Gnu FDL

Database Workbench

is a Windows application (which works fine under Wine on Linux) for database design, development, maintenance and testing for several database systems: MySQL, MariaDB, Oracle, Firebird, InterBase, Microsoft SQL Server, SQL Anywhere and NexusDB.

With Database Workbench you can:

  • design a database

  • connect to multiple databases

  • view and modify meta data

  • view and modify data

  • import and export data

  • connect to any ODBC/ADO data source

  • transfer data between database systems

  • migrate meta data

  • compare meta data

  • manage privileges

  • debug stored procedure

  • print meta data or data

It includes numerous other tools, .

Database Workbench comes in multiple editions and is licensed on a per module basis, so there's always a version that suits you.

This page is licensed: CC BY-SA / Gnu FDL

SB Data Generator

Generate and populate databases with large volumes of realistic test data.

is a simple and powerful GUI tool for creating large volumes of realistic test data to populate selected tables or entire databases. The tool reverses your database and displays tables and columns, so you can assign to them multiple data generator templates. The tool includes multiple built-in generators that allow populating MariaDB database tables with realistic data of various types.

Key Benefits:

  • Understand your database structure by visualizing the ER Diagram (tables, columns, relationships, keys, sequences, indexes, and triggers)

  • Ability to generate a large volume of realistic test data

  • Preview what data will be generated before populating the database with test data

  • Multiple built-in generators available with the ability to create custom data generators

  • Generate test data for most popular DBMS including MariaDB and MySQL

This page is licensed: CC BY-SA / Gnu FDL

mysql Command-Line Client

mysql is a simple SQL shell with GNU readline capabilities.

From , the client is called mariadb. The old name, mysql, can still be used, via a symlink in Linux, or an alternate binary in Windows.

See for details.

This page is licensed: GPLv2

Sequel Pro

is a fast, easy-to-use Mac database management application for working with MySQL and MariaDB databases.

is open source, so it's easy to be involved and enhance it for MariaDB. You can also help by donating to the project!

If you have any issues with Sequel Pro on MariaDB, please use the for that!

See Also

This page is licensed: CC BY-SA / Gnu FDL

dbForge Studio for MySQL/MariaDB

See

OmniDB

OmniDB is a browser-based tool that simplifies MariaDB database management focusing on interactivity, designed to be powerful and lightweight.

Characteristics:

  • Browser-based Tool: Accessible from any platform, using a browser as a medium.

  • Responsive Interface: All available functions in a single page.

  • Unified workspace: Different technologies managed in a single workspace.

  • Simplified Editing: Easy to add and remove connections.

  • Safety: Multi-user support with encrypted personal information.

  • Interactive Tables: All functionalities use interactive tables, allowing copying and pasting in blocks.

  • Smart SQL Editor: Contextual SQL code completion.

  • Beautiful SQL Editor: You can choose between many available color themes.

  • Tabbed SQL Editor: Easily add, rename or delete editor tabs.

OmniDB Web Page:

This page is licensed: CC BY-SA / Gnu FDL

mysqlbinlog

mysqlbinlog was a utility included with MariaDB for processing and files.

From , the client is called mariadb-binlog. It can still be accessed under its original mysqladmin name via a symlink in Linux, or an alternate binary in Windows.

See for details.

This page is licensed: CC BY-SA / Gnu FDL

phpMyAdmin

phpMyAdmin is a web-based tool for administering MariaDB and MySQL.

It requires a web server, PHP, and a browser.

Read more at

This page is licensed: CC BY-SA / Gnu FDL

SQLyog: Community Edition

SQLyog () is a GUI tool to manage MySQL and MariaDB servers and databases in physical, virtual, and cloud environments. DBAs, developers, and database architects alike, use SQLyog to visually compare, optimize, and document schemas.

Key Features ● Automatically synchronize data ● Visually compare data ● Import external data

Additional Highlights ● Runs on Microsoft Windows with no dependencies on runtimes (such as Microsoft .NET and Java) and database abstraction layers (such as ODBC and JDBC). ● Distributed as a free Community edition and as a paid, proprietary Ultimate edition. Learn about why you should consider upgrading from the Community edition to the Ultimate edition here.

This page is licensed: CC BY-SA / Gnu FDL

TablePlus

is a modern, native app with a clean user interface that allows developers to simultaneously manage databases in a very fast and secure way. TablePlus supports most of the popular databases such as MySQL, Postgres, SQL Server, SQLite, Microsoft SQL Server, Redis, Redshift, Oracle, and many more.

TablePlus is compatible with all versions of MariaDB. It is available for macOS, Windows, iOS, and Linux at the moment.

Some notable features:

  • Native build

  • Convenient query editor

  • Multi Tabs & Code Review

  • Can connect to multiples databases simultaneously.

TablePlus is available for free, but users can purchase a license to remove some limitations and customize the tool for higher needs on .

This page is licensed: CC BY-SA / Gnu FDL

Navicat
feature comparison matrix
Navicat website
Database Workbench
more screen shots are available
dbwoverview
SB Data Generator
Learn more about SB Data Generator
Sequel Pro
Sequel Pro
issue tracking
Sequal Pro home site
Source code
Issue tracking
dbForge Studio for MariaDB
phpmyadmin.net
TablePlus
TablePlus website
table

ocelotgui

The Ocelot GUI (ocelotgui), a database client, allows users to connect to a MySQL or MariaDB DBMS server, enter SQL statements, and receive results. Some of its features are: syntax highlighting, user-settable colors and fonts for each part of the screen, result-set displays with multi-line rows and resizable columns, and a debugger.

Visit ocelot.ca for more information and to download.

This page is licensed: CC BY-SA / Gnu FDL

Valentina Studio

Valentina Studio is a graphical front end for MariaDB with two versions: a free version which supports features offered only in paid for versions of competing products and a Pro version that adds advanced features.

Free Valentina Studio offers the following features:

  • natively available on macOS, Windows & Linux

  • a feature rich, visual SQL Editor with powerful search functionality

  • SQLDIFF

  • a highly productive Data Editor

  • support for many data sources including all versions of MariaDB and MySQL 5.0.6 and later*

  • ODBC import

  • Schema Editor with powerful visual diagramming features, Diagram Editor; import diagrams from MySQL Workbench

  • Report Viewer with printing, export to PDF and HTML (local reports and from Valentina Server)

  • Forms Client for working with visual forms and MariaDB (locally and from Valentina Server)

  • Free supports most popular data sources, MariaDB, MySQL, SQL Server, SQLite, PostgreSQL and more

Use the Valentina Studio FREE vs Valentina Studio PRO feature matrix to see which version is best for your needs or download to immediately evaluate.

This page is licensed: CC BY-SA / Gnu FDL

DbVisualizer

DbVisualizer is a cross-platform database tool for developers, DBAs, analysts and SQL programmers. Both Free and paid Pro version available.

Supported databases: MySQL, MariaDB, PostgreSQL, Netezza, Db2, SQLite, Oracle, Amazon Redshift, Vertica, Snowflake and more.

For almost two decades DbVisualizer has been carefully developed by a small and dedicated team. Development decisions are based on user feedback.

Example of features:

  • Simple navigation of database objects and their properties

  • Visual rendering of primary/foreign keys

  • Table data editing in spreadsheet with Export and import database schema

  • Flexible user interface in light and dark themes

  • Query optimization with an explain plan feature

  • Visual query builder using drag and drop

  • Flexible SQL scripts execution with parameter support

  • SQL formatting and Command-line interface for headless execution

  • All features

This page is licensed: CC BY-SA / Gnu FDL

resolveip

resolveip is a utility for resolving IP addresses to host names and vice versa.

Usage

resolveip [OPTIONS] hostname or IP-address

Options

Option
Description

Option

Description

-?, --help

Display help and exit.

-I, --info

Synonym for --help.

-s, --silent#

Be more silent.

-V, --version

Display version information and exit.

Examples

shell> resolveip mariadb.org
IP address of mariadb.org is 166.78.144.191
resolveip 166.78.144.191
Host name of 166.78.144.191 is mariadb.org

This page is licensed: CC BY-SA / Gnu FDL

Querious

Querious is a database administration tool for macOS.

It can be purchased/downloaded at querious

This page is licensed: CC BY-SA / Gnu FDL

mariadb-access [host [user [db]]] OPTIONS

-?, --help

Displayhelp and exit.

-v, --version

Display version.

-u username, --user=username

Username for logging in to the db.

-p[password], --password[=password]

Password to use for user. If ommitted, mariadb-access prompts for one.

-h hostname, --host=hostname

Name or IP of the host.

-d dbname, --db=dbname

Name of the database.

-U username, --superuser=username

Connect as superuser.

-P password, --spassword=password

Password for superuser.

-H server, --rhost=server

Remote server to connect to.

--old_server

Connect to a very old MySQL servers (before version 3.21) that does not know how to handle full WHERE clauses.

-b, --brief

Single-line tabular report.

-t, --table

Report in table-format.

--relnotes

Print release-notes.

--plan

Print suggestions/ideas for future releases.

--howto

Some examples of how to run `mariadb-access'.

--debug=N

Enter debug level N (0..3).

--copy

Reload temporary grant-tables from original ones.

--preview

Show differences in privileges after making changes in (temporary) grant-tables.

--commit

Copy grant-rules from temporary tables to grant-tables (the grant tables must be flushed after, for example with mariadb-admin reload).

--rollback

Undo the last changes to the grant-tables.

user
db
tables_priv
columns_priv
procs_priv
innochecksum [options] file_name

-a, --allow-mismatches=#

Maximum checksum mismatch allowed before innochecksum terminates. Defaults to 0, which terminates on the first mismatch.

-c, --count

Print a count of the number of pages in the file.

-e num, --end-page=#

End at this page number (0-based).

-?, --help

Displays help and exits.

-I, --info

Synonym for --help.

-f, --leaf

Examine leaf index pages.

-l fn, --log=fn

Log output to the specified filename fn.

-m num, --merge=#

Leaf page count if merge given number of consecutive pages.

-n, --no-check

Ignore the checksum verification. Until , must be used with the --write option.

-p num, --page=#

Check only this page number (0-based).

-D, --page-type-dump=name

Dump the page type info for each page in a tablespace.

-S, --page-type-summary

Display a count of each page type in a tablespace

-i, --per-page-details

Print out per-page detail information.

-u, --skip-corrupt

Skip corrupt pages.

-r, --skip-freed-pages

innochecksum misinterprets freed pages as active, leading to confusion that too many valid pages exist. To avoid this, this option was introduced to avoid freed pages while dumping or printing the summary of the tablespace. From , , , .

-s num, --start-page=#

Start at this page number (0-based).

-C, --strict-check=name

Specify the strict checksum algorithm. One of: crc32, innodb, none. If not specified, validates against innodb, crc32 and none. full_crc32 is not supported. See also innodb_checksum_algorithm. Removed in

-v, --verbose

Verbose mode; print a progress indicator every five seconds.

-V, --version

Displays version information and exits.

-w, --write=name

Rewrite the checksum algorithm. One of crc32, innodb, none. An exclusive lock is obtained during use. Use in conjunction with the -no-check option to rewrite an invalid checksum. Removed in

innochecksum --no-check --write crc32 tablename.ibd
innochecksum --page-type-summary data/mysql/gtid_slave_pos.ibd

File::data/mysql/gtid_slave_pos.ibd
================PAGE TYPE SUMMARY==============
#PAGE_COUNT	PAGE_TYPE
===============================================
       1	Index page
       0	Undo log page
       1	Inode page
       0	Insert buffer free list page
       2	Freshly allocated page
       1	Insert buffer bitmap
       0	System page
       0	Transaction system page
       1	File Space Header
       0	Extent descriptor page
       0	BLOB page
       0	Compressed BLOB page
       0	Page compressed page
       0	Page compressed encrypted page
       0	Other type of page

===============================================
Additional information:
Undo page type: 0 insert, 0 update, 0 other
Undo page state: 0 active, 0 cached, 0 to_free, 0 to_purge, 0 prepared, 0 other
index_id	#pages		#leaf_pages	#recs_per_page	#bytes_per_page
24		1		1		0		0

index_id	page_data_bytes_histgram(empty,...,oversized)
24		1	0	0	0	0	0	0	0	0	0	0	0
InnoDB
CHECK TABLE
mariadb-dump
mariadb
binary log
relay log
mariadb-binlog

mariadb-hotcopy

mariadb-hotcopy is a Perl script that was originally written and contributed by Tim Bunce. It uses FLUSH TABLES, LOCK TABLES, and cp or scp to make a database backup.

Prior to , the client was called mysqlhotcopy. It can still be accessed under this name, via a symlink in Linux, or an alternate binary in Windows.

It is a fast way to make a backup of the database or single tables, but it can be run only on the same machine where the database directories are located. mariadb-hotcopy> works only for backing up MyISAM and ARCHIVE tables. It runs on Unix and NetWare.

To use mariadb-hotcopy, you must have read access to the files for the tables that you are backing up, the SELECT privilege for those tables, the RELOAD privilege (to be able to execute FLUSH TABLES), and the LOCK TABLES privilege (to be able to lock the tables).

shell> mariadb-hotcopy db_name [/path/to/new_directory]
shell> mariadb-hotcopy db_name_1 ... db_name_n /path/to/new_directory

Back up tables in the given database that match a regular expression:

shell> mariadb-hotcopy db_name./regex/

The regular expression for the table name can be negated by prefixing it with a tilde (“~”):

shell> mariadb-hotcopy db_name./~regex/

mariadb-hotcopy supports the following options, which can be specified on the command line or in the [mariadb-hotcopy] and [client] option file groups.

Option
Description

--help, -?

Display a help message and exit.

--addtodest

Do not rename target directory (if it exists); merely add files to it.

--allowold

Do not abort if a target exists; rename it by adding an _old suffix.

--checkpoint=db_name.tbl_name

Insert checkpoint entries into the specified database db_name and table tbl_name.

--chroot=path

Base directory of the chroot jail in which mariadbd operates. The path value should match that of the --chroot option given to mariadbd.

--debug

Enable debug output.

--dryrun, -n

Report actions without performing them.

--flushlog

Flush logs after all tables are locked.

--host=host_name, -h host_name

The host name of the local host to use for making a TCP/IP connection to the local server. By default, the connection is made to localhost using a Unix socket file.

--keepold

Do not delete previous (renamed) target when done.

--method=command

The method for copying files (cp or scp). The default is cp.

--noindices

Do not include full index files for MyISAM tables in the backup. This makes the backup smaller and faster. The indexes for reloaded tables can be reconstructed later with .

--old-server

Connect to old MySQL-server (before v5.5) which doesn't have fully implemented.

--password=password, -ppassword

The password to use when connecting to the server. The password value is not optional for this option, unlike for other MariaDB programs. Specifying a password on the command line should be considered insecure. You can use an option file to avoid giving the password on the command line.

--port=port_num, -P port_num

The TCP/IP port number to use when connecting to the local server.

--quiet, -q

Be silent except for errors.

--record_log_pos=db_name.tbl_name

Record master and slave status in the specified database db_name and table tbl_name.

--regexp=expr

Copy all databases with names that match the given regular expression.

--resetmaster

Reset the binary log after locking all the tables.

--resetslave

Reset the master.info file after locking all the tables.

--socket=path, -S path

The Unix socket file to use for connections to localhost.

--suffix=str

The suffix to use for names of copied databases.

--tmpdir=path

The temporary directory. The default is /tmp.

--user=username, -u username

The MariaDB username to use when connecting to the server.

Use perldoc for additional mariadb-hotcopy documentation, including information about the structure of the tables needed for the--checkpoint and --record_log_pos options:

shell> perldoc mariadb-hotcopy

See Also

  • mariadb-dump

  • mariadb-backup

This page is licensed: CC BY-SA / Gnu FDL

mariadb-secure-installation

Note that many of the reasons for the existence of this script no longer apply (and therefore the guidelines in many online tutorials. In particular, from , Unix socket authentication is applied by default, and there is usually no need to create a root password. See Authentication from MariaDB 10.4.

Prior to , the client was called mysql_secure_installation. It can still be accessed under this name, via a symlink in Linux, or an alternate binary in Windows.

Description

mariadb-secure-installation is a shell script available on Unix systems, and enables you to improve the security of your MariaDB installation in the following ways:

  • You can set a password for root accounts.

  • You can remove root accounts that are accessible from outside the local host.

  • You can remove anonymous-user accounts.

  • You can remove the test database, which by default can be accessed by anonymous users.

mariadb-secure-installation can be invoked without arguments:

shell> mariadb-secure-installation

The script will prompt you to determine which actions to perform.

Example:
localhost:# mariadb-secure-installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none): 
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
You already have a root password set, so you can safely answer 'n'.
Change the root password? [Y/n] n
 ... skipping.
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] y
 ... Success!
Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] y
 ... Success!
By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y
 ... Success!
Cleaning up...
All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!

Options

mariadb-secure-installation accepts some options:

Option
Description

--basedir=dir

Base directory.

--no-defaults

Don't read default options from any option file.

--defaults-file=#

Only read default options from the given file #.

--defaults-extra-file=#

Read this file after the global files are read.

Other unrecognized options will be passed on to the server.

Option Files

In addition to reading options from the command-line, mariadb-secure-installation can also read options from option files. If an unknown option is provided to mariadb-secure-installation in an option file, then it is ignored.

The following options relate to how MariaDB command-line tools handles option files. They must be given as the first argument on the command-line:

Option
Description

--no-defaults

Don't read default options from any option file.

--defaults-file=#

Only read default options from the given file #.

--defaults-extra-file=#

Read this file after the global files are read.

--defaults-group-suffix=#

In addition to the default option groups, also read option groups with this suffix.

Option Groups

mariadb-secure-installation reads options from the following option groups from option files:

Group
Description

[client]

Options read by all MariaDB and MySQL , which includes both MariaDB and MySQL clients. For example, mysqldump.

[client-server]

Options read by all MariaDB client programs and the MariaDB Server. This is useful for options like socket and port, which is common between the server and the clients.

[client-mariadb]

Options read by all MariaDB client programs.

Use With Galera Cluster

This script is not 100% safe for use with as it directly manipulates the mysql.user/mysql.global_priv table, which is not transported by Galera to the other nodes.

You should run this script on the first node in the cluster before adding more nodes.

If you want to run this after the cluster is up and running you should find alternative ways.

Anyone can vote for this to be fixed at MDEV-10112.

This page is licensed: CC BY-SA / Gnu FDL

DeZign for Databases

DeZign for Databases is an intuitive data modeling tool for developers and DBA's that can help you model, create and maintain MariaDB databases.

Supported platforms include:

  • MariaDB

  • MySQL

  • Snowflake

  • SQL Server

  • PostgreSQL

  • SQLite

Key features:

  • Visual database modeling (Entity relationship diagrams).

  • Generate database schemas directly from the data model.

  • Incorporate changes from live databases into your existing models.

  • Create change scripts by comparing your model with the live database structure.

  • Publish and maintain data definitions to ensure consistency and accessibility.

  • Convert models into SQL, streamlining database creation.

  • Create clear and visually appealing ER diagrams, including sub-diagrams for complex systems.

  • Support version control to manage different iterations of your model.

mariadb-dezign-for-databases

Supported OS

DeZign for Databases is available for Windows OS.

More information

See www.datanamic.com for more information.

This page is licensed: CC BY-SA / Gnu FDL

SQLPro Studio

SQLPro Studio is a fully native database client for macOS macOS and iOS. It supports databases such as MySQL, Postgres, Microsoft SQL Server, SQLite, Oracle and more.

SQLPro UI

Features include:

  • Syntax highlighting & Autocomplete (sometimes called intellisense).

  • Customizable themes allowing the query editor to be completely customized.

  • The ability to run multiple queries at one time (and a customizable run query shortcut).

  • Improved query error detection (errors in queries will be underlined red).

  • Full dark mode & light mode support, along with custom themes.

Other features include:

  • Complete SSH Tunnel support.

  • Inline data filtering.

  • Exporting & Exporting options to CSV, JSON & XML.

This page is licensed: CC BY-SA / Gnu FDL

ERBuilder Data Modeler

ERBuilder-logo

ERBuilder Data Modeler is a GUI data modeling tool that allows developers to visualize, design, and model databases by using entity relationship diagrams and automatically generates the most popular SQL databases. Generate and share the data Model documentation with your team. Optimize your data model by using advanced features such as test data generation, schema compare, and schema synchronization

Supported DBMS include:

  • MariaDB

  • MySQL

  • Microsoft SQL Server

  • Microsoft Azure SQL database

  • Oracle

  • PostgreSQL

  • SQLite

  • Firebird

  • Amazon Redshift

  • Amazon RDS

Key features:

  • Visual data modeling

  • Forward and Reverse Engineering

  • Data Model Validation

  • Data model documentation

  • Schema Comparison and Synchronization

  • Test data generation

  • Change Database Platform

  • Generate web user interface for CRUD

  • Version management

ERBuilder-main-screen

Freeware version

Feature limited free version is available for download. Advanced features are available in the commercial edition. A feature comparison matrix is available for more details about features, pricing, and "trial" versions,

More information

See www.soft-builder.com for more information.

This page is licensed: CC BY-SA / Gnu FDL

Improved SQL Document Parser Performance in Updated dbForge Tools for MySQL and MariaDB

Devart has upgraded dbForge Tools for MySQL and MariaDB with improved SQL document parser performance.

Devart, a recognized vendor of database management software, has released new versions of dbForge tools for MySQL product line – dbForge Schema Compare for MySQL, dbForge Data Compare for MySQL, dbForge Query Builder for MySQL and dbForge Data Generator for MySQL.

dbForge Tools for MySQL have the following new features and improvements:

  • Improved SQL document parser performance;

  • Connection through Named Pipe implemented;

  • Improved XML View and new JSON View for Data Editor and Viewer Window;

  • Additional SQL statements are supported;

  • Syntax Check supports new - 10.1 statements;

  • Styled icons are used by default.

The upgraded versions of dbForge Schema Compare for MySQL, dbForge Data Compare for MySQL, dbForge Query Builder for MySQL and dbForge Data Generator for MySQL are provided with Syntax Check that supports new - 10.1 statements, also additional SQL statements are supported and other improvements were made.

For more information about dbForge tools for MySQL, please visit.

About Devart

Devart is one of the leading developers of database tools and administration software, ALM solutions, data providers for various database servers, data integration and backup solutions. The company also implements Web and Mobile development projects. For additional information about Devart, visit.

This page is licensed: CC BY-SA / Gnu FDL

TOAD Edge

Characteristics

Toad Edge™ is a database management application that allows you to perform database administration tasks with ease.

Toad Edge™ allows you to:

  • Connect to your MySQL database, view, explore and edit database structure, database objects and properties.

  • Manage database objects, easily add, edit or drop objects in Object Explorer.

  • Manage data stored in your database, add, edit or remove records.

  • Write complex SQL code comfortably in Worksheet.

  • Compare and synchronize databases using powerful Schema Compare.

  • Obtain detailed information about your databases.

In TOAD Edge 1.2, support for has been added.

Product Information

toad-edge

downloads

Download: Freeware

1657

This page is licensed: CC BY-SA / Gnu FDL

Luna Modeler

Luna Modeler is a database design tool for MariaDB and other relational databases.

Draw diagrams, reverse engineer existing database structures and generate SQL code.

Supported platforms include:

  • MariaDB

  • PostgreSQL

  • SQLite

Key features:

  • Database modeling & schema design

  • Reverse engineering

  • Support for database-specific settings

  • Three display modes: metadata, sample data or descriptions

  • Default values for newly created objects

  • Export to PDF

  • Dark and Light themes

  • SQL script generation

mariadb-database-design-luna-modeler

Supported OS

Luna Modeler is available for Windows, Linux and macOS.

More information

See www.datensen.com for more information.

This page is licensed: CC BY-SA / Gnu FDL

mariadb-fix-extensions

mariadb-fix-extensions converts the extensions for MyISAM (or ISAM) table files to their canonical forms.

Prior to , the client was called mysql_fix_extensions. It can still be accessed under this name, via a symlink in Linux, or an alternate binary in Windows.

It looks for files with extensions matching any lettercase variant of .frm, .myd, .myi, .isd, and .ism and renames them to have extensions of .frm, .MYD, .MYI, .ISD, and .ISM, respectively. This can be useful after transferring the files from a system with case-insensitive file names (such as Windows) to a system with case-sensitive file names.

Invoke mariadb-fix-extensions as follows, where data_dir is the path name to the MariaDB data directory.

mariadb-fix-extensions data_dir

This page is licensed: CC BY-SA / Gnu FDL

mariadb-dumpslow

mariadb-dumpslow is a tool to examine the .

Prior to , the client was called mysqldumpslow. It can still be accessed under this name, via a symlink in Linux, or an alternate binary in Windows.

It parses the slow query log files, printing a summary result. Normally, mariadb-dumpslow groups queries that are similar except for the particular values of number and string data values. It “abstracts” these values to N and ´S´ when displaying summary output. The -a and -n options can be used to modify value abstracting behavior.

Usage

Options

Option
Description

This page is licensed: CC BY-SA / Gnu FDL

dbForge Edge

is a versatile software solution designed to meet the needs of full-stack database specialists. It offers a wide range of features to address database challenges across major providers: MySQL/MariaDB, SQL Server, Oracle, and PostgreSQL. When it comes to MySQL and MariaDB, dbForge Edge provides a highly functional IDE that covers almost all aspects of database development and management.

Key Features of dbForge Edge:

Design

dbForge Edge includes a built-in Database Designer equipped with ER diagrams, allowing users to construct and edit databases. An intuitive interface facilitates the creation of database structures and generation of reusable SQL scripts for creating actual databases. Table Designer is a separate feature for visual creation and management of tables that covers the setup of columns, data types, constraints, etc.

SQL Development

dbForge Edge offers a powerful set of features to simplify SQL coding tasks. The code assistance module offers context-based keyword and object suggestions, code completion, instant syntax validation, customizable code formatting profiles, debugging, and code refactoring capabilities. Another feature worth mentioning is Query Builder – a tool that allows users to construct even the most complex SQL queries effortlessly in a visual mode.

Database Management

The solution incorporates schema and data comparison tools, enabling users to identify and manage differences in database schemas and table data. With automatically generated synchronization scripts, changes can be seamlessly deployed to target platforms. Comparison and synchronization jobs can also be automated, improving user efficiency.

dbForge Edge supports data migration (import and export) in over 10 major data formats. Both the import and export processes can be tailored to meet any specific requirements and automated for efficient workflows.

Also, dbForge Edge delivers Source Control, an integrated tool that enables version control of database schemas and static data, available for MariaDB, MySQL, and SQL Server databases. With its help, users can compare database versions, commit and revert changes with dependency awareness, view and resolve conflicts, and examine the history of changes. Source Control supports all popular version control systems, such as Git (including GitHub, GitLab, Azure DevOps, and Bitbucket), Apache Subversion (SVN), TFVC, Mercurial (Hg), Perforce (P4), and SourceGear Vault.

Testing

The solution features a robust Data Generator capable of producing high-quality test data in varying volumes and formats. Additionally, the Query Profiler tool enables comprehensive analysis and optimization of queries, thereby saving valuable time and resources.

Security Management

The dedicated module deals with user management configurations. The functionality provided by the software allows easy creation, editing, and management of user accounts and privileges.

Documenting and Reporting

With dbForge Edge, users can create detailed database documentation in various formats and with convenient navigation. The reporting module enables the summarization and analysis of data, presenting comprehensive reports with informative graphs, diagrams, and pivot tables.

dbForge Edge is not just a comprehensive IDE for MySQL and MariaDB – it goes far beyond that. It serves as an all-in-one solution for database experts who work with multiple database management systems, eliminating the need to assemble toolsets for each. With its extensive feature set, dbForge Edge empowers professionals to efficiently perform their tasks across diverse database environments.

This page is licensed: CC BY-SA / Gnu FDL

Using mariadb-binlog

The MariaDB server's is a set of files containing "events" which represent modifications to the contents of a MariaDB database.

Prior to , the client was called mysqlbinlog. It can still be accessed under this name, via a symlink in Linux, or an alternate binary in Windows.These events are written in a binary (i.e. non-human-readable) format. The mariadb-binlog utility is used to view these events in plain text.

Run from a command-line like this:

See for details on the available options.

Prior to , the client was called mysqlbinlog. It can still be accessed under this name, via a symlink in Linux, or an alternate binary in Windows.

As an example, here is how you could display the contents of a file named "mariadb-bin.000152":

The logging format is determined by the value of the system variable. If you are using statement-based logging, the output includes the SQL statement, the ID of the server the statement was executed on, a timestamp, and how much time the statement took to execute. If you are using row-based logging the output of an event will not include an SQL statement but will instead output how individual rows were changed.

The output from mariadb-binlog can be used as input to the mariadb client to redo the statements contained in a . This is useful for recovering after a server crash. Here is an example:

If you would like to view and possibly edit the file before applying it to your database, use the '-r' flag to redirect the output to a file:

You can then open the file and view it and delete any statements you don't want executed (such as an accidental DROP DATABASE). Once you are satisfied with the contents you can execute it with:

Be careful to process multiple log files in a single connection, especially if one or more of them have any CREATE TEMPORARY TABLE ... statements. Temporary tables are dropped when the mariadb client terminates, so if you are processing multiple log files one at a time (i.e. multiple connections) and one log file creates a temporary table and then a subsequent log file refers to the table you will get an 'unknown table' error.

To execute multiple logfiles using a single connection, list them all on the mariadb-binlog command line:

If you need to manually edit the binlogs before executing them, combine them all into a single file before processing. Here is an example:

See Also

KS DB Merge Tools for MySQL and MariaDB

Overview

KS DB Merge Tools for MySQL and MariaDB is an easy to use diff & merge tool for MySQL and MariaDB databases allowing to compare and sync both schema and data. It is a Freemium application - many features are exposed in the Free version (available for commercial use), some extended features are available only in the paid Standard version (in many cases can be provided at no cost for open source developers).

Application has tabbed UI, there are several types of tabs responsible for particular application features and scope of tasks. Here are the primary application tabs:

Home tab

It is a starting point to open databases. Shows summary about all database objects. Note that it does not provide information about data/content changes, only about object definitions.

This tab is also used as a starting point to manage diff profiles, making it easy to customize the tool for your specific database project. Here, you can save and reuse custom queries, mappings, and data slices, allowing you to create tailored data diff summaries.

Object list

Lists all objects of some particular type - tables, views, etc. Allows to identify whether some object is new, changed or unchanged (note that for tables and views it does not provide information about data/content changes, only about object definitions). Quick filters available to show only new/changed/new+changed objects. Here we can select required objects on one side and generate a synchronization script to merge these changes to the other side.

Table data diff

Compares data for particular table or view. Quick filters available to show only new/changed/new+changed rows. We can select required rows on one side and generate synchronization script to merge these changes to the other side

Text diff

Compares definition of some particular database programming object like view or stored procedure.

Table structure diff

Compares definition of particular table. Here we can select required changes and generate synchronization script for them. This tab is available only in the Standard version, the Free version is using Text diff tab to compare table definitions.

Batch data diff

Allows to compare data for multiple tables and views, providing summary of data changes for the whole database. This tab is available only in the Standard version.

Query result diff

Compares arbitrary query results, it can be the same query running on both databases or different queries running on the same or different databases. This tab is available only in the Standard version.

Automation and Scripting

The Standard version has support of own domain-specific scripting language designed to automate diff and merge tasks provided by GUI. In addition to the primary GUI, there is a Script Editor application designed to help in writing and troubleshooting scripts and a separate command line utility that is used to run these scripts without user interaction. For the most typical tasks the scripts can be generated just with a single button click on GUI which produces a script relevant for the data or objects you currently observe on UI.

This page is licensed: CC BY-SA / Gnu FDL

DBeaver

is a free multi-platform database tool for developers, SQL programmers, database administrators and analysts. It supports all popular relational databases: MySQL, MariaDB, PostgreSQL, SQLite, Oracle, DB2, SQL Server, Sybase, Teradata, Netezza, etc. Also, it supports NoSQL databases: MongoDB, Cassandra, Redis, Apache Hive, etc. in the Enterprise Edition version.

A brief list of basic features can be found below:

  • Data viewer and editor: sorting, filtering, image displaying, export of selected data and much more.

  • Metadata browser: possibility to view and edit existing tables, views, columns, indexes, procedures, triggers, storage entities (tablespaces, partitions, etc), security entities (users, roles, etc).

  • Data transfer: export and import for files in various formats (CSV, HTML, XML, XLS, XLSX).

  • ER diagrams: possibility to automatically generate ER diagrams for a database/schema (diagram will contain all schema tables) or for a single table and export the diagram in a suitable format.

  • SQL editor: possibility to organize all your scripts in folders, reassign database connections for particular scripts.

  • Data and metadata search: full-text data search using against all chosen tables/views.

  • Database structure comparing: possibility to perform objects structure compare.

DBeaver is actively developed and maintained. Usability is the main goal of this project, so program UI is carefully designed and implemented. Every user can send bug report and feature request on the .

This page is licensed: CC BY-SA / Gnu FDL

Installing MinIO for Usage With mariadb-test-run

When testing the S3 storage engine with the s3 test suite, needs access to Amazon S3 compatible storage.

The easiest way to achieve this is to install , an open source S3 compatible storage.

Here is a shell script that you can use to install MinIO with the right credentials for . This should work on most Linux systems as the binaries are statically linked. You can alternatively download MinIO binaries directly from .

Now you can run the S3 test suite:

If there is an issue while running the test suite, you can see the files created by MinIO with:

or

If you want to use MinIO with different credentials or you want to run the test against another S3 storage you ave to update the update the following files:

This page is licensed: CC BY-SA / Gnu FDL

New Features for mysqltest in MariaDB

Note that not all MariaDB-enhancements are listed on this page. See for a full set of options.

Startup Option --connect-timeout

This can be used to set the MYSQL_OPT_CONNECT_TIMEOUT parameter of mysql_options, to change the number of seconds before an unsuccessful connection attempt times out.

Test Commands for Handling Warnings During Prepare Statements

  • enable_prepare_warnings;

  • disable_prepare_warnings;

Normally, when running with the prepared statement protocol with warnings enabled and executing a statement that returns a result set (like SELECT), warnings that occur during the execute phase are shown, but warnings that occur during the prepare phase are ''not'' shown. The reason for this is that some warnings are returned both during prepare and execute; if both copies of warnings were shown, then test cases would show different number of warnings between prepared statement execution and normal execution (where there is no prepare phase).

The enable_prepare_warnings command changes this so that warnings from both the prepare and execute phase are shown, regardless of whether the statement produces a result set in the execute phase. Thedisable_prepare_warnings command reverts to the default behaviour.

These commands only have effect when running with the prepared statement protocol (--ps-protocol) and with warnings enabled (enable_warnings). Furthermore, they only have effects for statements that return a result set (as for statements without result sets, warnings from are always shown when warnings are enabled).

The replace_regex command supports paired delimiters (like in perl, etc). If the first non-space character in the replace_regex argument is one of (, [, {, <, then the pattern should end with ), ], }, > accordingly. The replacement string can use its own pair of delimiters, not necessarily the same as the pattern. If the first non-space character in the replace_regex argument is not one of the above, then it should also separate the pattern and the replacement string and it should end the replacement string. Backslash can be used to escape the current terminating character as usual. The examples below demonstrate valid usage of replace_regex:

Dumping "exec" output on errors only

Sometimes it is only interesting to see the output of a utility to stdout/stderr, if utility failed. In case of success , the output might be unpredictable, and contain timestamps, startup messages etc. mariadb-backup can be a good example of such utility.

mysqltest in MariaDB can helps in this situation. In the example below, the output of $XTRABACKUP is suppressed, however if exec fails, stdout and stderr both will be dumped , to aid diagnostics:

This page is licensed: CC BY-SA / Gnu FDL

mycli

mycli is a command line interface for MariaDB, MySQL, and Percona with auto-completion and syntax highlighting.

It is written in Python, and runs on Linux, Mac and Windows.

Read more at .

This page is licensed: CC BY-SA / Gnu FDL

dbForge Edge
Download a free 30-day trial of dbForge Edge
Order now
Product home page
Download
Use cases
Documentation
tabs-home
tabs-object-list
tabs-data-diff
tabs-text-diff
tabs-table-structure-diff
tabs-batch-data-diff
tabs-query-result-diff
automation-scripting
DBeaver
GitHub page
screen1
screen2
# Where to install the MinIO binaries and where to store the data
install=/my/local/minio
data=/tmp/shared

# Get the MinIO binaries. You can skip this test if you already have MinIO installed.
mkdir -p $install
wget https://dl.min.io/server/minio/release/linux-amd64/minio -O $install/minio
wget https://dl.min.io/client/mc/release/linux-amd64/mc -O $install/mc
chmod a+x $install/minio $install/mc

# Setup MinIO for usage with mariadb-test-run
MINIO_ACCESS_KEY=minio MINIO_SECRET_KEY=minioadmin $install/minio server $data 2>&1 &
$install/mc config host add local http://127.0.0.1:9000 minio minioadmin
$install/mc mb --ignore-existing local/storage-engine
cd "mysql-source-dir"/mariadb-test
./mariadb-test-run --suite=s3
$install/mc ls -r local/storage-engine
ls $data/storage-engine
mariadb-test/suite/s3/my.cnf
mariadb-test/suite/s3/slave.cnf
mariadb-test-run
MinIO
mariadb-test-run
here
--connect-timeout=N
--replace_regex (/some/path)</another/path>
--replace_regex !/foo/bar!foobar!
--replace_regex {pat\}tern}/replace\/ment/i
--disable_result_log
exec $XTRABACKUP  --param1 --param2  # Note, do not use output redirection here
--enable_result_log
mariadb-test and mariadb-test-embedded
mycli.net
mycli_screenshot

Pausing mariadb-test-run.pl

Sometimes you need to work when your computer is busy running mariadb-test-run.pl. The mariadb-test-run.pl script allows you to stop it temporarily so you can use your computer and then restart the tests when you're ready.

There are two ways to enable this:

  1. Command-line: The --stop-file and--stop-keep-alive options.

  2. Environment Variables: If you are calling mariadb-test-run.pl indirectly (i.e from a script or program such as buildbot) you can setMTR_STOP_FILE and MTR_STOP_KEEP_ALIVE.

Keep Alive

If you plan on using this feature with other programs, such as buildbot, you should set the MTR_STOP_KEEP_ALIVE environment variable or the --stop-keep-alive command-line option with a value in seconds. This will make the script print messages to whatever program is calling mariadb-test-run.pl at the interval you set to prevent timeouts.

If you are calling mariadb-test-run.pl directly, you do not need to specify a timeout.

The mariadb-test-run Stop File

The stop file is a temporary file that you create on your system when you want to pause the execution of mariadb-test-run. When enabled via the command-line or environment variable options, mariadb-test-run will periodically check for the existence of the file and if it exists it will stop until the file is no longer present.

Examples

Command-line:

mariadb-test-run.pl --stop-file="/path/to/stop/file" --stop-keep-alive=120

Environment Variables:

export MTR_STOP_FILE="/path/to/stop/file"
export MTR_STOP_KEEP_ALIVE=120
mariadb-test-run.pl

This page is licensed: CC BY-SA / Gnu FDL

mariadb-dumpslow [ options... ] [ logs... ]

-a

Don't abstract all numbers to N and strings to 'S'

-d, --debug

Debug

-g PATTERN

Grep: only consider statements that include this string

--help

Display help

-h HOSTNAME

Hostname of db server for -slow.log filename (can be wildcard), default is '', i.e. match all

-i NAME

Name of server instance (if using mysql.server startup script)

-l

Don't subtract lock time from total time

-n NUM

Abstract numbers with at least NUM digits within names

-r

Reverse the sort order (largest last instead of first)

-s ORDER

What to sort by (aa, ae, al, ar, at, a, c, e, l, r, t). at is default. aa average rows affected ae aggregated number of rows examined al average lock time ar average rows sent at average query time a rows affected c count e rows examined l lock time r rows sent t query time

-t NUM

Just show the top NUM queries.

-v, --verbose

Verbose mode.

slow query log
mariadb-binlog [options] log_file ...
mariadb-binlog mariadb-bin.000152
mariadb-binlog binlog-filenames | mysql -u root -p
mariadb-binlog -r filename binlog-filenames
mariadb -u root -p --binary-mode < filename
mariadb-binlog mariadb-bin.000001 mariadb-bin.000002 | mariadb -u root -p --binary-mode
mariadb-binlog mariadb-bin.000001 > /tmp/mariadb-bin.sql
mariadb-binlog mariadb-bin.000002 >> /tmp/mariadb-bin.sql
# make any edits
mariadb -u root -p -e "source /tmp/mariadb-bin.sql"
binary log
mariadb-binlog
mariadb-binlog Options
binary log
binlog_format
binary log
mariadb-binlog
mariadb-binlog Options
myisamchk -rq
FLUSH TABLES WITH READ LOCK
client programs

dbForge Documenter for MariaDB and MySQL

dbForge Documenter is a useful tool for the MariaDB database that allows for the automatic generation of database documentation in such formats as HTML, PDF, and Markdown. Users can adjust the created documentation with a great variety of options.

dbForge Documenter for MariaDB and MySQL Key Features:

1. Searchable MariaDB & MySQL documentation

Get the benefits of the search as you type principle

View the highlighted matching text after entering the name of a required object in the search field

doc-search

2. Broad compatibility options

MariaDB server versions 5.5-11.4

Various cloud services: Amazon RDS, Amazon Aurora, Google Cloud, Oracle MySQL Cloud, Alibaba Cloud

Security connections: Secure Socket Layer (SSL), Secure Shell (SSH), HTTP Tunneling, PAM Percona

compatiblity

3. Broad picture of database structure

Get the detailed MariaDB database information, such as types, details, and properties of the objects, inter-object dependencies, and DDL codes

database-structure

4. Rich customization of document management

Enjoy various style templates allowing for alteration of documentation layout

custom-features

5. Several Document Formats supported:

  • HTML and PDF (searchable formats)

  • Markdown

formats

6. Extended properties support

Edit an object description or add it if it is not specified

Download a free 30-day trial of dbForge Documenter for MariaDB and MySQL here.

Documentation

Version
Introduced

dbForge Documenter 10.1

Support for the rds-ca-rsa2048-g1 SSL/TLS certificate for connecting to MariaDB servers on AWS and enhanced cloud compatibility features, new automation capabilities

dbForge Documenter 10.0

Support for , Added support for temporal tables in MariaDB

dbForge Documenter 2.2

Support for

dbForge Documenter 2.1

Support for , Support for

dbForge Documenter 2.0

Connectivity support for is added

dbForge Documenter 1.2

Support for

dbForge Documenter 1.1

Support for

This page is licensed: CC BY-SA / Gnu FDL

MariaDB Direct Query Adapter For Microsoft Power BI

MariaDB Direct Query Adapter for Power BI enables Microsoft Power BI Desktop users to remotely connect to and query their MariaDB database including on MariaDB SkySQL without downloading the entire data set to their local machine.

MariaDB Direct Query Adapter is a Microsoft certified connector for Microsoft Power BI Desktop.

About

Microsoft Power BI Desktop is a free business intelligence tool available as a downloadable desktop client. Built for analysts, Microsoft Power BI provides state-of-the-art interactive visualizations, with industry-leading data query and modeling built-in. It is one of the top business intelligence tools in use globally.

MariaDB database products support analytics and data warehousing in addition to transactional databases. Customers can meet the challenges from complex workloads using a single stack. MariaDB Enterprise Server includes pluggable smart storage engines to meet specific workload needs and connectors for high-performance data access by applications.

is a columnar storage engine designed to handle the extremely large data sets and ad hoc queries of analytical workloads. Data is written to disk by column rather than row and is automatically partitioned. Columnar data storage is designed to deliver real time analysis on billions of rows. MariaDB Enterprise ColumnStore is a plugin storage engine and is included with MariaDB Enterprise Server.

MariaDB Direct Query Adapter enables Power BI users to work with remote data without the need to download it onto the local machine. Downloading analytical data sets can present challenges such as download speed and inadequate memory on a local machine, and even a powerful laptop or desktop will be outperformed by the processing power of a high end server or MPP system. MariaDB's Direct Query Adapter enables users to avoid these limitations and provides robust querying and data visualization from any location.

Requirements

MariaDB Direct Query Adapter for Microsoft Power BI requires:

  • Microsoft Power BI Desktop

  • MariaDB ODBC Connector v3.1.10 or later.

Download and Install

To use MariaDB Direct Query Adapter with Microsoft Power BI Desktop:

  1. Check the system requirements for Microsoft Power BI Desktop.

  2. Download Microsoft Power BI Desktop using the Microsoft instructions.

  3. Download MariaDB ODBC Connector.

  4. Select MariaDB ODBC Connector v3.1.10 or later for MS Windows 64-bit.

  5. Click on the download or choose "Open" to start the MariaDB ODBC Connector 64-bit Setup Wizard.

  6. Click "Next".

  7. Read and accept the terms and agreement.

  8. Click "Next".

  9. Choose "Typical" for installation type and click "Install".

  10. When asked if you want to allow this app to makes changes to your device, click "Yes".

  11. If you have older versions of MariaDB ODBC Connector 64-bit, select "Make User DSN's for older Connector version to use this version" and click "Finish". Otherwise, just click "Finish".

Connect

Connect to your remote MariaDB database from Power BI Desktop using the MariaDB Direct Query Adapter.

  1. Open Microsoft Power BI Desktop.

  2. From the Power BI home screen, choose Get Data->More. Enter "MariaDB". Select MariaDB from the menu and click "Connect".

  3. Enter the data source. This will be an IP address and port number, or in the case of SkySQL, it will be the qualified domain name and port number.

  4. Select "DirectQuery" and click "OK".

  5. Enter your user name and password and click "Connect".

You are now connected to your remote MariaDB database and can use Microsoft Power BI to run queries without the need to download the data locally.

Queries

The MariaDB Direct Query Adapter for Power BI interacts with the SQL layer. It is upstream of the storage engine, so queries can be done regardless of the underlying storage engine.

For example, MariaDB Direct Query Adapter for Microsoft Power BI can be used to query data on a row-based transactional database using the InnoDB storage engines or a column-based data warehouse using the MariaDB Enterprise ColumnStore storage engine to deliver real time analysis of billions of rows of data.

Relationships

Power BI depends on relationships for data analysis. These relationships are automatically established for row-based databases, for example those using the InnoDB storage engine.

Because column-based storage engines such as MariaDB Enterprise ColumnStore do not use indexes, relationships must be set up manually. For more about creating relationships in Power BI see Create and Manage Relationships in Power BI.

This page is: Copyright © 2025 MariaDB. All rights reserved.

mariadb-convert-table-format

mariadb-convert-table-format converts the tables in a database to use a particular storage engine (MyISAM by default).

Prior to , the client was called mysql_convert_table_format. It can still be accessed under this name, via a symlink in Linux, or an alternate binary in Windows.

Usage

mariadb-convert-table-format [options] db_name

Description

mariadb-convert-table-format is written in Perl and requires that the DBI and DBD::mysql Perl modules be installed

Invoke mariadb-convert-table-format like this:

shell> mariadb-convert-table-format [options]db_name

The db_name argument indicates the database containing the tables to be converted.

Options

mariadb-convert-table-format supports the options described in the following list:

Option
Description

-?, --help

Display help and exit.

-e, --engine=ENGINE

Specify the storage engine that the tables should be converted to use. The default is if this option is not given.

-f, --force

Continue even if errors occur.

-h, --host=host_name

Connect to the MariaDB server on the given host. Default localhost.

-p, --password=password

The password to use when connecting to the server. Note that the password value is not optional for this option, unlike for other client programs. Specifying the password on the command-line is generally considered insecure.

-P, --port=port_num

The TCP/IP port number to use for the connection.

-S, --socket=path

For connections to localhost, the Unix socket file to use.

-u, --user=user_name

The MariaDB user name to use when connecting to the server.

-v, --verbose

Verbose mode. Print more information about what the program does.

-V, --version

Display version information and exit.

This page is licensed: CC BY-SA / Gnu FDL

dbForge Data Generator

is a powerful solution that helps create massive volumes of meaningful and realistic data. This tool performs various predefined data generators with customizable options.

Data Generator Key Features:

1. Extensive support for all column data types

Enjoy the advantage of various data types support

2. Multiple generators with unique test data

Enjoy multiple customization options with individual generators for every data type supported

3. MariaDB data generation and data integrity support

Generate consistent random data through multiple tables

Disable triggers and constraints to avoid interference with database logic

4. MariaDB data distribution modes

Fine-tune the way you want your data to be generated

5. Multiple ways to generate data in MySQL

Generate a data population script, execute it against a MariaDB database, save or edit it later

6. Basic generators

Populate tables with a great variety of values types, like JSON, Python, XML, etc.

7. Meaningful test data generators

Select any of 200+ real-world generators and populate tables with realistic data related to various spheres

8. User-defined generators

Create, save and use your own data generators tailored for your needs

9. Real-time data generation preview

Enjoy real-time visualization of the alterations you make

Visually assess the data to be generated

10. Command-line interface

Schedule your routine data generation tasks

Create a command-line execution file for running database documentation tasks

11. Broad compatibility options

MariaDB server versions 5.5-11.4

Various cloud services: Amazon RDS, Amazon Aurora, Google Cloud, Oracle MySQL Cloud, Alibaba Cloud

Security connections: Secure Socket Layer (SSL), Secure Shell (SSH), HTTP Tunneling, PAM Percona

Download a free 30-day trial of dbForge Data Generator .

Version
Introduced

This page is licensed: CC BY-SA / Gnu FDL

mariadb-stress-test

mariadb-stress-test is a symlink to mysql-stress-test, the script for assisting with adding users or databases or changing passwords in MariaDB.

mysql-stress-test is the symlink, and mariadb-stress-test the binary name.

mysql-stress-test is the binary name.

mariadb-stress-test.pl is a Perl script that performs stress-testing of the MariaDB server. It requires a version of Perl that has been built with threads support.

Syntax

mariadb-stress-test.pl [options]

Options

Option
Description

--help

Display a help message and exit.

--abort-on-error=N

Causes the program to abort if an error with severity less than or equal to N was encountered. Set to 1 to abort on any error.

--check-tests-file

Periodically check the file that lists the tests to be run. If it has been modified, reread the file. This can be useful if you update the list of tests to be run during a stress test.

--cleanup

Force cleanup of the working directory.

--log-error-details

Log error details in the global error log file.

--loop-count=N

In sequential test mode, the number of loops to execute before exiting.

--mysqltest=path

The path name to the mysqltest program.

--server-database=db_name

The database to use for the tests. The default is test.

--server-host=host_name

he host name of the local host to use for making a TCP/IP connection to the local server. By default, the connection is made to localhost using a Unix socket file.

--server-logs-dir=path

This option is required. path is the directory where all client session logs will be stored. Usually this is the shared directory that is associated with the server used for testing.

--server-password=password

The password to use when connecting to the server.

--server-port=port_num

The TCP/IP port number to use for connecting to the server. The default is 3306.

--server-socket=file_name

For connections to localhost, the Unix socket file to use, or, on Windows, the name of the named pipe to use. The default is /tmp/mysql.sock.

--server-user=user_name

The MariaDB user name to use when connecting to the server. The default is root.

--sleep-time=N

The delay in seconds between test executions.

--stress-basedir=path

This option is required and specified the path is the working directory for the test run. It is used as the temporary location for result tracking during testing.

--stress-datadir=path

The directory of data files to be used during testing. The default location is the data directory under the location given by the --stress-suite-basedir option.

--stress-init-file[=path]

file_name is the location of the file that contains the list of tests to be run once to initialize the database for the testing. If missing, the default file is stress_init.txt in the test suite directory.

--stress-mode=mode

This option indicates the test order in stress-test mode. The mode value is either random to select tests in random order or seq to run tests in each thread in the order specified in the test list file. The default mode is random.

--stress-suite-basedir=path

This option is required and specifies the directory that has the t and r subdirectories containing the test case and result files. This directory is also the default location of the stress-test.txt file that contains the list of tests. (A different location can be specified with the --stress-tests-file option.)

--stress-tests-file[=file_name]

Use this option to run the stress tests. file_name is the location of the file that contains the list of tests. If omitted, the default file is stress-test.txt in the stress suite directory. (See --stress-suite-basedir.)

--suite=suite_name

Run the named test suite. The default name is main (the regular test suite located in the mysql-test directory).

--test-count=N

The number of tests to execute before exiting.

--test-duration=N

The duration of stress testing in seconds.

--threads=N

The number of threads. The default is 1.

--verbose

Verbose mode. Print more information about what the program does

CC BY-SA / Gnu FDL

dbForge Data Generator 10.1

Support for the rds-ca-rsa2048-g1 SSL/TLS certificate for connecting to MariaDB servers on AWS and enhanced cloud compatibility features, new automation capabilities

dbForge Data Generator 10.0

Support for , Added support for temporal tables in MariaDB

dbForge Data Generator 2.6

Support for

dbForge Data Generator 2.5

Support for , Support for

dbForge Data Generator 2.4

Connectivity support for is added

dbForge Data Generator 2.2

Support for

dbForge Data Generator 2.1

Support for

dbForge Data Generator 2.0

Support for , Support for

dbForge Data Generator for MariaDB and MySQL
here
Documentation
column-data-types
custom-options
basic-generators-1
meaningful-generators-1
MyISAM

dbForge Data Compare

dbForge Data Compare helps compare and synchronize data in MariaDB, MySQL, and Percona databases and scripts folders. With this powerful GIU tool, you can easily find differences between your data, as it helps analyze comparison results, creates a synchronization script, and applies changes. Plus, MariaDB data can be compared with command-line support.

dbForge Data Compare Tool Features:

1. Database Synchronization Features

  • Create accurate synchronization scripts

  • Synchronize asynchronous data

  • Create custom scripts with execution before/after the process of data synchronization

  • Get warning messages on errors during synchronization

synchronization-features

2. MySQL & MariaDB Task Automation

  • Automate routine synchronizations with a command-line interface

  • Plan your routine execution with Windows Scheduler

  • Support for PowerShell compatibility

automate-routine-task

3. Script for Folder Data Comparison

  • Compare data from your database with the data placed in the script folder locally

  • Choose any database, connection, or script folder with the new Data Comparison Wizard

  • See the data comparison results in a data result grid

script-folder-comparison

4. Rich configurations for data comparison

  • Enjoy various options for automatic mapping

  • Compare customized queries

  • Compare custom keys

data-comparsion-setup

5. Supported Data

  • Tables

  • Temporal tables

  • Views

  • BLOB data

  • Compare databases and sync different MariaDB versions

6. Broad Compatibility Options

  • All popular MariaDB server versions

  • MariaDB set up on Windows, Linux, FreeBSD, etc.

  • Various cloud services: Amazon RDS, Amazon Aurora, Google Cloud, Oracle MySQL Cloud, Alibaba Cloud

  • Secure Socket Layer (SSL), Secure Shell (SSH), HTTP Tunneling, PAM Percona security connections

7. Manage Comparison Results

  • Find tables by name

  • Filter the comparison process results

  • Enter the values of default comparison options

  • Group records by type in each compared object

8. Export Comparison Results

  • Use only relevant data in your reports

  • Generate comparison reports in various formats

Download a free 30-day trial of dbForge Data Compare here.

Documentation

Version
Introduced

dbForge Data Compare 10.1

Support for the rds-ca-rsa2048-g1 SSL/TLS certificate for connecting to MariaDB servers on AWS and enhanced cloud compatibility features, new automation capabilities

dbForge Data Compare 10.0

Support for , Added support for temporal tables in MariaDB

dbForge Data Compare 5.9

Support for

dbForge Data Compare 5.8

Support for , Support for

dbForge Data Compare 5.7

Connectivity support for is added

dbForge Data Compare 5.5

Support for

dbForge Data Compare 5.4

Support for

dbForge Data Compare 5.3

Support for , Support for

dbForge Data Compare 4.1

,

This page is licensed: CC BY-SA / Gnu FDL

dbForge Schema Compare for MariaDB & MySQL

dbForge Schema Compare is an efficient solution that allows for the comparison of the MariaDB database structure. With this tool, you can easily find the differences in MariaDB database schemas.

Schema Compare Tool Key features:

1.MariaDB & MySQL Schema Synchronization

Update MariaDB schemas by generating accurate synchronization scripts

Preview sync scripts for any schema objects

Customize the synchronization output with various options

Get warnings on possible errors while synchronization

Sync asynchronous structure

SynchronizationFeatures

2. MariaDB Backup and Restore

Enjoy the advantages of MariaDB backup and restore Wizards

Have a full or partial backup

Restore database and schedule backups with a command-line interface

Support for databases over 2Gb

DatabaseBackup

3. Scripts Folder Comparison

Compare the data both in two different databases and the database data with the data placed locally

Choose any connection and script folder stored locally with the new Data Comparison Wizard

View the comparison process results in a data grid

script-folder-comparison

4. Routine Tasks Automation

Sync and compare database schemas with command-line support

Use the Windows Scheduler to automate the sync processes

Run synchronization and schema comparison tasks with command-line execution files

HowcanIautomatemyroutinetasks

5. Supported Schema Objects

Packages

Sequences

SupportedSchemaObjects

6. Database Structure Comparison Configuration

Filter the types of objects before the comparison

Dismiss particular table options while comparing

Use the Schema Comparison Wizard for switching between the Target and Source databases

DatabaseStructureComparisonSetup

7. Comparison Results Analysis

Sort and filter the compared objects

Get a clear view of MariaDB and MySQL schema diffs in the grid.

Manage groups of compared objects

HowcanIanalyzecomparisonresults

8. Comparison Results Export

Generate comparison results reports in HTML, Excel XML, XML for Excel

Include specifically selected objects in your comparison report

HowcanIexportdatacomparisonresults

9. Broad Compatibility

MariaDB server versions 5.5-11.4

All MariaDB instances set up on Windows, Linux, FreeBSD, etc.

Various cloud services: Amazon RDS, Amazon Aurora, Google Cloud, Oracle MySQL Cloud, Alibaba Cloud

Security connections: Secure Socket Layer (SSL), Secure Shell (SSH), HTTP Tunneling, PAM Percona

broad-compatibility-new

Download a free 30-day trial of dbForge MariaDB and MySQL Schema Compare here.

Documentation

Version
Introduced

dbForge Schema Compare 10.1

Support for the rds-ca-rsa2048-g1 SSL/TLS certificate for connecting to MariaDB servers on AWS and enhanced cloud compatibility features, new automation capabilities

dbForge Schema Compare 10.0

, Added support for temporal tables in MariaDB

dbForge Schema Compare 5.2

dbForge Schema Compare 5.1

,

dbForge Schema Compare 5.0

dbForge Schema Compare 4.4

dbForge Schema Compare 4.3

dbForge Schema Compare 4.2

,

dbForge Schema Compare 3.1

,

This page is licensed: CC BY-SA / Gnu FDL

aria_chk

icon: question

aria_chk

aria_chk

aria_chk is used to check, repair, optimize, sort and get information about tables.

With the MariaDB server you can use , and to do similar things.

Note: aria_chk should not be used when MariaDB is running. MariaDB assumes that no one is changing the tables it's using!

Usage:

Aria table information is stored in 2 files: the .MAI file contains base table information and the index and the .MAD file contains the data.aria_chk takes one or more .MAI files as arguments.

The following groups are read from the my.cnf files:

  • [maria_chk]

  • [aria_chk]

Options and Variables

Global Options

The following options to handle option files may be given as the first argument:

Option
Description

Main Arguments

Option
Description

Check Options (--check is the Default Action for aria_chk):

Option
Description

Recover (Repair) Options (When Using '--recover' or '--safe-recover'):

Option
Description

Other Options

Option
Description

Variables

Option
Description

Usage

One main usage of aria_chk is when you want to do a fast check of all Aria tables in your system. This is faster than doing it in MariaDB as you can allocate all free memory to the buffers.

Assuming you have a bit more than 2G free memory.

The following commands, run in the MariaDB data directory, check all your tables and repairs only those that have an error:

If you want to optimize all your tables: (The --zerofill is used here to fill up empty space with \0 which can speed up compressed backups).

In case you have a serious problem and have to use --safe-recover:

This page is licensed: CC BY-SA / Gnu FDL

mariadb-upgrade

mariadb-upgrade

mariadb-upgrade is a tool that checks and updates your tables to the latest version.

Prior to , the client was called mysql_upgrade. It can still be accessed under this name, via a symlink in Linux, or an alternate binary in Windows.

You should run mariadb-upgrade after upgrading from one major MySQL/MariaDB release to another, such as or to . You also have to use mariadb-upgrade after a direct "horizontal" migration, for example from MySQL 5.5.40 to . It's also safe to run mariadb-upgrade for minor upgrades, as if there are no incompatibilities nothing is changed.

It needs to be run as a user with write access to the data directory.

MariaDB starting with

Starting from mariadb-upgrade 2.0, the user running the upgrade tool must have write access to datadir/mysql_upgrade_info, so that the tool can write the current MariaDB version into the file. mariadb-upgrade (or mysql_upgrade) was updated in , , , , , and newer.

mariadb-upgrade is run after starting the new MariaDB server. Running it before you shut down the old version will not hurt anything and will allow you to make sure it works and figure out authentication for it ahead of time.

It is recommended to make a of all the databases before running mariadb-upgrade.

In most cases, mariadb-upgrade should just take a few seconds. The main work of mariadb-upgrade is to:

  • Update the system tables in the mysql database to the latest version (normally just add new fields to a few tables).

  • Check that all tables are up to date (runs ). For tables that are not up to date, runs on the table to update it. A table is not up to date if:

  • The table uses an index for which there has been a change (rare)

  • A format change in the storage engine requires an update (very rare)

Using mariadb-upgrade

mariadb-upgrade is mainly a framework to call . mariadb-upgrade works by doing the following operations:

The connect options given to mariadb-upgrade are passed along to and .

The mysql_fix_privilege_tables script is not actually called; it's included as part of mariadb-upgrade

If you have a problem with mariadb-upgrade try run it in very verbose mode:

mariadb-upgrade also saves the MariaDB version number in a file named mysql_upgrade_info in the . This is used to quickly check whether all tables have been checked for this release so that table-checking can be skipped. For this reason,mariadb-upgrade needs to be run as a user with write access to the data directory. To ignore this file and perform the check regardless, use the --force option.

Options

mariadb-upgrade supports the following options:

Option
Description

mariadb-upgrade 2.0

mariadb-upgrate/mysql_upgrade 2.0 was introduced in , , , , , .

Previously the tool first ran the upgrade process and then created the datadir/mysql_upgrade_info file. If the file could not be created because of permissions (mariadb-upgrade did not have rights to create the file), mariadb-upgrad gave an error, but this was often ignored. One effect of not being able to create the mysql_upgrade_info file was that every new mariadb-upgrade run would have to do a full upgrade check, which can take a while if there are a lot of tables.

mariadb-upgrade 2.0 fixes the following issues:

  • The datadir/mysql_upgrade_info is now created at the start of the upgrade process and locked. This ensures that two mariadb-upgrade processes cannot be run in parallel, which can cause deadlocks (). One side-effect of this is that mariadb-upgrade has to have write access to datadir, which means it has to be run as the user that installed MariaDB, normally 'mysql' or 'root' .

  • One can use mariadb-upgrade --force --force to force the upgrade to be run, even if there was no version change or if one doesn't have write access to datadir. Note that if this option is used, the next mariadb-upgrade run will assume that there is a major version change and the upgrade must be done (again).

  • The upgrade will only be done if there is a major server version change (10.4.X -> 10.5.X). This will avoid unnecessary upgrades.

  • New option added: --check-if-upgrade-is-needed. If this is used, mariadb-upgrade will return 0 if there has been a major version change and one should run mariadb-upgrade. If not upgrade is need, 1 will be returned.

  • --verbose writes more information, including from which version to which version the upgrade will be done.

  • Better messages when there is no need to run mariadb-upgrade.

Option Files

In addition to reading options from the command-line, mariadb-upgrade can also read options from . If an unknown option is provided to mariadb-upgrade in an option file, then it is ignored.

The following options relate to how MariaDB command-line tools handles option files. They must be given as the first argument on the command-line:

Option
Description

In and later, mariadb-upgrade is linked with . However, MariaDB Connector/C does not yet handle the parsing of option files for this client. That is still performed by the server option file parsing code. See for more information.

Option Groups

mariadb-upgrade reads options from the following from :

Group
Description

Differences Between mysql_upgrade in MariaDB and MySQL

This is as of :

  • MariaDB will convert long properly.

  • MariaDB will convert tables (no need to do a dump/restore or ).

  • MariaDB will convert old archive tables to the new 5.1 format.

  • "mysql_upgrade --verbose" will run "mariadb-check --verbose" so that you get more information of what is happening. Running with 3 times --verbose will in print out all CHECK, RENAME and ALTER TABLE commands executed.

  • The is upgraded live; no need to restart the server to use events if the event table has changed ( and ).

  • More descriptive output.

Speeding Up mariadb-upgrade

  • If you are sure that all your tables are up to date with the current version, then you can run mariadb-upgrade ---upgrade-system-tables, which will only fix your system tables in the mysql database to be compatible with the latest version.

The main reason to run mariadb-upgrade on all your tables is to allow it to check that:

  • There has not been any change in table formats between versions.

  • This has not happened since .

  • If some of the tables are using an index for which we have changed sort order.

  • This has not happened since .

If you are 100% sure this applies to you, you can just run mariadb-upgrade with the ---upgrade-system-tables option.

Symptoms of Not Having Run mariadb-upgrade When It Was Needed

  • Errors in the that some system tables don't have all needed columns.

  • Updates or searches may not find the record they are attempting to update or search for.

  • may report the wrong checksum for or tables.

  • The error message "Cannot load from mysql.proc. The table is probably corrupted."

To fix issues like this, run mariadb-upgrade, , and if needed on the wrong table.

Other Uses

  • mariadb-upgrade will re-create any missing tables in the . It will not touch any data in existing tables.

See Also

This page is licensed: CC BY-SA / Gnu FDL

dbForge Query Builder for MySQL & MariaDB

is a powerful visual tool that helps create any sort of MariaDB queries. Building a code has never been so easy – the query can be drawn on a diagram.

dbForge Query Builder Key features:

1. Exporting Data

Export your data to 14 popular formats

Export data from several tables simultaneously

Create templates for repeated operations

2. Database Explorer

Work with multiple database connections

Easy MariaDB query management with drag&drop functionality

Quick script generation

3. Visual Drag and Drop Query Builder

Enjoy zooming and keyboard support in a sophisticated diagram

Preview and print diagrams

Add and edit sub-queries visually

MariaDB JOINs generator

4. SQL Editing and Execution

Check the syntax automatically

Get quick information about schema objects

Customize formatting profiles

Execute scripts, statements and MariaDB fragments seamlessly

5. Query Profiler

Compare the results of the query visually

Review and evaluate a query plan shown in the tree view

Get the detailed query information

6. Data Editor

Enjoy advanced data filters

Browse and edit large objects in Data Viewer and Editor windows

Fetch asynchronous data

7. Data Reports

Data Report wizard supports building Data Reports and customizing them with a rich set of controls.

8. Master-Detail Browser

Allows users to view and analyze the data of several related database objects in a master-detail structured document. Edit data, build relationships, filter data based on specific criteria, sort data, etc. in the Design and Data views.

9. Pivot Tables

Let the user manipulate the data visually, including sorting, grouping, or filtering fields, building charts, and calculating totals.

Download a free 30-day trial of dbForge Query Builder for MariaDB and MySQL .

Version
Introduced

This page is licensed: CC BY-SA / Gnu FDL

mariadb-import-utility

Mariadb Import Utility

Overview

MariaDB Enterprise Server users can import data into a database using the mariadb-import utility:

  • The mariadb-import utility provides a command-line interface (CLI)

  • The mariadb-import utility can import data from TSV and CSV files

  • The mariadb-import utility is available for Linux and Windows

  • The mariadb-import utility supports many command-line options

Compatibility

Installation

Installation of MariaDB Import varies by operating system.

Linux (Repository)

  1. Configure a MariaDB repository.

Before MariaDB Import can be installed on Linux, a MariaDB repository must be configured. MariaDB Corporation offers multiple repositories: **For MariaDB Corporation customers, the MariaDB Enterprise Repository is available.**For anyone else, the MariaDB Community Repository is publicly available.

For additional information on how to configure a MariaDB repository, see "Configure MariaDB Repository".

  1. Install MariaDB Import and package dependencies.

Install on CentOS / RHEL / Rocky Linux (YUM):

Install on Debian / Ubuntu (APT):

Install on SLES (ZYpp):

Windows

  1. Access for MariaDB Community Server.

  2. In the "Version" dropdown, select the version you want to download.

  3. In the "OS" dropdown, select "MS Windows (64-bit)".

  4. Click the "Download" button to download the MSI package.

  5. When the MSI package finishes downloading, run it.

  6. On the first screen, click "Next" to start the Setup Wizard.

  7. On the second screen, click the license agreement checkbox, and then click "Next".

  8. On the third screen, select the components you want to install. If you only want the standard MariaDB Client tools:

  • Deselect "Database instance".

  • Deselect "Backup utilities".

  • Deselect "Development Components".

  • Deselect "Third party tools".

  • When only "Client programs" is selected, click "Next".

  1. On the next screen, click "Install".

  2. When the installation process completes, click "Finish".

Import Data

The procedure to import data depends on the operating system.

Linux

  1. Determine the connection parameters for your MariaDB Enterprise Server database.

  2. Use MariaDB Import with the connection information to import the data from the TSV or CSV file into your MariaDB Enterprise Server database:

Replace FULLY_QUALIFIED_DOMAIN_NAME with the IP address or Fully Qualified Domain Name of your database Replace TCP_PORT with the TCP port of your databaseReplace DATABASE_USER with the username for your database user account If TLS is required, replace /PATH_TO_PEM_FILE with the path to the certificate authority chain (.pem) fileIf your file is a CSV file, rather than a TSV file, specify --fields-terminated-by=, Specify the database name as the first argument (from above, accounts)The table name is extracted from the TSV or CSV file's basename (from above, contacts)

  1. After the command is executed, you will be prompted for the password of your database user account.

Windows

  1. Fix your executable search path.

On Windows, MariaDB Import is not typically found in the executable search path by default. You must find its installation path, and add that path to the executable search path:

  1. Determine the connection parameters for your MariaDB Enterprise Server database.

  2. Use MariaDB Import with the connection information to import the data from the TSV or CSV file into your MariaDB Enterprise Server database:

Replace FULLY_QUALIFIED_DOMAIN_NAME with the IP address or Fully Qualified Domain Name of your database Replace TCP_PORT with the TCP port of your databaseReplace DATABASE_USER with the username for your database user account Replace /PATH_TO_PEM_FILE with the path to the certificate authority chain (.pem) fileIf your file is a CSV file, rather than a TSV file, specify --fields-terminated-by=, Specify the database name as the first argument (from above, accounts)The table name is extracted from the TSV or CSV file's basename (from above, contacts)

  1. After the command is executed, you will be prompted for the password of your database user account.

MariaDB Import 10.3 and Older

The instructions provided above are written for MariaDB Import 10.4 and later, which uses the binary filename of mariadb-import.

This page is: Copyright © 2025 MariaDB. All rights reserved.

aria_chk [OPTIONS] aria_tables[.MAI]

--print-defaults

Print the program argument list and exit.

--no-defaults

Don't read default options from any option file.

--defaults-file=#

Only read default options from the given file #.

--defaults-extra-file=#

Read this file after the global files are read.

-#, --debug=...

Output debug log. Often this is 'd:t:o,filename'.

-H, --HELP

Display this help and exit.

-?, --help

Display this help and exit.

--datadir=path

Path for control file (and logs if --logdir not used).

--ignore-control-file

Don't open the control file. Only use this if you are sure the tables are not used by another program

--logdir=path

Path for log files.

--require-control-file

Abort if we can't find/read the maria_log_control file

-s, --silent

Only print errors. One can use two -s to make aria_chk very silent.

-t, --tmpdir=path

Path for temporary files. Multiple paths can be specified, separated by colon (:) on Unix or semicolon (;) on Windows. They will be used in a round-robin fashion.

-v, --verbose

Print more information. This can be used with --description and --check. Use many -v for more verbosity.

-V, --version

Print version and exit.

-w, --wait

Wait if table is locked.

-c, --check

Check table for errors.

-e, --extend-check

Check the table VERY throughly. Only use this in extreme cases as aria_chk should normally be able to find out if the table is ok even without this switch.

-F, --fast

Check only tables that haven't been closed properly.

-C, --check-only-changed

Check only tables that have changed since last check.

-f, --force

Restart with '-r' if there are any errors in the table. States will be updated as with '--update-state'.

-i, --information

Print statistics information about table that is checked.

-m, --medium-check

Faster than extend-check, and finds 99.99% of all errors. Should be good enough for most cases.

-U, --update-state

Mark tables as crashed if any errors were found and clean if check didn't find any errors but table was marked as 'not clean' before. This allows one to get rid of warnings like 'table not properly closed'. If table was updated, update also the timestamp for when the check was made. This option is on by default! Use --skip-update-state to disable.

-T, --read-only

Don't mark table as checked.

-B, --backup

Make a backup of the .MAD file as 'filename-time.BAK'.

--correct-checksum

Correct checksum information for table.

-D, --data-file-length=#

Max length of data file (when recreating data file when it's full).

-e, --extend-check

Try to recover every possible row from the data file Normally this will also find a lot of garbage rows; Don't use this option if you are not totally desperate.

-f, --force

Overwrite old temporary files.

-k, --keys-used=#

Tell MARIA to update only some specific keys. ## is a bit mask of which keys to use. This can be used to get faster inserts.

--max-record-length=#

Skip rows bigger than this if aria_chk can't allocate memory to hold it.

-r, --recover

Can fix almost anything except unique keys that aren't unique.

-n, --sort-recover

Forces recovering with sorting even if the temporary file would be very big.

-p, --parallel-recover

Uses the same technique as '-r' and '-n', but creates all the keys in parallel, in different threads.

-o, --safe-recover

Uses old recovery method; Slower than '-r' but can handle a couple of cases where '-r' reports that it can't fix the data file.

--transaction-log

Log repair command to transaction log. This is needed if one wants to use the maria_read_log to repeat the repair.

--character-sets-dir=...

Directory where character sets are.

--set-collation=name

Change the collation used by the index.

-q, --quick

Faster repair by not modifying the data file. One can give a second '-q' to force aria_chk to modify the original datafile in case of duplicate keys. NOTE: Tables where the data file is currupted can't be fixed with this option.

-u, --unpack

Unpack file packed with aria_pack.

-a, --analyze

Analyze distribution of keys. Will make some joins in MariaDB faster. You can check the calculated distribution by using '--description --verbose table_name'.

--stats_method=name

Specifies how index statistics collection code should treat NULLs. Possible values of name are "nulls_unequal" (default for 4.1/5.0), "nulls_equal" (emulate 4.0), and "nulls_ignored".

-d, --description

Prints some information about table.

-A, --set-auto-increment[=value]

Force auto_increment to start at this or higher value If no value is given, then sets the next auto_increment value to the highest used value for the auto key + 1.

-S, --sort-index

Sort index blocks. This speeds up 'read-next' in applications.

-R, --sort-records=#

Sort records according to an index. This makes your data much more localized and may speed up things (It may be VERY slow to do a sort the first time!).

-b, --block-search=#

Find a record, a block at given offset belongs to.

-z, --zerofill

Remove transaction id's from the data and index files and fills empty space in the data and index files with zeroes. Zerofilling makes it possible to move the table from one system to another without the server having to do an automatic zerofill. It also allows one to compress the tables better if one want to archive them.

--zerofill-keep-lsn

Like --zerofill but does not zero out LSN of data/index pages.

page_buffer_size

Size of page buffer. Used by --safe-repair

read_buffer_size

Read buffer size for sequential reads during scanning

write_buffer_size

Write buffer size for sequential writes during repair of fixed size or dynamic size rows

sort_buffer_size

Size of sort buffer. Used by --recover

sort_key_blocks

Internal buffer for sorting keys; Don't touch :)

aria_chk --check --sort_order --force --sort_buffer_size=1G */*.MAI
aria_chk --analyze --sort-index --page_buffer_size=1G --zerofill */*.MAI
aria_chk --safe-recover --zerofill --page_buffer_size=2G */*.MAI
Aria
CHECK TABLE
REPAIR TABLE
OPTIMIZE TABLE
$ sudo yum install MariaDB-client
$ sudo apt install mariadb-client
$ sudo zypper install MariaDB-client
$ mariadb-import --host FULLY_QUALIFIED_DOMAIN_NAME --port TCP_PORT \
      --user DATABASE_USER --password \
      --ssl-verify-server-cert \
      --ssl-ca ~/PATH_TO_PEM_FILE \
      --local \
      --ignore-lines=1 \
      accounts contacts.tsv
$ SET "PATH=C:\Program Files\MariaDB 10.6\bin;%PATH%"
$ mariadb-import --host FULLY_QUALIFIED_DOMAIN_NAME --port TCP_PORT \
      --user DATABASE_USER --password \
      --ssl-verify-server-cert \
      --ssl-ca ~/PATH_TO_PEM_FILE \
      --local \
      --ignore-lines=1 \
      accounts contacts.tsv
MariaDB Downloads
mariadb-upgrade [--force] [--user=# --password=# 
  --host=hostname --port=# --socket=#
  --protocol=tcp|socket|pipe|memory 
  --verbose] [OTHER_OPTIONS]
# Find out path to datadir
echo "show variables like 'datadir'" | mysql
mariadb-check --no-defaults --check-upgrade --auto-repair --databases mysql
mysql_fix_privilege_tables
mariadb-check --no-defaults --all-databases --fix-db-names --fix-table-names
mariadb-check --no-defaults --check-upgrade --all-databases --auto-repair
mariadb-upgrade --verbose --verbose other-options

-?, --help

Display this help message and exit.

--basedir=path

Old option accepted for backward compatibility but ignored.

--character-sets-dir=path

Old option accepted for backward compatibility but ignored.

check-if-upgrade-is-needed

Do a quick check if upgrade is needed. Returns 0 if yes, 1 if no. From version 2.0.

--compress=name

Old option accepted for backward compatibility but ignored.

--datadir=name

Old option accepted for backward compatibility but ignored.

## [name], --debug[=name]

For debug builds, output debug log.

--debug-check

Check memory and open file usage at exit.

-T, --debug-info

Print some debug info at exit.

--default-character-set=name

Old option accepted for backward compatibility but ignored.

-f, --force

Force execution of mariadb-check even if mariadb-upgrade has already been executed for the current version of MariaDB. Ignores mysql_upgrade_info.

-h, --host=name

Connect to MariaDB on the given host.

-p, --password[=name]

Password to use when connecting to server. If password is not given, it's solicited on the command line (which should be considered insecure). You can use an option file to avoid giving the password on the command line.

-P, --port=name

Port number to use for connection or 0 for default to, in order of preference, my.cnf, the MYSQL_TCP_PORT environment variable, /etc/services, built-in default (3306).

--protocol=name

The protocol to use for connection (tcp, socket, pipe, memory).

--silent

Print less information.

-S, --socket=name

For connections to localhost, the Unix socket file to use, or, on Windows, the name of the named pipe to use.

--ssl

Enables TLS. TLS is also enabled even without setting this option when certain other TLS options are set. Starting with , the --ssl option will not enable verifying the server certificate by default. In order to verify the server certificate, the user must specify the --ssl-verify-server-cert option.

--ssl-ca=name

Defines a path to a PEM file that should contain one or more X509 certificates for trusted Certificate Authorities (CAs) to use for TLS. This option requires that you use the absolute path, not a relative path. See Secure Connections Overview: Certificate Authorities (CAs) for more information. This option implies the --ssl option.

--ssl-capath=name

Defines a path to a directory that contains one or more PEM files that should each contain one X509 certificate for a trusted Certificate Authority (CA) to use for TLS. This option requires that you use the absolute path, not a relative path. The directory specified by this option needs to be run through the openssl rehash command. See Secure Connections Overview: Certificate Authorities (CAs) for more information. This option is only supported if the client was built with OpenSSL or yaSSL. If the client was built with GnuTLS or Schannel, then this option is not supported. See TLS and Cryptography Libraries Used by MariaDB for more information about which libraries are used on which platforms. This option implies the --ssl option.

--ssl-cert=name

Defines a path to the X509 certificate file to use for TLS. This option requires that you use the absolute path, not a relative path. This option implies the --ssl option.

--ssl-cipher=name

List of permitted ciphers or cipher suites to use for TLS. This option implies the --ssl option.

--ssl-crl=name

Defines a path to a PEM file that should contain one or more revoked X509 certificates to use for TLS. This option requires that you use the absolute path, not a relative path. See Secure Connections Overview: Certificate Revocation Lists (CRLs) for more information. This option is only supported if the client was built with OpenSSL or Schannel. If the client was built with yaSSL or GnuTLS, then this option is not supported. See TLS and Cryptography Libraries Used by MariaDB for more information about which libraries are used on which platforms.

--ssl-crlpath=name

Defines a path to a directory that contains one or more PEM files that should each contain one revoked X509 certificate to use for TLS. This option requires that you use the absolute path, not a relative path. The directory specified by this option needs to be run through the openssl rehash command. See Secure Connections Overview: Certificate Revocation Lists (CRLs) for more information. This option is only supported if the client was built with OpenSSL. If the client was built with yaSSL, GnuTLS, or Schannel, then this option is not supported. See TLS and Cryptography Libraries Used by MariaDB for more information about which libraries are used on which platforms.

--ssl-key=name

Defines a path to a private key file to use for TLS. This option requires that you use the absolute path, not a relative path. This option implies the --ssl option.

--ssl-verify-server-cert

Enables server certificate verification. This option is disabled by default.

-t, --tmpdir=name

Directory for temporary files.

-s, --upgrade-system-tables

Only upgrade the system tables in the mysql database. Tables in other databases are not checked or touched.

-u, --user=name

User for login if not current user.

-v, --verbose

Display more output about the process, using it twice will print connection arguments; using it 3 times will print out all CHECK, RENAME and ALTER TABLE commands used during the check phase; using it 4 times will also write out all mariadb-check commands used.

-V, --version

Output version information and exit.

-k, --version-check

Run this program only if its 'server version' matches the version of the server to which it's connecting check. Note: the 'server version' of the program is the version of the MariaDB server with which it was built/distributed. (Defaults to on; use --skip-version-check to disable.)

--write-binlog

All commands including those run by mariadb-check are written to the binary log. Disabled by default. Before and , this was enabled by default, and --skip-write-binlog should be used when commands should not be sent to replication slaves.

--print-defaults

Print the program argument list and exit.

--no-defaults

Don't read default options from any option file.

--defaults-file=#

Only read default options from the given file #.

--defaults-extra-file=#

Read this file after the global files are read.

--defaults-group-suffix=#

In addition to the default option groups, also read option groups with this suffix.

[mysql_upgrade]

Options read by mariadb-upgrade, which includes both MariaDB Server and MySQL Server.

[mariadb-upgrade]

Options read by mariadb-upgrade. Available starting with .

[client]

Options read by all MariaDB and MySQL client programs, which includes both MariaDB and MySQL clients. For example, mysqldump.

[client-server]

Options read by all MariaDB client programs and the MariaDB Server. This is useful for options like socket and port, which is common between the server and the clients.

[client-mariadb]

Options read by all MariaDB client programs.

from MySQL 5.0 to MariaDB 10.4
backup
CHECK TABLE table_name FOR UPGRADE
ALTER TABLE table_name FORCE
collation
mariadb-check
mariadb-check
mysql
data directory
MDEV-27068
option files
MDEV-19035
option groups
option files
table names
InnoDB
ALTER TABLE
mysql.event table
error log
CHECKSUM TABLE
MyISAM
Aria
mariadb-check
CHECK TABLE
REPAIR TABLE
mysql database
mariadb-check
CHECK TABLE
REPAIR TABLE
Downgrading between Major Versions of MariaDB

dbForge Query Builder 10.1

Support for the rds-ca-rsa2048-g1 SSL/TLS certificate for connecting to MariaDB servers on AWS and enhanced cloud compatibility features, new automation capabilities

dbForge Query Builder 10.0

, Implemented support for the JSON_TABLE() table function in MariaDB

dbForge Query Builder 5.2

dbForge Query Builder 5.1

,

dbForge Query Builder 4.5

dbForge Query Builder 4.4

dbForge Query Builder 4.3

dbForge Query Builder 4.2

,

dbForge Query Builder 3.1

,

dbForge Query Builder
here
Documentation
slider-export-data
slider-database-explorer
slider-query-builder
slider-sql-editing-and-execution
slider-query-profiler
slider-data-editor
mysql-data-reports
mysql-master-detail
mysql-pivot-table

LibreOffice Base

LibreOffice Base is an open source RDBMS (relational database management system) front-end tool to create and manage various databases.

Preparing the ODBC Connection

First, make sure to prepare MariaDB Connector/ODBC as explained in MariaDB Connector/ODBC.

That includes:

  • Download the latest MariaDB Connector/ODBC

  • Copy the shared library libmaodbc.so to /usr/lib/[multi-arch]

  • Install the unixodbc, unixodbc-dev, openssh-client, odbcinst packages

  • Create a template file for the . A sample “MariaDB_odbc_driver_template.ini” could be:

[MariaDB ODBC 3.1 Driver]

Description = MariaDB Connector/ODBC v.3.1

Driver = /usr/lib/x86_64-linux-gnu/libmaodbc.so

  • Install the ODBC driver from the template file by running:

$ sudo odbcinst -i -d -f MariaDB_odbc_driver_template.ini
odbcinst: Driver installed. Usage count increased to 1. 
    Target directory is /etc

Verify successful installation in /etc/odbcinst.ini file (this path is obtained by the config info /-j/ option, where drivers are installed in that predefined location).

$ odbcinst -j
unixODBC 2.3.6
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: /home/anel/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8

$ cat /etc/odbcinst.ini 
[MariaDB ODBC 3.1 Driver]
Description=MariaDB Connector/ODBC v.3.1
Driver=/usr/lib/x86_64-linux-gnu/libmaodbc.so
UsageCount=1
  • Create a template file for the . A sample “MariaDB_odbc_data_source_template.ini” could be:

[MariaDB-server]

Description=MariaDB server

Driver=MariaDB ODBC 3.1 Driver

SERVER=localhost

USER=anel

PASSWORD=

DATABASE=test

PORT=3306

  • Install data source:

odbcinst -i -s -h -f MariaDB_odbc_data_source_template.ini
  • Verify successful installation in the /.odbc.ini file

$ cat ~/.odbc.ini 
[MariaDB-server]
Description=MariaDB server
Driver=MariaDB ODBC 3.1 Driver
SERVER=MariaDB
USER=anel
PASSWORD=
DATABASE=test
PORT=3306
  • Verify successful installation also using the utility, for example:

$ isql MariaDB-server
+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+
SQL> show tables;
+--------------------------------------------------------------------------+
| Tables_in_test                                                           |
+--------------------------------------------------------------------------+
| Authors                                                                  |
| tbl_names                                                                |
| webposts                                                                 |
| webusers                                                                 |
+--------------------------------------------------------------------------+
SQLRowCount returns 4
4 rows fetched

Start with LibreOffice Base

Start Libreoffice Base from the terminal by running lobase (make sure to install the libreoffice-base package if needed). The default option is to create a new database, which is HSQLDB. In order to connect to a running MariaDB server, choose “Connect to an existing database” and choose “ODBC” driver as shown below:

librebase_1

After that, choose DSN (the one that we created in the previous step) and click “Next”:

librebase_2

Provide a user name (and password if needed) and again check the connection (with the “Test Connection” button) and click “Next”:

librebase_3

After that, we have options to register the database. Registration in this sense means that the database is viewable by other LibreOffice modules (like LibreOffice Calc and LibreOffice Writer). So this step is optional. In this example, we will save as “fosdem21_mariadb.odb”. See Using a Registered Database.

librebase_4

It opens the following window:

librebase_5

It consists of three windows/panels:

  1. “Database” window with the options

  2. "Tables",

  3. "Queries",

  4. "Forms",

  5. "Reports".

  6. "Tasks window (dependent on what is selected in the “Database” window). When “Tables” is selected, the options are:

  7. "Create Table in Design View",

  8. "Use Wizard to Create Table" and

  9. "Create View".

  10. "Tables" window - shows list of tables that are created.

As we can see, there are system tables in the “mysql” database as well as “test” database.

Let’s say we create a table using the REST API from JSON data from posts, and another table using the same mechanism from users, and let’s call them webposts and webusers. In order to do so, we have to enable the CONNECT storage engine plugin and start with REST_API. See more in the CONNECT - Files Retrieved Using Rest Queries article.

The queries we need to run in MariaDB are:

CREATE TABLE webusers ENGINE=CONNECT TABLE_TYPE=JSON
  HTTP='http://jsonplaceholder.typicode.com/users';

CREATE TABLE webposts ENGINE=CONNECT TABLE_TYPE=JSON
  HTTP='http://jsonplaceholder.typicode.com/posts';

The result in LibreOffice Base will be as shown below:

librebase_6

Double clicking on the table opens a new window with the data displayed to inspect:

librebase_7

To create the table from the “Tasks” window, use the option “Create Table in Design View”, where one can specify specific field names and types as shown:

librebase_8

From the “Tasks” window one can create a table using the option “Use Wizard to Create Table” to create some sample tables.

One can fill the data in the existing table, or create and define the new table from the LibreOffice Calc module with simple copy-paste (in the "Tasks" window).

Using a Registered Database

Other modules can use the registered database, for example, open "LibreOffice Calc" and go to "Tools", "Options" and you will see the "odb" file we registered when starting "LibreOffice Base".

This page is licensed: CC BY-SA / Gnu FDL

dbForge Studio for MariaDB

is a universal IDE with GUI tools that has all the necessary built-in capabilities to work with MariaDB and MySQL databases for their development, management, and administration. It allows for creating, managing, and editing the data without the need to store them locally.

This powerful GUI tool offers a rich visual design that is perfect for working with large scripts, preparing data reports, and database projects. At any time, you can back up or restore your data, export or import them to and from the most commonly used formats, and compare or synchronize the MariaDB databases. Apart from that, dbForge Studio supports the following servers:

  • MariaDB,

  • SkySQL (the MariaDB cloud database),

  • All MySQL Server versions,

  • Percona servers and TokuDB,

  • MySQL and MariaDB on Amazon RDS and Amazon Aurora.

  • Google Cloud, Alibaba Cloud, Tencent Cloud, Galera Cluster,

  • Sphinx, etc.

Key Features:

1. Intelligent SQL Coding

  • Automatic code completion

  • MariaDB syntax highlighting

  • Code refactoring and formatting

  • CRUD generation

2. Database Compare and Sync

  • Data and schema synchronization and comparison

  • Recurring database sync tasks planning

  • Comparison report generation

3. Import/Export Data MariaDB

  • MariaDB data export to 14 commonly-used formats

  • Data import from 10 popular formats into MariaDB table

  • Rich customization ability

  • Command-line automation for data tasks

4. MariaDB Admin Tools

  • MariaDB databases backing up and restoring

  • User accounts and permissions configuration

  • Table maintenance

  • Database scripts generation

5. Copy Database

  • Source and Target servers’ selection

  • Database to be copied or dropped selection

  • Configuration of the database copying parameters

  • Progress of copying tracing and abortion of the copying

6. Database Designer

  • Schema diagrams generation

  • Visual database construction

  • Foreign key relations between tables

7. Data Generator

  • Data customization supported by multiple generators

  • All kinds of generators: basic, meaningful, and user-defined

  • Real-time preview of generated data

  • Command-line interface

8. Query Profiler

  • Visual query profiling

  • Profiling results comparison

9. Visual Query Builder

  • Automatic generation of the script template for queries

  • Easy navigation through the database objects

  • Support for different query types

  • Support for sequence tables

10. Table Designer

  • Table creation and editing in MariaDB with no code

  • Automatic data type setting for frequently-used column values

  • Errors prevention while working with tables

  • MariaDB script automatic generation according to the changes made by a user

11. Database Refactoring

  • Renaming database objects with preview

  • Refactoring script

12. Source Control

  • Version control of database schemas and static table data

  • Compatibility with all major version control systems

  • Dedicated and shared development models

  • Quick comparison of database versions

  • Examination and resolution of conflicts

  • History of changes

13. Database Projects

  • MariaDB version control system providing efficient database team development

  • Scripts folder for exporting a database project to a MariaDB script file

14. Report and Analysis

  • Pivot tables for summarizing and viewing the data

  • A powerful wizard with robust features

  • Full command-line support

  • 9 formats for reports' delivery

15. Database Documenter

  • A comprehensive overview of the database structure

  • Examine the internal dependencies between objects and databases

  • Customize the style and generate the docs in several formats

16. Support for MariaDB objects:

  • Packages

  • Sequences

  • Temporal tables

Nowadays, with the growing popularity of the MariaDB database, the demand for a convenient, multi-functional tool is increasing, too. This solution must meet users’ needs, be easy to work with and provide constant support. Fortunately, is such a solution. This database tool is one of the most appreciated worldwide and trusted by many people. Devart’s dbForge Studio has received a lot of awards that confirm its overwhelming popularity.

Download a free 30-day trial of dbForge Studio for MariaDB and MySQL .

Version
Introduced

This page is licensed: CC BY-SA / Gnu FDL

This page is licensed: GPLv2, originally from

dbForge Studio for MySQL 10.1

Support for the rds-ca-rsa2048-g1 SSL/TLS certificate for connecting to MariaDB servers on AWS and enhanced cloud compatibility features, new automation capabilities

dbForge Studio for MySQL 10.0

Support for , added Source Control, support for temporal tables in MariaDB

dbForge Studio for MySQL 9.2

Support for , enhanced code completion for application-period temporal tables, support for sequence tables in MariaDB databases

dbForge Studio for MySQL 9.1

Connectivity support for -10.10

dbForge Studio for MySQL 9.0

Connectivity support for -10.6

dbForge Studio for MySQL 8.1

Support for

dbForge Studio for MySQL 8.0

Support for

dbForge Studio for MySQL 7.3

Support for , Support for , Support for MariaDB Galera Cluster 10.0 Series

dbForge Studio for MySQL 6.1

,

dbForge Studio for MariaDB
dbForge Studio for MariaDB and MySQL
here
Documentation
Editions
start-page-1-sql-development
start-page-3-database-sync
start-page-5-data-pump
start-page-4-administration
start-page-2-database-design
start-page-6-data-analysis
fill_help_tables.sql

dbForge Fusion: MySQL & MariaDB Plugin for VS

dbForge Fusion is a powerful add-in for Visual Studio. It provides automatic and simple MariaDB database development and boosts data management capacity. With this tool integrated, it is easy to work with database development and administration tasks from Visual Studio.

Note: dbForge Fusion will officially be discontinued on the 1st of July 2024. However, you can access the features available in dbForge Fusion for MySQL/MariaDB through dbForge Studio for MySQL, which is actively supported and regularly updated.

dbForge Fusion add-in Key Features:

1. MySQL & MariaDB Data Import to Visual Studio

Import table data from multiple tables in various formats with the Data Import Wizard

Save import configuration templates for future use

2. Data Export from Visual Studio

Export data from multiple tables to various formats

Create templates with export settings for later use

3. Visual Studio Schema Compare

Generate schema synchronization scripts

Filter the results of a comparison process

Generate comparison reports

mysql-schema-compare-wizard

4. Data Comparison

Sync data with a command-line interface

Adjust and export comparison results

Generate a schema synchronization script

Filter objects during data comparison

generatedatacomparisonreport

5. Integration with Devart dotConnect

Complete codes easily

Enjoy advanced formatting

6. Drag&Drop from Database Explorer to WinForms

Drag database objects easily

Execute automatically generated scripts of components

See the result in a convenient grid

7. Code Formatter and Syntax Checker

Code snippets

Keyword and object suggestion

Errors highlighting

8. Code formatting

Embedded formatting profiles that can be swapped

Command-line support for automatic and scheduled formatting tasks

Bulk formatting

9. Routine Debugger

Automate the debugging process

Simplify your work with stored routines and triggers

10. Object editors

Enjoy visual creation, modification and management of any database and table objects

Download a free 30-day trial of dbForge Fusion for MariaDB and MySQL here.

Documentation

Editions

Version
Introduced

dbForge Fusion for MariaDB and MySQL 6.6

-10.5

dbForge Fusion for MariaDB and MySQL 6.1

,

mariadb-show

mariadb-show

Shows the structure of a MariaDB database (databases, tables, columns and indexes).

Prior to , the client was called mysqlshow. It can still be accessed under this name, via a symlink in Linux, or an alternate binary in Windows.

You can also use , , , and SHOW TABLE STATUS, as well as the tables (, , ), to get similar functionality.

Using mariadb-show

The output displays only the names of those databases, tables, or columns for which you have some privileges.

If no database is given then all matching databases are shown. If no table is given, then all matching tables in database are shown. If no column is given, then all matching columns and column types in table are shown.

If the last argument contains a shell or SQL wildcard (,?,% or _) then only &#xNAN;what's matched by the wildcard is shown. If a database name contains any underscores, those should be escaped with a backslash (some Unix shells require two) to get a list of the proper tables or columns. “” and “?” characters are converted into SQL “%” and “” wildcard characters. This might cause some confusion when you try to display the columns for a table with a “” in the name, because in this case, mariadb-show shows you only the table names that match the pattern. This is easily fixed by adding an extra “%” last on the command line as a separate argument.

Options

mariadb-show supports the following options:

Option
Description

Option Files

In addition to reading options from the command-line, mariadb-show can also read options from . If an unknown option is provided to mariadb-show in an option file, then it is ignored.

The following options relate to how MariaDB command-line tools handles option files. They must be given as the first argument on the command-line:

Option
Description

In and later, mariadb-show is linked with . However, MariaDB Connector/C does not yet handle the parsing of option files for this client. That is still performed by the server option file parsing code. See for more information.

Option Groups

mariadb-show reads options from the following from :

Group
Description

Examples

Getting a list of databases:

Getting a list of tables in the test database:

Getting a list of columns in the test.book table:

This page is licensed: CC BY-SA / Gnu FDL