diff options
author | msvensson@pilot.blaudden <> | 2007-02-28 14:41:57 +0100 |
---|---|---|
committer | msvensson@pilot.blaudden <> | 2007-02-28 14:41:57 +0100 |
commit | 9cfd5691743667f7f7509b6c6cf4627066fb7c7d (patch) | |
tree | e99b55b8792517d9010a35f65ac70991407ea168 | |
parent | 2f3611801808e994933f20535235394c6323b17d (diff) | |
parent | e391b86fb0748591a7fa98b6924c2509ccd66c6a (diff) | |
download | mariadb-git-9cfd5691743667f7f7509b6c6cf4627066fb7c7d.tar.gz |
Merge pilot.blaudden:/home/msvensson/mysql/mysql-5.0-maint-bug20166
into pilot.blaudden:/home/msvensson/mysql/mysql-5.1-new-maint
-rwxr-xr-x | mysql-test/mysql-test-run.pl | 14 | ||||
-rw-r--r-- | scripts/Makefile.am | 16 | ||||
-rw-r--r-- | scripts/mysql_install_db.sh | 12 | ||||
-rw-r--r-- | scripts/mysql_system_tables.sql | 10 | ||||
-rw-r--r-- | scripts/mysql_system_tables_data.sql | 13 | ||||
-rw-r--r-- | scripts/mysql_system_tables_fix.sql (renamed from scripts/mysql_fix_privilege_tables.sql.in) | 0 |
6 files changed, 43 insertions, 22 deletions
diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl index d04998def8f..b1c042fdcde 100755 --- a/mysql-test/mysql-test-run.pl +++ b/mysql-test/mysql-test-run.pl @@ -2919,16 +2919,21 @@ sub install_db ($$) { # ---------------------------------------------------------------------- # Create the bootstrap.sql file # ---------------------------------------------------------------------- - my $bootstrap_sql_file= "$opt_vardir/tmp/bootstrap.sql$$"; + my $bootstrap_sql_file= "$opt_vardir/tmp/bootstrap.sql"; # Use the mysql database for system tables mtr_tofile($bootstrap_sql_file, "use mysql"); - # Add the offical mysql system tables and initial system data - # for a prodcuction system + # Add the offical mysql system tables + # for a production system mtr_appendfile_to_file("$path_sql_dir/mysql_system_tables.sql", $bootstrap_sql_file); + # Add the mysql system tables initial data + # for a production system + mtr_appendfile_to_file("$path_sql_dir/mysql_system_tables_data.sql", + $bootstrap_sql_file); + # Add test data for timezone - this is just a subset, on a real # system these tables will be populated either by mysql_tzinfo_to_sql # or by downloading the timezone table package from our website @@ -2952,7 +2957,8 @@ sub install_db ($$) { { mtr_error("Error executing mysqld --bootstrap\n" . - "Could not install system database, see $path_bootstrap_log"); + "Could not install system database from $bootstrap_sql_file\n" . + "see $path_bootstrap_log for errors"); } } diff --git a/scripts/Makefile.am b/scripts/Makefile.am index 4ba81d7f168..dc0c1396a44 100644 --- a/scripts/Makefile.am +++ b/scripts/Makefile.am @@ -57,15 +57,14 @@ EXTRA_DIST = $(EXTRA_SCRIPTS) \ mysqlaccess.conf \ mysqlbug \ make_win_bin_dist \ - mysql_fix_privilege_tables.sql.in + mysql_system_tables_fix.sql dist_pkgdata_DATA = fill_help_tables.sql \ mysql_fix_privilege_tables.sql \ mysql_system_tables.sql \ + mysql_system_tables_data.sql \ mysql_test_data_timezone.sql -# mysqlbug should be distributed built so that people can report build -# failures with it. CLEANFILES = @server_scripts@ \ make_binary_distribution \ make_sharedlib_distribution \ @@ -83,8 +82,11 @@ CLEANFILES = @server_scripts@ \ mysqldumpslow \ mysql_tableinfo \ mysqld_multi \ - mysql_create_system_tables + mysql_create_system_tables \ + mysql_fix_privilege_tables.sql +# mysqlbug should be distributed built so that people can report build +# failures with it. DISTCLEANFILES = mysqlbug # We want the right version and configure comand line in mysqlbug @@ -93,10 +95,10 @@ mysqlbug: ${top_builddir}/config.status mysqlbug.sh # Build mysql_fix_privilege_tables.sql from the files that contain # the system tables for this version of MySQL plus any commands # needed to upgrade the system tables from an older version -mysql_fix_privilege_tables.sql: mysql_fix_privilege_tables.sql.in \ - mysql_system_tables.sql +mysql_fix_privilege_tables.sql: mysql_system_tables.sql \ + mysql_system_tables_fix.sql @echo "Building $@"; - @cat mysql_system_tables.sql $@.in > $@ + @cat mysql_system_tables.sql mysql_system_tables_fix.sql > $@ SUFFIXES = .sh diff --git a/scripts/mysql_install_db.sh b/scripts/mysql_install_db.sh index 5912dd85cfb..da2438c606c 100644 --- a/scripts/mysql_install_db.sh +++ b/scripts/mysql_install_db.sh @@ -138,10 +138,12 @@ fi # Find SQL scripts needed for bootstrap fill_help_tables="fill_help_tables.sql" create_system_tables="mysql_system_tables.sql" +fill_system_tables="mysql_system_tables_data.sql" if test -n "$srcdir" then fill_help_tables=$srcdir/scripts/$fill_help_tables create_system_tables=$srcdir/scripts/$create_system_tables + fill_system_tables=$srcdir/scripts/$fill_system_tables else for i in $basedir/support-files $basedir/share $basedir/share/mysql \ $basedir/scripts `pwd` `pwd`/scripts @pkgdatadir@ @@ -154,6 +156,7 @@ else fill_help_tables=$pkgdatadir/$fill_help_tables create_system_tables=$pkgdatadir/$create_system_tables + fill_system_tables=$pkgdatadir/$fill_system_tables fi if test ! -f $create_system_tables @@ -170,6 +173,13 @@ then exit 1; fi +if test ! -f $fill_system_tables +then + echo "FATAL ERROR: Could not find help file '$fill_system_tables' in" + echo "@pkgdatadir@ or inside $basedir" + exit 1; +fi + # Find executables and paths mdata=$ldata/mysql mysqld=$execdir/mysqld @@ -273,7 +283,7 @@ mysqld_install_cmd_line="$mysqld_bootstrap $defaults $mysqld_opt --bootstrap \ # Pipe mysql_system_tables.sql to "mysqld --bootstrap" s_echo "Installing MySQL system tables..." -if `(echo "use mysql;"; cat $create_system_tables) | $mysqld_install_cmd_line` +if `(echo "use mysql;"; cat $create_system_tables $fill_system_tables) | $mysqld_install_cmd_line` then s_echo "OK" diff --git a/scripts/mysql_system_tables.sql b/scripts/mysql_system_tables.sql index bd82e8c1766..7be5c94ad80 100644 --- a/scripts/mysql_system_tables.sql +++ b/scripts/mysql_system_tables.sql @@ -6,10 +6,6 @@ set storage_engine=myisam; CREATE TABLE IF NOT EXISTS db ( Host char(60) binary DEFAULT '' NOT NULL, Db char(64) binary DEFAULT '' NOT NULL, User char(16) 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'; --- default grants for anyone to access database 'test' and 'test_%' -INSERT INTO db VALUES ('%','test','','Y','Y','Y','Y','Y','Y','N','Y','Y','Y','Y','Y','Y','Y','Y','N','N','Y','Y'); -INSERT INTO db VALUES ('%','test\_%','','Y','Y','Y','Y','Y','Y','N','Y','Y','Y','Y','Y','Y','Y','Y','N','N','Y','Y'); - 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'; @@ -63,11 +59,6 @@ CREATE TABLE IF NOT EXISTS proc ( db char(64) collate utf8_bin DEFAULT '' NOT NU CREATE TABLE IF NOT EXISTS procs_priv ( Host char(60) binary DEFAULT '' NOT NULL, Db char(64) binary DEFAULT '' NOT NULL, User char(16) binary DEFAULT '' NOT NULL, Routine_name char(64) binary DEFAULT '' NOT NULL, Routine_type enum('FUNCTION','PROCEDURE') NOT NULL, Grantor char(77) DEFAULT '' NOT NULL, Proc_priv set('Execute','Alter Routine','Grant') COLLATE utf8_general_ci DEFAULT '' NOT NULL, Timestamp timestamp(14), PRIMARY KEY (Host,Db,User,Routine_name,Routine_type), KEY Grantor (Grantor) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Procedure privileges'; --- default users allowing root access from local machine -INSERT INTO user VALUES ('localhost','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0); -REPLACE INTO user VALUES (@@hostname,'root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0); -REPLACE INTO user VALUES ('127.0.0.1','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0); - CREATE PROCEDURE create_general_log_table() BEGIN DECLARE is_csv_enabled int DEFAULT 0; SELECT @@have_csv = 'YES' INTO is_csv_enabled; IF (is_csv_enabled) THEN CREATE TABLE IF NOT EXISTS general_log (event_time TIMESTAMP NOT NULL, user_host MEDIUMTEXT, thread_id INTEGER, server_id INTEGER, command_type VARCHAR(64), argument MEDIUMTEXT) engine=CSV CHARACTER SET utf8 comment='General log'; END IF; END; CALL create_general_log_table(); @@ -84,4 +75,3 @@ CREATE TABLE IF NOT EXISTS event ( db char(64) CHARACTER SET utf8 COLLATE utf8_b CREATE TABLE IF NOT EXISTS ndb_binlog_index (Position BIGINT UNSIGNED NOT NULL, File VARCHAR(255) NOT NULL, epoch BIGINT UNSIGNED NOT NULL, inserts BIGINT UNSIGNED NOT NULL, updates BIGINT UNSIGNED NOT NULL, deletes BIGINT UNSIGNED NOT NULL, schemaops BIGINT UNSIGNED NOT NULL, PRIMARY KEY(epoch)) ENGINE=MYISAM; - diff --git a/scripts/mysql_system_tables_data.sql b/scripts/mysql_system_tables_data.sql new file mode 100644 index 00000000000..a9c816f2896 --- /dev/null +++ b/scripts/mysql_system_tables_data.sql @@ -0,0 +1,13 @@ +-- +-- The inital data for system tables of MySQL Server +-- + +-- default grants for anyone to access database 'test' and 'test_%' +INSERT INTO db VALUES ('%','test','','Y','Y','Y','Y','Y','Y','N','Y','Y','Y','Y','Y','Y','Y','Y','N','N'); +INSERT INTO db VALUES ('%','test\_%','','Y','Y','Y','Y','Y','Y','N','Y','Y','Y','Y','Y','Y','Y','Y','N','N'); + +-- default users allowing root access from local machine +INSERT INTO user VALUES ('localhost','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0); +REPLACE INTO user VALUES (@@hostname,'root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0); +REPLACE INTO user VALUES ('127.0.0.1','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0); + diff --git a/scripts/mysql_fix_privilege_tables.sql.in b/scripts/mysql_system_tables_fix.sql index a35cc00d132..a35cc00d132 100644 --- a/scripts/mysql_fix_privilege_tables.sql.in +++ b/scripts/mysql_system_tables_fix.sql |