2011-06-30 17:37:13 +02:00
|
|
|
/*
|
2013-06-10 21:45:30 +02:00
|
|
|
Copyright (c) 2001, 2012, Oracle and/or its affiliates.
|
2016-04-20 15:25:55 +02:00
|
|
|
Copyright (c) 2009, 2016, MariaDB
|
2001-12-06 13:10:51 +01:00
|
|
|
|
2001-09-12 22:53:31 +02:00
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
|
|
it under the terms of the GNU General Public License as published by
|
2006-12-23 20:17:15 +01:00
|
|
|
the Free Software Foundation; version 2 of the License.
|
2001-12-06 13:10:51 +01:00
|
|
|
|
2001-09-12 22:53:31 +02:00
|
|
|
This program 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.
|
2001-12-06 13:10:51 +01:00
|
|
|
|
2001-09-12 22:53:31 +02:00
|
|
|
You should have received a copy of the GNU General Public License
|
|
|
|
along with this program; if not, write to the Free Software
|
2019-05-11 20:29:06 +02:00
|
|
|
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA
|
2011-06-30 17:37:13 +02:00
|
|
|
*/
|
2001-09-12 22:53:31 +02:00
|
|
|
|
|
|
|
/* Common defines for all clients */
|
|
|
|
|
2001-09-14 01:54:33 +02:00
|
|
|
#include <my_global.h>
|
2002-11-08 20:57:36 +01:00
|
|
|
#include <my_sys.h>
|
2001-09-12 22:53:31 +02:00
|
|
|
#include <m_string.h>
|
|
|
|
#include <mysql.h>
|
|
|
|
#include <errmsg.h>
|
2002-05-22 22:54:24 +02:00
|
|
|
#include <my_getopt.h>
|
2016-08-19 22:03:05 +02:00
|
|
|
#include <mysql_version.h>
|
2001-09-12 22:53:31 +02:00
|
|
|
|
2007-04-19 04:47:55 +02:00
|
|
|
#ifndef WEXITSTATUS
|
|
|
|
# ifdef __WIN__
|
|
|
|
# define WEXITSTATUS(stat_val) (stat_val)
|
|
|
|
# else
|
|
|
|
# define WEXITSTATUS(stat_val) ((unsigned)(stat_val) >> 8)
|
|
|
|
# endif
|
|
|
|
#endif
|
|
|
|
|
2004-02-09 12:31:03 +01:00
|
|
|
enum options_client
|
|
|
|
{
|
|
|
|
OPT_CHARSETS_DIR=256, OPT_DEFAULT_CHARSET,
|
2010-02-17 13:15:07 +01:00
|
|
|
OPT_PAGER, OPT_TEE,
|
2004-02-09 12:31:03 +01:00
|
|
|
OPT_LOW_PRIORITY, OPT_AUTO_REPAIR, OPT_COMPRESS,
|
|
|
|
OPT_DROP, OPT_LOCKS, OPT_KEYWORDS, OPT_DELAYED, OPT_OPTIMIZE,
|
|
|
|
OPT_FTB, OPT_LTB, OPT_ENC, OPT_O_ENC, OPT_ESC, OPT_TABLES,
|
|
|
|
OPT_MASTER_DATA, OPT_AUTOCOMMIT, OPT_AUTO_REHASH,
|
|
|
|
OPT_LINE_NUMBERS, OPT_COLUMN_NAMES, OPT_CONNECT_TIMEOUT,
|
|
|
|
OPT_MAX_ALLOWED_PACKET, OPT_NET_BUFFER_LENGTH,
|
|
|
|
OPT_SELECT_LIMIT, OPT_MAX_JOIN_SIZE, OPT_SSL_SSL,
|
|
|
|
OPT_SSL_KEY, OPT_SSL_CERT, OPT_SSL_CA, OPT_SSL_CAPATH,
|
MDEV-14101 Provide an option to select TLS protocol version
Server and command line tools now support option --tls_version to specify the
TLS version between client and server. Valid values are TLSv1.0, TLSv1.1, TLSv1.2, TLSv1.3
or a combination of them. E.g.
--tls_version=TLSv1.3
--tls_version=TLSv1.2,TLSv1.3
In case there is a gap between versions, the lowest version will be used:
--tls_version=TLSv1.1,TLSv1.3 -> Only TLSv1.1 will be available.
If the used TLS library doesn't support the specified TLS version, it will use
the default configuration.
Limitations:
SSLv3 is not supported. The default configuration doesn't support TLSv1.0 anymore.
TLSv1.3 protocol currently is only supported by OpenSSL 1.1.0 (client and server) and
GnuTLS 3.6.5 (client only).
Overview of TLS implementations and protocols
Server:
+-----------+-----------------------------------------+
| Library | Supported TLS versions |
+-----------+-----------------------------------------+
| WolfSSL | TLSv1.1, TLSv1,2 |
+-----------+-----------------------------------------+
| OpenSSL | (TLSv1.0), TLSv1.1, TLSv1,2, TLSv1.3 |
+-----------+-----------------------------------------+
| LibreSSL | (TLSv1.0), TLSv1.1, TLSv1,2, TLSv1.3 |
+-----------+-----------------------------------------+
Client (MariaDB Connector/C)
+-----------+-----------------------------------------+
| Library | Supported TLS versions |
+-----------+-----------------------------------------+
| GnuTLS | (TLSv1.0), TLSv1.1, TLSv1.2, TLSv1.3 |
+-----------+-----------------------------------------+
| Schannel | (TLSv1.0), TLSv1.1, TLSv1.2 |
+-----------+-----------------------------------------+
| OpenSSL | (TLSv1.0), TLSv1.1, TLSv1,2, TLSv1.3 |
+-----------+-----------------------------------------+
| LibreSSL | (TLSv1.0), TLSv1.1, TLSv1,2, TLSv1.3 |
+-----------+-----------------------------------------+
2019-06-11 12:44:16 +02:00
|
|
|
OPT_SSL_CIPHER, OPT_TLS_VERSION, OPT_SHUTDOWN_TIMEOUT, OPT_LOCAL_INFILE,
|
2004-02-09 12:31:03 +01:00
|
|
|
OPT_DELETE_MASTER_LOGS, OPT_COMPACT,
|
|
|
|
OPT_PROMPT, OPT_IGN_LINES,OPT_TRANSACTION,OPT_MYSQL_PROTOCOL,
|
2018-08-20 14:06:33 +02:00
|
|
|
OPT_FRM, OPT_SKIP_OPTIMIZATION,
|
2004-02-09 12:31:03 +01:00
|
|
|
OPT_COMPATIBLE, OPT_RECONNECT, OPT_DELIMITER, OPT_SECURE_AUTH,
|
2010-02-17 13:15:07 +01:00
|
|
|
OPT_OPEN_FILES_LIMIT, OPT_SET_CHARSET, OPT_SERVER_ARG,
|
2010-02-17 10:18:17 +01:00
|
|
|
OPT_STOP_POSITION, OPT_START_DATETIME, OPT_STOP_DATETIME,
|
2005-05-06 10:39:30 +02:00
|
|
|
OPT_SIGINT_IGNORE, OPT_HEXBLOB, OPT_ORDER_BY_PRIMARY, OPT_COUNT,
|
2011-06-11 13:28:15 +02:00
|
|
|
OPT_FLUSH_TABLES,
|
2005-07-31 11:49:55 +02:00
|
|
|
OPT_TRIGGERS,
|
2005-12-25 00:41:40 +01:00
|
|
|
OPT_MYSQL_ONLY_PRINT,
|
2005-12-29 03:41:06 +01:00
|
|
|
OPT_MYSQL_LOCK_DIRECTORY,
|
2006-01-12 06:30:52 +01:00
|
|
|
OPT_USE_THREADS,
|
2006-02-13 09:45:59 +01:00
|
|
|
OPT_IMPORT_USE_THREADS,
|
2006-01-02 01:40:02 +01:00
|
|
|
OPT_MYSQL_NUMBER_OF_QUERY,
|
2017-07-30 16:11:25 +02:00
|
|
|
OPT_IGNORE_DATABASE,
|
2005-08-26 14:56:52 +02:00
|
|
|
OPT_IGNORE_TABLE,OPT_INSERT_IGNORE,OPT_SHOW_WARNINGS,OPT_DROP_DATABASE,
|
2010-07-15 13:13:30 +02:00
|
|
|
OPT_TZ_UTC, OPT_CREATE_SLAP_SCHEMA,
|
BUG #8368 "mysqldump needs --slave-data option"
Added this option, named as "--dump-slave". The purpose of this option is to be
able to produce a dump from a slave used for making backups of the master. Originally,
dumping from the main master was fine, but as more data accumulated, the dump process
would take over 30 minutes, locking up the master database hence website for 30 minutes.
A slave dedicated to producing backups was the answer, but I needed a dump that could be
used to restore a slave instantly and in order to do that, it has to have three things
contained in the dump:
1. "STOP SLAVE;" at the beginning
2. "CHANGE MASTER TO ...<the master - info from 'show slave status'>"
3. "START SLAVE;" at the end
These options in this changeset contain this.
--stop-slave adds "STOP SLAVE" to the beginning of the dump and "STOP SLAVE"
to the end of the dump.
--include-host gives the user the option to have the host explicitely added
to the "CHANGE MASTER TO ..." line.
--dump-slave adds the "CHANGE MASTER ..." to the dump representing not the slave's
master binlog info, but the slave's master's info from "SHOW SLAVE STATUS"
client/client_priv.h:
Added OPT_SLAVE_DATA to client_priv.h
client/mysqldump.c:
* Added --dump-slave option (name per Brian)
* Added --stop-slave to print "STOP SLAVE;" into the dump
* Added --include-host option to include "MASTER_HOST=..." and "MASTER_PORT=..."
to the dump since unlike --master-data, the host can't be assumed to be
the local host
* Added do_start_slave and do_stop_slave to stop the slave sql thread upon
start of the dump process, and to start the slave sql upon finish of dump process -
to keep the log information frozen during this time.
* Added do_show_slave_status for obtaining slave information needed to compose
"CHANGE MASTER ..." output to the master of this slave.
* Added necessary long options and defines required for new options
2009-11-04 14:31:03 +01:00
|
|
|
OPT_MYSQLDUMP_SLAVE_APPLY,
|
|
|
|
OPT_MYSQLDUMP_SLAVE_DATA,
|
|
|
|
OPT_MYSQLDUMP_INCLUDE_MASTER_HOST_PORT,
|
[MDEV-10570] Add Flashback support
==== Description ====
Flashback can rollback the instances/databases/tables to an old snapshot.
It's implement on Server-Level by full image format binary logs (--binlog-row-image=FULL), so it supports all engines.
Currently, it’s a feature inside mysqlbinlog tool (with --flashback arguments).
Because the flashback binlog events will store in the memory, you should check if there is enough memory in your machine.
==== New Arguments to mysqlbinlog ====
--flashback (-B)
It will let mysqlbinlog to work on FLASHBACK mode.
==== New Arguments to mysqld ====
--flashback
Setup the server to use flashback. This enables binary log in row mode
and will enable extra logging for DDL's needed by flashback feature
==== Example ====
I have a table "t" in database "test", we can compare the output with "--flashback" and without.
#client/mysqlbinlog /data/mysqldata_10.0/binlog/mysql-bin.000001 -vv -d test -T t --start-datetime="2013-03-27 14:54:00" > /tmp/1.sql
#client/mysqlbinlog /data/mysqldata_10.0/binlog/mysql-bin.000001 -vv -d test -T t --start-datetime="2013-03-27 14:54:00" -B > /tmp/2.sql
Then, importing the output flashback file (/tmp/2.log), it can flashback your database/table to the special time (--start-datetime).
And if you know the exact postion, "--start-postion" is also works, mysqlbinlog will output the flashback logs that can flashback to "--start-postion" position.
==== Implement ====
1. As we know, if binlog_format is ROW (binlog-row-image=FULL in 10.1 and later), all columns value are store in the row event, so we can get the data before mis-operation.
2. Just do following things:
2.1 Change Event Type, INSERT->DELETE, DELETE->INSERT.
For example:
INSERT INTO t VALUES (...) ---> DELETE FROM t WHERE ...
DELETE FROM t ... ---> INSERT INTO t VALUES (...)
2.2 For Update_Event, swapping the SET part and WHERE part.
For example:
UPDATE t SET cols1 = vals1 WHERE cols2 = vals2
--->
UPDATE t SET cols2 = vals2 WHERE cols1 = vals1
2.3 For Multi-Rows Event, reverse the rows sequence, from the last row to the first row.
For example:
DELETE FROM t WHERE id=1; DELETE FROM t WHERE id=2; ...; DELETE FROM t WHERE id=n;
--->
DELETE FROM t WHERE id=n; ...; DELETE FROM t WHERE id=2; DELETE FROM t WHERE id=1;
2.4 Output those events from the last one to the first one which mis-operation happened.
For example:
2017-01-20 14:33:28 +01:00
|
|
|
#ifdef WHEN_FLASHBACK_REVIEW_READY
|
|
|
|
OPT_REVIEW,
|
|
|
|
OPT_REVIEW_DBNAME, OPT_REVIEW_TABLENAME,
|
|
|
|
#endif
|
2007-01-29 22:17:30 +01:00
|
|
|
OPT_SLAP_CSV, OPT_SLAP_CREATE_STRING,
|
|
|
|
OPT_SLAP_AUTO_GENERATE_SQL_LOAD_TYPE, OPT_SLAP_AUTO_GENERATE_WRITE_NUM,
|
2007-03-07 02:14:59 +01:00
|
|
|
OPT_SLAP_AUTO_GENERATE_ADD_AUTO,
|
|
|
|
OPT_SLAP_AUTO_GENERATE_GUID_PRIMARY,
|
2007-03-12 18:25:11 +01:00
|
|
|
OPT_SLAP_AUTO_GENERATE_EXECUTE_QUERIES,
|
2007-03-16 07:39:07 +01:00
|
|
|
OPT_SLAP_AUTO_GENERATE_SECONDARY_INDEXES,
|
2007-03-12 18:25:11 +01:00
|
|
|
OPT_SLAP_AUTO_GENERATE_UNIQUE_WRITE_NUM,
|
|
|
|
OPT_SLAP_AUTO_GENERATE_UNIQUE_QUERY_NUM,
|
2007-03-26 11:24:49 +02:00
|
|
|
OPT_SLAP_PRE_QUERY,
|
|
|
|
OPT_SLAP_POST_QUERY,
|
2007-06-16 02:22:57 +02:00
|
|
|
OPT_SLAP_PRE_SYSTEM,
|
|
|
|
OPT_SLAP_POST_SYSTEM,
|
|
|
|
OPT_SLAP_COMMIT,
|
|
|
|
OPT_SLAP_DETACH,
|
2011-04-08 08:52:44 +02:00
|
|
|
OPT_SLAP_NO_DROP,
|
BUG#32407: Impossible to do point-in-time recovery from older binlog
Problem: it is unsafe to read base64-printed events without first
reading the Format_description_log_event (FD). Currently, mysqlbinlog
cannot print the FD.
As a side effect, another bug has also been fixed: When mysqlbinlog
--start-position=X was specified, no ROLLBACK was printed. I changed
this, so that ROLLBACK is always printed.
This patch does several things:
- Format_description_log_event (FD) now print themselves in base64
format.
- mysqlbinlog is now able to print FD events. It has three modes:
--base64-output=auto Print row events in base64 output, and print
FD event. The FD event is printed even if
it is outside the range specified with
--start-position, because it would not be
safe to read row events otherwise. This is
the default.
--base64-output=always Like --base64-output=auto, but also print
base64 output for query events. This is
like the old --base64-output flag, which
is also a shorthand for
--base64-output=always
--base64-output=never Never print base64 output, generate error if
row events occur in binlog. This is
useful to suppress the FD event in binlogs
known not to contain row events (e.g.,
because BINLOG statement is unsafe,
requires root privileges, is not SQL, etc)
- the BINLOG statement now handles FD events correctly, by setting
the thread's rli's relay log's description_event_for_exec to the
loaded event.
In fact, executing a BINLOG statement is almost the same as reading
an event from a relay log. Before my patch, the code for this was
separated (exec_relay_log_event in slave.cc executes events from
the relay log, mysql_client_binlog_statement in sql_binlog.cc
executes BINLOG statements). I needed to augment
mysql_client_binlog_statement to do parts of what
exec_relay_log_event does. Hence, I did a small refactoring and
moved parts of exec_relay_log_event to a new function, which I
named apply_event_and_update_pos. apply_event_and_update_pos is
called both from exec_relay_log_event and from
mysql_client_binlog_statement.
- When a non-FD event is executed in a BINLOG statement, without
previously executing a FD event in a BINLOG statement, it generates
an error, because that's unsafe. I took a new error code for that:
ER_NO_FORMAT_DESCRIPTION_EVENT_BEFORE_BINLOG_STATEMENTS.
In order to get a decent error message containing the name of the
event, I added the class method char*
Log_event::get_type_str(Log_event_type type), which returns a
string name for the given Log_event_type. This is just like the
existing char* Log_event::get_type_str(), except it is a class
method that takes the log event type as parameter.
I also added PRE_GA_*_ROWS_LOG_EVENT to Log_event::get_type_str(),
so that names of old rows event are properly printed.
- When reading an event, I added a check that the event type is known
by the current Format_description_log_event. Without this, it may
crash on bad input (and I was struck by this several times).
- I patched the following test cases, which all contain BINLOG
statements for row events which must be preceded by BINLOG
statements for FD events:
- rpl_bug31076
While I was here, I fixed some small things in log_event.cc:
- replaced hard-coded 4 by EVENT_TYPE_OFFSET in 3 places
- replaced return by DBUG_VOID_RETURN in one place
- The name of the logfile can be '-' to indicate stdin. Before my
patch, the code just checked if the first character is '-'; now it
does a full strcmp(). Probably, all arguments that begin with a -
are already handled somewhere else as flags, but I still think it
is better that the code reflects what it is supposed to do, with as
little dependencies as possible on other parts of the code. If we
one day implement that all command line arguments after -- are
files (as most unix tools do), then we need this.
I also fixed the following in slave.cc:
- next_event() was declared twice, and queue_event was not static but
should be static (not used outside the file).
client/client_priv.h:
Declared the new option for base64 output.
client/mysqlbinlog.cc:
- Change from using the two-state command line option
"default/--base64-output" to the three-state
"--base64-output=[never|auto|always]"
- Print the FD event even if it is outside the --start-position range.
- Stop if a row event is about to be printed without a preceding FD
event.
- Minor fixes:
* changed 4 to EVENT_TYPE_OFFSET in some places
* Added comments
* before, "mysqlbinlog -xyz" read from stdin; now it does not
(only "mysqlbinlog -" reads stdin).
mysql-test/r/mysqlbinlog2.result:
Updated result file: mysqlbinlog now prints ROLLBACK always.
mysql-test/suite/binlog/t/disabled.def:
The test must be disabled since it reveals another bug: see BUG#33247.
mysql-test/suite/rpl/r/rpl_bug31076.result:
Updated result file
mysql-test/suite/rpl/r/rpl_row_mysqlbinlog.result:
Updated result file
mysql-test/suite/rpl/t/rpl_bug31076.test:
Had to add explicit Format_description_log_event before other BINLOG
statements
mysql-test/t/mysqlbinlog2.test:
we must suppress base64 output in result file because it contains a
timestamp
sql/log_event.cc:
- Made FD events able to print themselves
- Added check that the current FD event knows about the event type, when
an event is about to be read. (Hint to reviewers: I had to re-indent
a big block because of this; use diff -b)
* To get a decent error message, I also added a class method
const char* Log_event::get_type_str(Log_event_type)
which converts number to event type string without having a
Log_event object.
* Made Log_event::get_type_str aware of PRE_GA_*_ROWS_LOG_EVENT.
- Minor fixes:
* Changed return to DBUG_VOID_RETURN
sql/log_event.h:
- Declared enum to describe the three base64_output modes
- Use the enum instead of a flag
- Declare the new class method get_type_str (see log_event.cc)
sql/share/errmsg.txt:
Added error msg.
sql/slave.cc:
- Factored out part of exec_relay_log_event to the new function
apply_event_and_update_pos, because that code is needed when executing
BINLOG statements. (this is be functionally equivalent to the
previous code, except: (1) skipping events is now optional, controlled
by a parameter to the new function (2) the return value of
exec_relay_log_event has changed; see next item).
- Changed returned error value to always be 1. Before, it would return
the error value from apply_log_event, which was unnecessary. This
change is safe because the exact return value of exec_relay_log_event
is never examined; it is only tested to be ==0 or !=0.
- Added comments describing exec_relay_log_event and
apply_event_and_update_pos.
- Minor fixes:
* Removed duplicate declaration of next_event, made queue_event
static.
* Added doxygen code to include this file.
sql/slave.h:
Declared the new apply_event_and_update_pos
sql/sql_binlog.cc:
- Made mysql_binlog_statement set the current FD event when the given
event is an FD event. This entails using the new function
apply_event_and_update_pos from slave.cc instead of just calling the
ev->apply method.
- Made mysql_binlog_statement fail if the first BINLOG statement is not
an FD event.
mysql-test/suite/binlog/r/binlog_base64_flag.result:
New test file needs new result file
mysql-test/suite/binlog/t/binlog_base64_flag.test:
Added test case to verify that:
- my patch fixes the bug
- the new --base64-output flag works as expected
- base64 events not preceded by an FD event give an error
- an event of a type not known by the current FD event fails cleanly.
mysql-test/suite/binlog/std_data/binlog-bug32407.000001:
BitKeeper file /home/sven/bk/b32407-5.1-new-rpl-mysqlbinlog_base64/mysql-test/suite/binlog/std_data/binlog-bug32407.000001
2007-12-14 19:02:02 +01:00
|
|
|
OPT_MYSQL_REPLACE_INTO, OPT_BASE64_OUTPUT_MODE, OPT_SERVER_ID,
|
2006-11-21 21:32:58 +01:00
|
|
|
OPT_FIX_TABLE_NAMES, OPT_FIX_DB_NAMES, OPT_SSL_VERIFY_SERVER_CERT,
|
2009-11-04 13:20:02 +01:00
|
|
|
OPT_AUTO_VERTICAL_OUTPUT,
|
2007-08-01 21:59:05 +02:00
|
|
|
OPT_DEBUG_INFO, OPT_DEBUG_CHECK, OPT_COLUMN_TYPES, OPT_ERROR_LOG_FILE,
|
2007-10-04 12:35:45 +02:00
|
|
|
OPT_WRITE_BINLOG, OPT_DUMP_DATE,
|
2009-10-15 14:23:43 +02:00
|
|
|
OPT_INIT_COMMAND,
|
2010-08-09 10:32:50 +02:00
|
|
|
OPT_PLUGIN_DIR,
|
2011-01-16 04:59:05 +01:00
|
|
|
OPT_DEFAULT_AUTH,
|
2008-07-09 15:09:30 +02:00
|
|
|
OPT_ABORT_SOURCE_ON_ERROR,
|
2009-10-16 16:04:12 +02:00
|
|
|
OPT_REWRITE_DB,
|
2011-07-01 14:08:30 +02:00
|
|
|
OPT_REPORT_PROGRESS,
|
2011-01-10 14:53:09 +01:00
|
|
|
OPT_SKIP_ANNOTATE_ROWS_EVENTS,
|
2012-08-14 16:23:34 +02:00
|
|
|
OPT_SSL_CRL, OPT_SSL_CRLPATH,
|
2017-12-23 15:59:41 +01:00
|
|
|
OPT_PRINT_ROW_COUNT, OPT_PRINT_ROW_EVENT_POSITIONS,
|
2019-03-07 05:12:26 +01:00
|
|
|
OPT_SHUTDOWN_WAIT_FOR_SLAVES,
|
2019-05-28 10:02:16 +02:00
|
|
|
OPT_COPY_S3_TABLES,
|
2019-09-01 09:55:16 +02:00
|
|
|
OPT_PRINT_TABLE_METADATA,
|
2010-03-29 17:13:53 +02:00
|
|
|
OPT_MAX_CLIENT_OPTION /* should be always the last */
|
2004-02-09 12:31:03 +01:00
|
|
|
};
|
2009-12-10 04:19:51 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
First mysql version supporting the information schema.
|
|
|
|
*/
|
|
|
|
#define FIRST_INFORMATION_SCHEMA_VERSION 50003
|
|
|
|
|
|
|
|
/**
|
|
|
|
Name of the information schema database.
|
|
|
|
*/
|
|
|
|
#define INFORMATION_SCHEMA_DB_NAME "information_schema"
|
|
|
|
|
|
|
|
/**
|
|
|
|
First mysql version supporting the performance schema.
|
|
|
|
*/
|
2010-03-09 10:52:11 +01:00
|
|
|
#define FIRST_PERFORMANCE_SCHEMA_VERSION 50503
|
2009-12-10 04:19:51 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
Name of the performance schema database.
|
|
|
|
*/
|
|
|
|
#define PERFORMANCE_SCHEMA_DB_NAME "performance_schema"
|