2014-02-17 11:00:51 +01:00
-- Copyright (c) 2007, 2013, Oracle and/or its affiliates.
2014-02-26 15:28:07 +01:00
-- Copyright (c) 2008, 2014, Monty Program Ab & SkySQL Ab
2010-12-28 19:57:23 +01:00
--
2010-01-12 02:47:27 +01: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
-- the Free Software Foundation; version 2 of the License.
--
-- 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.
--
-- You should have received a copy of the GNU General Public License
-- along with this program; if not, write to the Free Software
2010-04-14 18:40:04 +02:00
-- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
2010-01-12 02:47:27 +01:00
2007-02-26 11:49:24 +01:00
--
-- The system tables of MySQL Server
--
2007-08-27 13:39:34 +02:00
set sql_mode = ' ' ;
2012-11-15 13:11:35 +01:00
2013-11-13 15:40:46 +01:00
set @ orig_storage_engine = @ @ storage_engine ;
2007-02-26 11:49:24 +01:00
set storage_engine = myisam ;
2013-11-03 16:31:52 +01:00
CREATE TABLE IF NOT EXISTS db ( Host char ( 60 ) binary DEFAULT ' ' NOT NULL , Db char ( 64 ) binary DEFAULT ' ' NOT NULL , User char ( 80 ) binary DEFAULT ' ' NOT NULL , Select_priv enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , Insert_priv enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , Update_priv enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , Delete_priv enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , Create_priv enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , Drop_priv enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , Grant_priv enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , References_priv enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , Index_priv enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , Alter_priv enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , Create_tmp_table_priv enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , Lock_tables_priv enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , Create_view_priv enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , Show_view_priv enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , Create_routine_priv enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , Alter_routine_priv enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , Execute_priv enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , Event_priv enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , Trigger_priv enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , PRIMARY KEY Host ( Host , Db , User ) , KEY User ( User ) ) engine = MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment = ' Database privileges ' ;
2007-02-26 11:49:24 +01:00
2007-04-12 17:48:28 +02:00
-- Remember for later if db table already existed
set @ had_db_table = @ @ warning_count ! = 0 ;
2007-02-26 11:49:24 +01:00
2007-02-27 11:39:29 +01:00
CREATE TABLE IF NOT EXISTS host ( Host char ( 60 ) binary DEFAULT ' ' NOT NULL , Db char ( 64 ) binary DEFAULT ' ' NOT NULL , Select_priv enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , Insert_priv enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , Update_priv enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , Delete_priv enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , Create_priv enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , Drop_priv enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , Grant_priv enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , References_priv enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , Index_priv enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , Alter_priv enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , Create_tmp_table_priv enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , Lock_tables_priv enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , Create_view_priv enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , Show_view_priv enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , Create_routine_priv enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , Alter_routine_priv enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , Execute_priv enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , Trigger_priv enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , PRIMARY KEY Host ( Host , Db ) ) engine = MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment = ' Host privileges; Merged with database privileges ' ;
2007-02-26 11:49:24 +01:00
2013-11-04 08:43:56 +01:00
CREATE TABLE IF NOT EXISTS user ( Host char ( 60 ) binary DEFAULT ' ' NOT NULL , User char ( 80 ) binary DEFAULT ' ' NOT NULL , Password char ( 41 ) character set latin1 collate latin1_bin DEFAULT ' ' NOT NULL , Select_priv enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , Insert_priv enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , Update_priv enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , Delete_priv enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , Create_priv enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , Drop_priv enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , Reload_priv enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , Shutdown_priv enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , Process_priv enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , File_priv enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , Grant_priv enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , References_priv enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , Index_priv enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , Alter_priv enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , Show_db_priv enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , Super_priv enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , Create_tmp_table_priv enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , Lock_tables_priv enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , Execute_priv enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , Repl_slave_priv enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , Repl_client_priv enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , Create_view_priv enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , Show_view_priv enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , Create_routine_priv enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , Alter_routine_priv enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , Create_user_priv enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , Event_priv enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , Trigger_priv enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , Create_tablespace_priv enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , ssl_type enum ( ' ' , ' ANY ' , ' X509 ' , ' SPECIFIED ' ) COLLATE utf8_general_ci DEFAULT ' ' NOT NULL , ssl_cipher BLOB NOT NULL , x509_issuer BLOB NOT NULL , x509_subject BLOB NOT NULL , max_questions int ( 11 ) unsigned DEFAULT 0 NOT NULL , max_updates int ( 11 ) unsigned DEFAULT 0 NOT NULL , max_connections int ( 11 ) unsigned DEFAULT 0 NOT NULL , max_user_connections int ( 11 ) DEFAULT 0 NOT NULL , plugin char ( 64 ) CHARACTER SET latin1 DEFAULT ' ' NOT NULL , authentication_string TEXT NOT NULL , password_expired ENUM ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , is_role enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , PRIMARY KEY Host ( Host , User ) ) engine = MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment = ' Users and global privileges ' ;
2007-02-26 11:49:24 +01:00
2007-04-12 17:48:28 +02:00
-- Remember for later if user table already existed
set @ had_user_table = @ @ warning_count ! = 0 ;
2013-11-03 16:31:52 +01:00
CREATE TABLE IF NOT EXISTS roles_mapping ( Host char ( 60 ) binary DEFAULT ' ' NOT NULL , User char ( 80 ) binary DEFAULT ' ' NOT NULL , Role char ( 80 ) binary DEFAULT ' ' NOT NULL , Admin_option enum ( ' N ' , ' Y ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , UNIQUE ( Host , User , Role ) ) engine = MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment = ' Granted roles ' ;
2007-02-26 11:49:24 +01:00
CREATE TABLE IF NOT EXISTS func ( name char ( 64 ) binary DEFAULT ' ' NOT NULL , ret tinyint ( 1 ) DEFAULT ' 0 ' NOT NULL , dl char ( 128 ) DEFAULT ' ' NOT NULL , type enum ( ' function ' , ' aggregate ' ) COLLATE utf8_general_ci NOT NULL , PRIMARY KEY ( name ) ) engine = MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment = ' User defined functions ' ;
2009-10-12 20:15:10 +02:00
CREATE TABLE IF NOT EXISTS plugin ( name varchar ( 64 ) DEFAULT ' ' NOT NULL , dl varchar ( 128 ) DEFAULT ' ' NOT NULL , PRIMARY KEY ( name ) ) engine = MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci comment = ' MySQL plugins ' ;
2007-02-27 11:39:29 +01:00
2013-11-03 16:31:52 +01:00
CREATE TABLE IF NOT EXISTS servers ( Server_name char ( 64 ) NOT NULL DEFAULT ' ' , Host char ( 64 ) NOT NULL DEFAULT ' ' , Db char ( 64 ) NOT NULL DEFAULT ' ' , Username char ( 80 ) NOT NULL DEFAULT ' ' , Password char ( 64 ) NOT NULL DEFAULT ' ' , Port INT ( 4 ) NOT NULL DEFAULT ' 0 ' , Socket char ( 64 ) NOT NULL DEFAULT ' ' , Wrapper char ( 64 ) NOT NULL DEFAULT ' ' , Owner char ( 64 ) NOT NULL DEFAULT ' ' , PRIMARY KEY ( Server_name ) ) CHARACTER SET utf8 comment = ' MySQL Foreign Servers table ' ;
2007-02-27 11:39:29 +01:00
2013-11-04 08:43:56 +01:00
CREATE TABLE IF NOT EXISTS tables_priv ( Host char ( 60 ) binary DEFAULT ' ' NOT NULL , Db char ( 64 ) binary DEFAULT ' ' NOT NULL , User char ( 80 ) binary DEFAULT ' ' NOT NULL , Table_name char ( 64 ) binary DEFAULT ' ' NOT NULL , Grantor char ( 141 ) DEFAULT ' ' NOT NULL , Timestamp timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP , Table_priv set ( ' Select ' , ' Insert ' , ' Update ' , ' Delete ' , ' Create ' , ' Drop ' , ' Grant ' , ' References ' , ' Index ' , ' Alter ' , ' Create View ' , ' Show view ' , ' Trigger ' ) COLLATE utf8_general_ci DEFAULT ' ' NOT NULL , Column_priv set ( ' Select ' , ' Insert ' , ' Update ' , ' References ' ) COLLATE utf8_general_ci DEFAULT ' ' NOT NULL , PRIMARY KEY ( Host , Db , User , Table_name ) , KEY Grantor ( Grantor ) ) engine = MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment = ' Table privileges ' ;
2007-02-26 11:49:24 +01:00
2013-11-04 08:43:56 +01:00
CREATE TABLE IF NOT EXISTS columns_priv ( Host char ( 60 ) binary DEFAULT ' ' NOT NULL , Db char ( 64 ) binary DEFAULT ' ' NOT NULL , User char ( 80 ) binary DEFAULT ' ' NOT NULL , Table_name char ( 64 ) binary DEFAULT ' ' NOT NULL , Column_name char ( 64 ) binary DEFAULT ' ' NOT NULL , Timestamp timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP , Column_priv set ( ' Select ' , ' Insert ' , ' Update ' , ' References ' ) COLLATE utf8_general_ci DEFAULT ' ' NOT NULL , PRIMARY KEY ( Host , Db , User , Table_name , Column_name ) ) engine = MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment = ' Column privileges ' ;
2007-02-26 11:49:24 +01:00
2013-03-21 19:06:02 +01:00
CREATE TABLE IF NOT EXISTS help_topic ( help_topic_id int unsigned not null , name char ( 64 ) not null , help_category_id smallint unsigned not null , description text not null , example text not null , url text not null , primary key ( help_topic_id ) , unique index ( name ) ) engine = MyISAM CHARACTER SET utf8 comment = ' help topics ' ;
2007-02-26 11:49:24 +01:00
2013-03-21 19:06:02 +01:00
CREATE TABLE IF NOT EXISTS help_category ( help_category_id smallint unsigned not null , name char ( 64 ) not null , parent_category_id smallint unsigned null , url text not null , primary key ( help_category_id ) , unique index ( name ) ) engine = MyISAM CHARACTER SET utf8 comment = ' help categories ' ;
2007-02-26 11:49:24 +01:00
CREATE TABLE IF NOT EXISTS help_relation ( help_topic_id int unsigned not null references help_topic , help_keyword_id int unsigned not null references help_keyword , primary key ( help_keyword_id , help_topic_id ) ) engine = MyISAM CHARACTER SET utf8 comment = ' keyword-topic relation ' ;
CREATE TABLE IF NOT EXISTS help_keyword ( help_keyword_id int unsigned not null , name char ( 64 ) not null , primary key ( help_keyword_id ) , unique index ( name ) ) engine = MyISAM CHARACTER SET utf8 comment = ' help keywords ' ;
CREATE TABLE IF NOT EXISTS time_zone_name ( Name char ( 64 ) NOT NULL , Time_zone_id int unsigned NOT NULL , PRIMARY KEY Name ( Name ) ) engine = MyISAM CHARACTER SET utf8 comment = ' Time zone names ' ;
CREATE TABLE IF NOT EXISTS time_zone ( Time_zone_id int unsigned NOT NULL auto_increment , Use_leap_seconds enum ( ' Y ' , ' N ' ) COLLATE utf8_general_ci DEFAULT ' N ' NOT NULL , PRIMARY KEY TzId ( Time_zone_id ) ) engine = MyISAM CHARACTER SET utf8 comment = ' Time zones ' ;
CREATE TABLE IF NOT EXISTS time_zone_transition ( Time_zone_id int unsigned NOT NULL , Transition_time bigint signed NOT NULL , Transition_type_id int unsigned NOT NULL , PRIMARY KEY TzIdTranTime ( Time_zone_id , Transition_time ) ) engine = MyISAM CHARACTER SET utf8 comment = ' Time zone transitions ' ;
CREATE TABLE IF NOT EXISTS time_zone_transition_type ( Time_zone_id int unsigned NOT NULL , Transition_type_id int unsigned NOT NULL , Offset int signed DEFAULT 0 NOT NULL , Is_DST tinyint unsigned DEFAULT 0 NOT NULL , Abbreviation char ( 8 ) DEFAULT ' ' NOT NULL , PRIMARY KEY TzIdTrTId ( Time_zone_id , Transition_type_id ) ) engine = MyISAM CHARACTER SET utf8 comment = ' Time zone transition types ' ;
CREATE TABLE IF NOT EXISTS time_zone_leap_second ( Transition_time bigint signed NOT NULL , Correction int signed NOT NULL , PRIMARY KEY TranTime ( Transition_time ) ) engine = MyISAM CHARACTER SET utf8 comment = ' Leap seconds information for time zones ' ;
2013-11-04 08:43:56 +01:00
CREATE TABLE IF NOT EXISTS proc ( db char ( 64 ) collate utf8_bin DEFAULT ' ' NOT NULL , name char ( 64 ) DEFAULT ' ' NOT NULL , type enum ( ' FUNCTION ' , ' PROCEDURE ' ) NOT NULL , specific_name char ( 64 ) DEFAULT ' ' NOT NULL , language enum ( ' SQL ' ) DEFAULT ' SQL ' NOT NULL , sql_data_access enum ( ' CONTAINS_SQL ' , ' NO_SQL ' , ' READS_SQL_DATA ' , ' MODIFIES_SQL_DATA ' ) DEFAULT ' CONTAINS_SQL ' NOT NULL , is_deterministic enum ( ' YES ' , ' NO ' ) DEFAULT ' NO ' NOT NULL , security_type enum ( ' INVOKER ' , ' DEFINER ' ) DEFAULT ' DEFINER ' NOT NULL , param_list blob NOT NULL , returns longblob DEFAULT ' ' NOT NULL , body longblob NOT NULL , definer char ( 141 ) collate utf8_bin DEFAULT ' ' NOT NULL , created timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP , modified timestamp NOT NULL DEFAULT ' 0000-00-00 00:00:00 ' , sql_mode set ( ' REAL_AS_FLOAT ' , ' PIPES_AS_CONCAT ' , ' ANSI_QUOTES ' , ' IGNORE_SPACE ' , ' IGNORE_BAD_TABLE_OPTIONS ' , ' ONLY_FULL_GROUP_BY ' , ' NO_UNSIGNED_SUBTRACTION ' , ' NO_DIR_IN_CREATE ' , ' POSTGRESQL ' , ' ORACLE ' , ' MSSQL ' , ' DB2 ' , ' MAXDB ' , ' NO_KEY_OPTIONS ' , ' NO_TABLE_OPTIONS ' , ' NO_FIELD_OPTIONS ' , ' MYSQL323 ' , ' MYSQL40 ' , ' ANSI ' , ' NO_AUTO_VALUE_ON_ZERO ' , ' NO_BACKSLASH_ESCAPES ' , ' STRICT_TRANS_TABLES ' , ' STRICT_ALL_TABLES ' , ' NO_ZERO_IN_DATE ' , ' NO_ZERO_DATE ' , ' INVALID_DATES ' , ' ERROR_FOR_DIVISION_BY_ZERO ' , ' TRADITIONAL ' , ' NO_AUTO_CREATE_USER ' , ' HIGH_NOT_PRECEDENCE ' , ' NO_ENGINE_SUBSTITUTION ' , ' PAD_CHAR_TO_FULL_LENGTH ' ) DEFAULT ' ' NOT NULL , comment text collate utf8_bin NOT NULL , character_set_client char ( 32 ) collate utf8_bin , collation_connection char ( 32 ) collate utf8_bin , db_collation char ( 32 ) collate utf8_bin , body_utf8 longblob , PRIMARY KEY ( db , name , type ) ) engine = MyISAM character set utf8 comment = ' Stored Procedures ' ;
2007-02-26 11:49:24 +01:00
2013-11-04 08:43:56 +01:00
CREATE TABLE IF NOT EXISTS procs_priv ( Host char ( 60 ) binary DEFAULT ' ' NOT NULL , Db char ( 64 ) binary DEFAULT ' ' NOT NULL , User char ( 80 ) binary DEFAULT ' ' NOT NULL , Routine_name char ( 64 ) COLLATE utf8_general_ci DEFAULT ' ' NOT NULL , Routine_type enum ( ' FUNCTION ' , ' PROCEDURE ' ) NOT NULL , Grantor char ( 141 ) DEFAULT ' ' NOT NULL , Proc_priv set ( ' Execute ' , ' Alter Routine ' , ' Grant ' ) COLLATE utf8_general_ci DEFAULT ' ' NOT NULL , Timestamp timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP , PRIMARY KEY ( Host , Db , User , Routine_name , Routine_type ) , KEY Grantor ( Grantor ) ) engine = MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment = ' Procedure privileges ' ;
2007-02-26 11:49:24 +01:00
2007-02-27 11:39:29 +01:00
2013-06-16 20:26:40 +02:00
-- Create general_log if CSV is enabled.
2013-08-13 13:35:36 +02:00
SET @ have_csv = ( SELECT support FROM information_schema . engines WHERE engine = ' CSV ' ) ;
2013-07-15 22:50:06 +02:00
SET @ str = IF ( @ have_csv = ' YES ' , ' CREATE TABLE IF NOT EXISTS general_log (event_time TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, user_host MEDIUMTEXT NOT NULL, thread_id BIGINT(21) UNSIGNED NOT NULL, server_id INTEGER UNSIGNED NOT NULL, command_type VARCHAR(64) NOT NULL, argument MEDIUMTEXT NOT NULL) engine=CSV CHARACTER SET utf8 comment="General log" ' , ' SET @dummy = 0 ' ) ;
2007-04-18 16:23:19 +02:00
2007-07-26 18:05:01 +02:00
PREPARE stmt FROM @ str ;
EXECUTE stmt ;
DROP PREPARE stmt ;
-- Create slow_log if CSV is enabled.
2013-06-16 20:26:40 +02:00
SET @ str = IF ( @ have_csv = ' YES ' , ' CREATE TABLE IF NOT EXISTS slow_log (start_time TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, user_host MEDIUMTEXT NOT NULL, query_time TIME(6) NOT NULL, lock_time TIME(6) NOT NULL, rows_sent INTEGER NOT NULL, rows_examined INTEGER NOT NULL, db VARCHAR(512) NOT NULL, last_insert_id INTEGER NOT NULL, insert_id INTEGER NOT NULL, server_id INTEGER UNSIGNED NOT NULL, sql_text MEDIUMTEXT NOT NULL, thread_id BIGINT(21) UNSIGNED NOT NULL) engine=CSV CHARACTER SET utf8 comment="Slow log" ' , ' SET @dummy = 0 ' ) ;
2007-07-26 18:05:01 +02:00
PREPARE stmt FROM @ str ;
EXECUTE stmt ;
DROP PREPARE stmt ;
2007-02-27 11:39:29 +01:00
2013-11-04 08:43:56 +01:00
CREATE TABLE IF NOT EXISTS event ( db char ( 64 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL default ' ' , name char ( 64 ) CHARACTER SET utf8 NOT NULL default ' ' , body longblob NOT NULL , definer char ( 141 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL default ' ' , execute_at DATETIME default NULL , interval_value int ( 11 ) default NULL , interval_field ENUM ( ' YEAR ' , ' QUARTER ' , ' MONTH ' , ' DAY ' , ' HOUR ' , ' MINUTE ' , ' WEEK ' , ' SECOND ' , ' MICROSECOND ' , ' YEAR_MONTH ' , ' DAY_HOUR ' , ' DAY_MINUTE ' , ' DAY_SECOND ' , ' HOUR_MINUTE ' , ' HOUR_SECOND ' , ' MINUTE_SECOND ' , ' DAY_MICROSECOND ' , ' HOUR_MICROSECOND ' , ' MINUTE_MICROSECOND ' , ' SECOND_MICROSECOND ' ) default NULL , created TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP , modified TIMESTAMP NOT NULL DEFAULT ' 0000-00-00 00:00:00 ' , last_executed DATETIME default NULL , starts DATETIME default NULL , ends DATETIME default NULL , status ENUM ( ' ENABLED ' , ' DISABLED ' , ' SLAVESIDE_DISABLED ' ) NOT NULL default ' ENABLED ' , on_completion ENUM ( ' DROP ' , ' PRESERVE ' ) NOT NULL default ' DROP ' , sql_mode set ( ' REAL_AS_FLOAT ' , ' PIPES_AS_CONCAT ' , ' ANSI_QUOTES ' , ' IGNORE_SPACE ' , ' IGNORE_BAD_TABLE_OPTIONS ' , ' ONLY_FULL_GROUP_BY ' , ' NO_UNSIGNED_SUBTRACTION ' , ' NO_DIR_IN_CREATE ' , ' POSTGRESQL ' , ' ORACLE ' , ' MSSQL ' , ' DB2 ' , ' MAXDB ' , ' NO_KEY_OPTIONS ' , ' NO_TABLE_OPTIONS ' , ' NO_FIELD_OPTIONS ' , ' MYSQL323 ' , ' MYSQL40 ' , ' ANSI ' , ' NO_AUTO_VALUE_ON_ZERO ' , ' NO_BACKSLASH_ESCAPES ' , ' STRICT_TRANS_TABLES ' , ' STRICT_ALL_TABLES ' , ' NO_ZERO_IN_DATE ' , ' NO_ZERO_DATE ' , ' INVALID_DATES ' , ' ERROR_FOR_DIVISION_BY_ZERO ' , ' TRADITIONAL ' , ' NO_AUTO_CREATE_USER ' , ' HIGH_NOT_PRECEDENCE ' , ' NO_ENGINE_SUBSTITUTION ' , ' PAD_CHAR_TO_FULL_LENGTH ' ) DEFAULT ' ' NOT NULL , comment char ( 64 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL default ' ' , originator INTEGER UNSIGNED NOT NULL , time_zone char ( 64 ) CHARACTER SET latin1 NOT NULL DEFAULT ' SYSTEM ' , character_set_client char ( 32 ) collate utf8_bin , collation_connection char ( 32 ) collate utf8_bin , db_collation char ( 32 ) collate utf8_bin , body_utf8 longblob , PRIMARY KEY ( db , name ) ) ENGINE = MyISAM DEFAULT CHARSET = utf8 COMMENT ' Events ' ;
2012-08-22 23:32:25 +02:00
2013-09-13 10:44:51 +02:00
SET @ create_innodb_table_stats = " CREATE TABLE IF NOT EXISTS innodb_table_stats (
2012-08-22 23:32:25 +02:00
database_name VARCHAR ( 64 ) NOT NULL ,
table_name VARCHAR ( 64 ) NOT NULL ,
2013-06-16 20:26:40 +02:00
last_update TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ,
2012-08-22 23:32:25 +02:00
n_rows BIGINT UNSIGNED NOT NULL ,
clustered_index_size BIGINT UNSIGNED NOT NULL ,
sum_of_other_index_sizes BIGINT UNSIGNED NOT NULL ,
PRIMARY KEY ( database_name , table_name )
2013-09-13 10:44:51 +02:00
) ENGINE = INNODB DEFAULT CHARSET = utf8 COLLATE = utf8_bin STATS_PERSISTENT = 0 " ;
2012-08-22 23:32:25 +02:00
2013-09-13 10:44:51 +02:00
SET @ create_innodb_index_stats = " CREATE TABLE IF NOT EXISTS innodb_index_stats (
2012-08-22 23:32:25 +02:00
database_name VARCHAR ( 64 ) NOT NULL ,
table_name VARCHAR ( 64 ) NOT NULL ,
index_name VARCHAR ( 64 ) NOT NULL ,
2013-06-16 20:26:40 +02:00
last_update TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ,
2012-08-22 23:32:25 +02:00
/* there are at least:
stat_name = ' size '
stat_name = ' n_leaf_pages '
stat_name = ' n_diff_pfx% ' * /
stat_name VARCHAR ( 64 ) NOT NULL ,
stat_value BIGINT UNSIGNED NOT NULL ,
sample_size BIGINT UNSIGNED ,
stat_description VARCHAR ( 1024 ) NOT NULL ,
2013-06-16 20:26:40 +02:00
PRIMARY KEY ( database_name , table_name , index_name , stat_name )
2013-09-13 10:44:51 +02:00
) ENGINE = INNODB DEFAULT CHARSET = utf8 COLLATE = utf8_bin STATS_PERSISTENT = 0 " ;
set @ have_innodb = ( select count ( engine ) from information_schema . engines where engine = ' INNODB ' and support ! = ' NO ' ) ;
2012-08-22 23:32:25 +02:00
2013-09-13 10:44:51 +02:00
SET @ str = IF ( @ have_innodb < > 0 , @ create_innodb_table_stats , " SET @dummy = 0 " ) ;
PREPARE stmt FROM @ str ;
EXECUTE stmt ;
DROP PREPARE stmt ;
2012-08-22 23:32:25 +02:00
2013-09-13 10:44:51 +02:00
SET @ str = IF ( @ have_innodb < > 0 , @ create_innodb_index_stats , " SET @dummy = 0 " ) ;
PREPARE stmt FROM @ str ;
EXECUTE stmt ;
DROP PREPARE stmt ;
2013-06-16 20:26:40 +02:00
SET @ cmd = " CREATE TABLE IF NOT EXISTS slave_relay_log_info (
Number_of_lines INTEGER UNSIGNED NOT NULL COMMENT ' Number of lines in the file or rows in the table. Used to version table definitions. ' ,
Relay_log_name TEXT CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT ' The name of the current relay log file. ' ,
Relay_log_pos BIGINT UNSIGNED NOT NULL COMMENT ' The relay log position of the last executed event. ' ,
Master_log_name TEXT CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT ' The name of the master binary log file from which the events in the relay log file were read. ' ,
Master_log_pos BIGINT UNSIGNED NOT NULL COMMENT ' The master log position of the last executed event. ' ,
Sql_delay INTEGER NOT NULL COMMENT ' The number of seconds that the slave must lag behind the master. ' ,
Number_of_workers INTEGER UNSIGNED NOT NULL ,
Id INTEGER UNSIGNED NOT NULL COMMENT ' Internal Id that uniquely identifies this record. ' ,
PRIMARY KEY ( Id ) ) DEFAULT CHARSET = utf8 STATS_PERSISTENT = 0 COMMENT ' Relay Log Information ' " ;
SET @ str = IF ( @ have_innodb < > 0 , CONCAT ( @ cmd , ' ENGINE= INNODB; ' ) , CONCAT ( @ cmd , ' ENGINE= MYISAM; ' ) ) ;
-- Don't create the table; MariaDB will have another implementation
#PREPARE stmt FROM @str;
#EXECUTE stmt;
#DROP PREPARE stmt;
SET @ cmd = " CREATE TABLE IF NOT EXISTS slave_master_info (
Number_of_lines INTEGER UNSIGNED NOT NULL COMMENT ' Number of lines in the file. ' ,
Master_log_name TEXT CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT ' The name of the master binary log currently being read from the master. ' ,
Master_log_pos BIGINT UNSIGNED NOT NULL COMMENT ' The master log position of the last read event. ' ,
Host CHAR ( 64 ) CHARACTER SET utf8 COLLATE utf8_bin COMMENT ' The host name of the master. ' ,
User_name TEXT CHARACTER SET utf8 COLLATE utf8_bin COMMENT ' The user name used to connect to the master. ' ,
User_password TEXT CHARACTER SET utf8 COLLATE utf8_bin COMMENT ' The password used to connect to the master. ' ,
Port INTEGER UNSIGNED NOT NULL COMMENT ' The network port used to connect to the master. ' ,
Connect_retry INTEGER UNSIGNED NOT NULL COMMENT ' The period (in seconds) that the slave will wait before trying to reconnect to the master. ' ,
Enabled_ssl BOOLEAN NOT NULL COMMENT ' Indicates whether the server supports SSL connections. ' ,
Ssl_ca TEXT CHARACTER SET utf8 COLLATE utf8_bin COMMENT ' The file used for the Certificate Authority (CA) certificate. ' ,
Ssl_capath TEXT CHARACTER SET utf8 COLLATE utf8_bin COMMENT ' The path to the Certificate Authority (CA) certificates. ' ,
Ssl_cert TEXT CHARACTER SET utf8 COLLATE utf8_bin COMMENT ' The name of the SSL certificate file. ' ,
Ssl_cipher TEXT CHARACTER SET utf8 COLLATE utf8_bin COMMENT ' The name of the cipher in use for the SSL connection. ' ,
Ssl_key TEXT CHARACTER SET utf8 COLLATE utf8_bin COMMENT ' The name of the SSL key file. ' ,
Ssl_verify_server_cert BOOLEAN NOT NULL COMMENT ' Whether to verify the server certificate. ' ,
Heartbeat FLOAT NOT NULL COMMENT ' ' ,
Bind TEXT CHARACTER SET utf8 COLLATE utf8_bin COMMENT ' Displays which interface is employed when connecting to the MySQL server ' ,
Ignored_server_ids TEXT CHARACTER SET utf8 COLLATE utf8_bin COMMENT ' The number of server IDs to be ignored, followed by the actual server IDs ' ,
Uuid TEXT CHARACTER SET utf8 COLLATE utf8_bin COMMENT ' The master server uuid. ' ,
Retry_count BIGINT UNSIGNED NOT NULL COMMENT ' Number of reconnect attempts, to the master, before giving up. ' ,
Ssl_crl TEXT CHARACTER SET utf8 COLLATE utf8_bin COMMENT ' The file used for the Certificate Revocation List (CRL) ' ,
Ssl_crlpath TEXT CHARACTER SET utf8 COLLATE utf8_bin COMMENT ' The path used for Certificate Revocation List (CRL) files ' ,
Enabled_auto_position BOOLEAN NOT NULL COMMENT ' Indicates whether GTIDs will be used to retrieve events from the master. ' ,
PRIMARY KEY ( Host , Port ) ) DEFAULT CHARSET = utf8 STATS_PERSISTENT = 0 COMMENT ' Master Information ' " ;
SET @ str = IF ( @ have_innodb < > 0 , CONCAT ( @ cmd , ' ENGINE= INNODB; ' ) , CONCAT ( @ cmd , ' ENGINE= MYISAM; ' ) ) ;
-- Don't create the table; MariaDB will have another implementation
#PREPARE stmt FROM @str;
#EXECUTE stmt;
#DROP PREPARE stmt;
SET @ cmd = " CREATE TABLE IF NOT EXISTS slave_worker_info (
Id INTEGER UNSIGNED NOT NULL ,
Relay_log_name TEXT CHARACTER SET utf8 COLLATE utf8_bin NOT NULL ,
Relay_log_pos BIGINT UNSIGNED NOT NULL ,
Master_log_name TEXT CHARACTER SET utf8 COLLATE utf8_bin NOT NULL ,
Master_log_pos BIGINT UNSIGNED NOT NULL ,
Checkpoint_relay_log_name TEXT CHARACTER SET utf8 COLLATE utf8_bin NOT NULL ,
Checkpoint_relay_log_pos BIGINT UNSIGNED NOT NULL ,
Checkpoint_master_log_name TEXT CHARACTER SET utf8 COLLATE utf8_bin NOT NULL ,
Checkpoint_master_log_pos BIGINT UNSIGNED NOT NULL ,
Checkpoint_seqno INT UNSIGNED NOT NULL ,
Checkpoint_group_size INTEGER UNSIGNED NOT NULL ,
Checkpoint_group_bitmap BLOB NOT NULL ,
PRIMARY KEY ( Id ) ) DEFAULT CHARSET = utf8 STATS_PERSISTENT = 0 COMMENT ' Worker Information ' " ;
SET @ str = IF ( @ have_innodb < > 0 , CONCAT ( @ cmd , ' ENGINE= INNODB; ' ) , CONCAT ( @ cmd , ' ENGINE= MYISAM; ' ) ) ;
-- Don't create the table; MariaDB will have another implementation
#PREPARE stmt FROM @str;
#EXECUTE stmt;
#DROP PREPARE stmt;
2013-11-04 08:43:56 +01:00
CREATE TABLE IF NOT EXISTS proxies_priv ( Host char ( 60 ) binary DEFAULT ' ' NOT NULL , User char ( 80 ) binary DEFAULT ' ' NOT NULL , Proxied_host char ( 60 ) binary DEFAULT ' ' NOT NULL , Proxied_user char ( 80 ) binary DEFAULT ' ' NOT NULL , With_grant BOOL DEFAULT 0 NOT NULL , Grantor char ( 141 ) DEFAULT ' ' NOT NULL , Timestamp timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP , PRIMARY KEY Host ( Host , User , Proxied_host , Proxied_user ) , KEY Grantor ( Grantor ) ) engine = MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment = ' User proxy privileges ' ;
2010-08-09 10:32:50 +02:00
2010-11-02 16:45:26 +01:00
-- Remember for later if proxies_priv table already existed
set @ had_proxies_priv_table = @ @ warning_count ! = 0 ;
2012-03-19 09:35:32 +01:00
2013-06-16 20:26:40 +02:00
--
-- Tables unique for MariaDB
--
2012-12-05 09:31:05 +01:00
CREATE TABLE IF NOT EXISTS table_stats ( db_name varchar ( 64 ) NOT NULL , table_name varchar ( 64 ) NOT NULL , cardinality bigint ( 21 ) unsigned DEFAULT NULL , PRIMARY KEY ( db_name , table_name ) ) ENGINE = MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment = ' Statistics on Tables ' ;
2012-01-05 02:51:53 +01:00
2013-03-31 03:57:07 +02:00
CREATE TABLE IF NOT EXISTS column_stats ( db_name varchar ( 64 ) NOT NULL , table_name varchar ( 64 ) NOT NULL , column_name varchar ( 64 ) NOT NULL , min_value varchar ( 255 ) DEFAULT NULL , max_value varchar ( 255 ) DEFAULT NULL , null s_ratio decimal ( 12 , 4 ) DEFAULT NULL , avg_length decimal ( 12 , 4 ) DEFAULT NULL , avg_frequency decimal ( 12 , 4 ) DEFAULT NULL , hist_size tinyint unsigned , hist_type enum ( ' SINGLE_PREC_HB ' , ' DOUBLE_PREC_HB ' ) , histogram varbinary ( 255 ) , PRIMARY KEY ( db_name , table_name , column_name ) ) ENGINE = MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment = ' Statistics on Columns ' ;
2012-01-05 02:51:53 +01:00
2012-12-05 09:31:05 +01:00
CREATE TABLE IF NOT EXISTS index_stats ( db_name varchar ( 64 ) NOT NULL , table_name varchar ( 64 ) NOT NULL , index_name varchar ( 64 ) NOT NULL , prefix_arity int ( 11 ) unsigned NOT NULL , avg_frequency decimal ( 12 , 4 ) DEFAULT NULL , PRIMARY KEY ( db_name , table_name , index_name , prefix_arity ) ) ENGINE = MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment = ' Statistics on Indexes ' ;
2013-11-13 15:40:46 +01:00
-- GTID table.
-- We want this to be created with the default storage engine.
-- This way, if InnoDB is used we get crash safety, and if MyISAM is used
-- we avoid mixed-engine transactions.
set storage_engine = @ orig_storage_engine ;
CREATE TABLE IF NOT EXISTS gtid_slave_pos ( domain_id INT UNSIGNED NOT NULL , sub_id BIGINT UNSIGNED NOT NULL , server_id INT UNSIGNED NOT NULL , seq_no BIGINT UNSIGNED NOT NULL , PRIMARY KEY ( domain_id , sub_id ) ) comment = ' Replication slave GTID position ' ;