Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
MARIADB-CHECK(1)	     MariaDB Database System		MARIADB-CHECK(1)

NAME
     mariadb-check - a table maintenance program (mariadb-check is now a symlink
     to mariadb-check)

SYNOPSIS
     mariadb-check [options] [db_name [tbl_name ...]]

DESCRIPTION
     The  mariadb-check  client  performs table maintenance: It checks, repairs,
     optimizes, or analyzes tables.

     Each table is locked and therefore unavailable to other sessions  while  it
     is being processed, although for check operations, the table is locked with
     a	READ lock only. Table maintenance operations can be time-consuming, par-
     ticularly for large tables. If you use the --databases  or  --all-databases
     option  to  process  all  tables in one or more databases, an invocation of
     mariadb-check might take a long time. (This is also  true	for  mariadb-up-
     grade  because  that  program invokes mariadb-check to check all tables and
     repair them if necessary.)

     mariadb-check is similar in function to myisamchk, but  works  differently.
     The main operational difference is that mariadb-check must be used when the
     mariadbd  server  is  running,  whereas myisamchk should be used when it is
     not. The benefit of using mariadb-check is that you do not have to stop the
     server to perform table maintenance.

     mariadb-check uses the SQL statements CHECK TABLE,  REPAIR  TABLE,  ANALYZE
     TABLE,  and  OPTIMIZE TABLE in a convenient way for the user. It determines
     which statements to use for the operation you want  to  perform,  and  then
     sends the statements to the server to be executed.

     The  MyISAM  storage  engine  supports  all four maintenance operations, so
     mariadb-check can be used to perform any of them on  MyISAM  tables.  Other
     storage  engines  do not necessarily support all operations. In such cases,
     an error message is displayed. For example, if test.t is a MEMORY table, an
     attempt to check it produces this result:

	 shell> mariadb-check test t
	 test.t
	 note	  : The storage engine for the table doesn't support check

     If mariadb-check is unable to repair a table, see the MariaDB Documentation
     for manual table repair strategies. This will be the case, for example, for
     InnoDB tables, which can be checked with CHECK TABLE, but not repaired with
     REPAIR TABLE.

     The use of mariadb-check with partitioned tables is not supported.

	 Caution

	 It is best to make a backup of a table before performing a table repair
	 operation; under some circumstances  the  operation  might  cause  data
	 loss.	Possible  causes  include but are not limited to file system er-
	 rors.

     There are three general ways to invoke mariadb-check:

	 shell> mariadb-check [options] db_name [tbl_name ...]
	 shell> mariadb-check [options] --databases db_name ...
	 shell> mariadb-check [options] --all-databases

     If you do not name any tables following db_name or if you use  the  --data-
     bases or --all-databases option, entire databases are checked.

     mariadb-check  has a special feature compared to other client programs. The
     default behavior of checking tables (--check) can be  changed  by	renaming
     the  binary. If you want to have a tool that repairs tables by default, you
     should just make a copy of mariadb-check named mariadb-repair,  or  make  a
     symbolic link to mariadb-check named mariadb-repair. If you invoke mariadb-
     repair, it repairs tables.

     The following names can be used to change mariadb-check default behavior.
     +----------------+-----------------------------+
     | mariadb-repair | The default option is --re- |
     |		      | pair			    |
     +----------------+-----------------------------+
     | mysqlanalyze   | The default option is --an- |
     |		      | alyze			    |
     +----------------+-----------------------------+
     | mysqloptimize  | The default option is --op- |
     |		      | timize			    |
     +----------------+-----------------------------+

     mariadb-check supports the following options, which can be specified on the
     command  line  or	in  the [mariadb-check] and [client] option file groups.
     The -c, -r, -a and -o options are exclusive to each other.

     *	 --help, -?

	 Display a help message and exit.

     *	 --all-databases, -A

	 Check all tables in all databases.  This  is  the  same  as  using  the
	 --databases option and naming all the databases on the command line.

     *	 --all-in-1, -1

	 Instead  of issuing a statement for each table, execute a single state-
	 ment for each database that names all the tables from that database  to
	 be processed.

     *	 --analyze, -a

	 Analyze the tables.

     *	 --auto-repair

	 If  a	checked  table is corrupted, automatically fix it. Any necessary
	 repairs are done after all tables have been checked.

     *	 --character-sets-dir=path

	 The directory where character sets are installed.

     *	 --check, -c

	 Check the tables for errors. This is the default operation.

     *	 --check-only-changed, -C

	 Check only tables that have changed since the last check or  that  have
	 not been closed properly.

     *	 --check-upgrade, -g

	 Invoke  CHECK TABLE with the FOR UPGRADE option to check tables for in-
	 compatibilities with the current version of the server. This option au-
	 tomatically enables the --fix-db-names and --fix-table-names options.

     *	 --compress

	 Compress all information sent between the client and the server if both
	 support compression.

     *	 --databases, -B

	 Process all tables in	the  named  databases.	Normally,  mariadb-check
	 treats  the  first name argument on the command line as a database name
	 and following names as table names. With this	option,  it  treats  all
	 name arguments as database names.

     *	 --debug[=debug_options], -# [debug_options]

	 Write	 a   debugging	 log.	A   typical   debug_options   string  is
	 'd:t:o,file_name'. The default is 'd:t:o'.

     *	 --debug-check

	 Print some debugging information when the program exits.

     *	 --debug-info

	 Print debugging information and memory and CPU  usage	statistics  when
	 the program exits.

     *	 --default-auth=name

	 Default authentication client-side plugin to use.

     *	 --default-character-set=charset_name

	 Use charset_name as the default character set.

     *	 --defaults-extra-file=filename

	 Set  filename as the file to read default options from after the global
	 defaults files has been read.	Must be given as first option.

     *	 --defaults-file=filename

	 Set filename as the file to read default options from, override  global
	 defaults files.  Must be given as first option.

     *	 --extended, -e

	 If  you are using this option to check tables, it ensures that they are
	 100% consistent but takes a long time.

	 If you are using this option to repair tables, it will force using  the
	 old,  slow, repair with keycache method, instead of the much faster re-
	 pair by sorting.

     *	 --fast, -F

	 Check only tables that have not been closed properly.

     *	 --fix-db-names

	 Convert database names to the format used since MySQL 5.1.  Only  data-
	 base names that contain special characters are affected.

     *	 --fix-table-names

	 Convert  table  names	(including views) to the format used since MySQL
	 5.1. Only table names that contain special characters are affected.

     *	 --flush,

	 Flush each table after check. This is useful if you don't want to  have
	 the checked tables take up space in the caches after the check.

     *	 --force, -f

	 Continue even if an SQL error occurs.

     *	 --host=host_name, -h host_name

	 Connect to the MariaDB server on the given host.

     *	 --medium-check, -m

	 Do a check that is faster than an --extended operation. This finds only
	 99.99% of all errors, which should be good enough in most cases.

     *	 --no-defaults

	 Do not read default options from any option file. This must be given as
	 the first argument.

     *	 --optimize, -o

	 Optimize the tables.

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

	 The password to use when connecting to the server. If you use the short
	 option  form  (-p),  you cannot have a space between the option and the
	 password. If you omit the password value following the --password or -p
	 option on the command line, mariadb-check prompts for one.

	 Specifying a password on the command line should  be  considered  inse-
	 cure.	You  can  use an option file to avoid giving the password on the
	 command line.

     *	 --persistent, -Z

	 Used with ANALYZE TABLE to append the option PERSISTENT FOR ALL.

     *	 --pipe, -W

	 On Windows, connect to the server via a named pipe. This option applies
	 only if the server supports named-pipe connections.

     *	 --plugin-dir=name

	  Directory for client-side plugins.

     *	 --port=port_num, -P port_num

	 The TCP/IP port number to use	for  the  connection.	Forces	--proto-
	 col=tcp  when	specified  on  the command line without other connection
	 properties.

     *	 --print-defaults

	 Print the program argument list and exit.  This must be  given  as  the
	 first argument.

     *	 --process-tables

	 Perform  the requested operation on tables. Defaults to on; use --skip-
	 process-tables to disable.

     *	 --process-views=val

	 Perform the requested operation (only CHECK VIEW or REPAIR VIEW).  Pos-
	 sible	values	are NO, YES (correct the checksum, if necessary, add the
	 mariadb-version field), UPGRADE_FROM_MYSQL (same as YES and toggle  the
	 algorithm MERGE<->TEMPTABLE.

     *	 --protocol={TCP|SOCKET|PIPE|MEMORY}

	 The connection protocol to use for connecting to the server. It is use-
	 ful  when the other connection parameters normally would cause a proto-
	 col to be used other than the one you want.

     *	 --quick, -q

	 If you are using this option to check tables,	it  prevents  the  check
	 from  scanning  the  rows  to	check  for  incorrect links. This is the
	 fastest check method.

	 If you are using this option to repair tables, it tries to repair  only
	 the index tree. This is the fastest repair method.

     *	 --repair, -r

	 Perform  a  repair that can fix almost anything except unique keys that
	 are not unique.

     *	 --silent, -s

	 Silent mode. Print only error messages.

     *	 --skip-database=db_name

	 Don't process the database (case-sensitive) specified as argument.

     *	 --socket=path, -S path

	 For connections to localhost, the Unix socket file to use, or, on  Win-
	 dows, the name of the named pipe to use.  Forces --protocol=socket when
	 specified  on	the command line without other connection properties; on
	 Windows, forces --protocol=pipe.

     *	 --ssl

	 Enable SSL for connection (automatically  enabled  with  other  flags).
	 Disable with --skip-ssl.

     *	 --ssl-ca=name

	 CA file in PEM format (check OpenSSL docs, implies --ssl).

     *	 --ssl-capath=name

	 CA directory (check OpenSSL docs, implies --ssl).

     *	 --ssl-cert=name

	 X509 cert in PEM format (check OpenSSL docs, implies --ssl).

     *	 --ssl-cipher=name

	 SSL cipher to use (check OpenSSL docs, implies --ssl).

     *	 --ssl-key=name

	 X509 key in PEM format (check OpenSSL docs, implies --ssl).

     *	 --ssl-crl=name

	 Certificate revocation list (check OpenSSL docs, implies --ssl).

     *	 --ssl-crlpath=name

	 Certificate revocation list path (check OpenSSL docs, implies --ssl).

     *	 --ssl-verify-server-cert

	 Verify  server's  "Common  Name" in its cert against hostname used when
	 connecting. This option is disabled by default.

     *	 --tables

	 Override the --databases or -B option. All name arguments following the
	 option are regarded as table names.

     *	 --use-frm

	 For repair operations on MyISAM tables, get the  table  structure  from
	 the .frm file so that the table can be repaired even if the .MYI header
	 is corrupted.

     *	 --user=user_name, -u user_name

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

     *	 --verbose, -v

	 Verbose mode. Print information about the various stages of program op-
	 eration.   Using  one	--verbose  option will give you more information
	 about what mariadb-check is doing.

	 Using two --verbose options will also give you connection information.

	 Using it 3 times will print out all CHECK, RENAME and ALTER TABLE  dur-
	 ing the check phase.

     *	 --version, -V

	 Display version information and exit.

     *	 --write-binlog

	 This  option is enabled by default, so that ANALYZE TABLE, OPTIMIZE TA-
	 BLE, and REPAIR TABLE statements generated by mariadb-check are written
	 to the binary log. Use --skip-write-binlog to cause  NO_WRITE_TO_BINLOG
	 to  be  added	to  the  statements so that they are not logged. Use the
	 --skip-write-binlog when these statements should not be sent to  repli-
	 cation  slaves  or  run  when	using  the binary logs for recovery from
	 backup.

COPYRIGHT
     Copyright 2007-2008 MySQL AB, 2008-2010 Sun Microsystems,	Inc.,  2010-2025
     MariaDB Foundation

     This  documentation is free software; you can redistribute it and/or modify
     it only under the terms of the GNU General Public License as  published  by
     the Free Software Foundation; version 2 of the License.

     This  documentation  is distributed in the hope that it will be useful, but
     WITHOUT ANY WARRANTY; without even the implied warranty of  MERCHANTABILITY
     or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
     more details.

     You  should  have	received  a copy of the GNU General Public License along
     with the program; if not, write to the Free Software Foundation,  Inc.,  51
     Franklin	Street,   Fifth   Floor,   Boston,  MA	02110-1335  USA  or  see
     http://www.gnu.org/licenses/.

SEE ALSO
     For more information, please refer to the MariaDB Documentation,  available
     online at https://mariadb.com/docs/

AUTHOR
     MariaDB Foundation (http://www.mariadb.org/).

MariaDB 11.8			  5 March 2025			MARIADB-CHECK(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=mariadb-check&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help