From: msvensson Date: February 26 2007 10:48am Subject: bk commit into 5.0 tree (msvensson:1.2428) BUG#20166 List-Archive: http://lists.mysql.com/commits/20557 X-Bug: 20166 Message-Id: <200702261048.l1QAmQij004301@pilot.blaudden> Below is the list of changes that have just been committed into a local 5.0 repository of msvensson. When msvensson does a push these changes will be propagated to the main repository and, within 24 hours after the push, to the public repository. For information on how to access the public repository see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html ChangeSet@stripped, 2007-02-26 11:48:22+01:00, msvensson@stripped +29 -0 Bug#20166 mysql-test-run.pl does not test system privilege tables creation - Use mysql_system_tables.sql to create MySQL system tables in all places where we create them(mysql_install_db, mysql-test-run-pl and mysql_fix_privilege_tables.sql) BitKeeper/deleted/.del-init_db.sql@stripped, 2007-02-20 17:38:36+01:00, msvensson@stripped +0 -0 Delete: mysql-test/init_db.sql BitKeeper/deleted/.del-init_db.sql~a77d572c39d5a1f8@stripped, 2007-02-20 17:38:40+01:00, msvensson@stripped +0 -0 Delete: mysql-test/lib/init_db.sql BitKeeper/deleted/.del-mysql_create_system_tables.sh@stripped, 2007-02-20 16:56:40+01:00, msvensson@stripped +0 -0 Delete: scripts/mysql_create_system_tables.sh BitKeeper/etc/ignore@stripped, 2007-02-26 11:48:21+01:00, msvensson@stripped +1 -0 Added scripts/mysql_fix_privilege_tables.sql to the ignore list mysql-test/Makefile.am@stripped, 2007-02-26 11:48:15+01:00, msvensson@stripped +0 -2 lib/init_db.sql has been removed mysql-test/mysql-test-run.pl@stripped, 2007-02-26 11:48:15+01:00, msvensson@stripped +37 -34 - Build var/tmp/bootstrap.sql from mysql_system_tables.sql, mysql_test_data_timezone.sql and fill_help_tables.sql and use it when bootsraping the system tables to use during test. mysql-test/r/create.result@stripped, 2007-02-26 11:48:15+01:00, msvensson@stripped +2 -0 Update result file mysql-test/r/derived.result@stripped, 2007-02-26 11:48:15+01:00, msvensson@stripped +2 -0 Update result file mysql-test/r/join.result@stripped, 2007-02-26 11:48:15+01:00, msvensson@stripped +1 -1 Update result file mysql-test/r/mysql_upgrade.result@stripped, 2007-02-26 11:48:15+01:00, msvensson@stripped +0 -30 Update result file mysql-test/r/sp-security.result@stripped, 2007-02-26 11:48:15+01:00, msvensson@stripped +3 -3 Update result file mysql-test/t/create.test@stripped, 2007-02-26 11:48:15+01:00, msvensson@stripped +3 -1 Add user mysqltest_1 before trying to connect as that user - no anon users by default anymore mysql-test/t/derived.test@stripped, 2007-02-26 11:48:15+01:00, msvensson@stripped +6 -1 Add user mysqltest_1 before trying to connect as that user - no anon users by default anymore mysql-test/t/grant2.test@stripped, 2007-02-26 11:48:15+01:00, msvensson@stripped +4 -0 Add anonymous users for part of thes that need it. mysql-test/t/grant_cache.test@stripped, 2007-02-26 11:48:15+01:00, msvensson@stripped +6 -0 Add anonymous users for part of thes that need it. mysql-test/t/init_connect.test@stripped, 2007-02-26 11:48:15+01:00, msvensson@stripped +4 -0 Add anonymous users for part of thes that need it. mysql-test/t/lock_multi.test@stripped, 2007-02-26 11:48:15+01:00, msvensson@stripped +6 -0 Add anonymous users for part of thes that need it. mysql-test/t/ndb_basic.test@stripped, 2007-02-26 11:48:15+01:00, msvensson@stripped +3 -3 Connect as "root", blank user will take currently logged in username mysql-test/t/ndb_index_ordered.test@stripped, 2007-02-26 11:48:15+01:00, msvensson@stripped +2 -2 Connect as "root", blank user will take currently logged in username mysql-test/t/ndb_multi.test@stripped, 2007-02-26 11:48:15+01:00, msvensson@stripped +2 -2 Connect as "root", blank user will take currently logged in username mysql-test/t/overflow.test@stripped, 2007-02-26 11:48:15+01:00, msvensson@stripped +1 -1 Connect as root - no anonymous users by default anymore mysql-test/t/rpl_temporary.test@stripped, 2007-02-26 11:48:15+01:00, msvensson@stripped +8 -2 Add anonymous users for the test mysql-test/t/xa.test@stripped, 2007-02-26 11:48:15+01:00, msvensson@stripped +1 -1 Connect as "root", blank user wil pick currently logged in user scripts/Makefile.am@stripped, 2007-02-26 11:48:15+01:00, msvensson@stripped +16 -6 Remove mysql_create_system_tables.sh Add mysql_system_tables.sql and mysql_test_data_timezone.sql Build mysql_fix_privilege_tables.sql from mysql_system_tables.sql and mysql_fix_privilege_tables.sql.in scripts/mysql_fix_privilege_tables.sh@stripped, 2007-02-26 11:48:15+01:00, msvensson@stripped +1 -5 Update message describing what the script does scripts/mysql_fix_privilege_tables.sql.in@stripped, 2007-02-26 11:48:15+01:00, msvensson@stripped +43 -222 Remove the part that creates system tables as that will be added to mysql_fix_privileg_tables.sql from mysql_system_tables.sql Change all comments to use # scripts/mysql_fix_privilege_tables.sql.in@stripped, 2007-02-20 16:48:19+01:00, msvensson@stripped +0 -0 Rename: scripts/mysql_fix_privilege_tables.sql -> scripts/mysql_fix_privilege_tables.sql.in scripts/mysql_install_db.sh@stripped, 2007-02-26 11:48:15+01:00, msvensson@stripped +120 -81 Use mysql_system_tables.sql to create the MySQL system tables Update comments and indentation Add more descriptive comments about --windows switch Reduce number of hardcoded names for the SQL files the script looks for scripts/mysql_system_tables.sql@stripped, 2007-02-26 11:48:15+01:00, msvensson@stripped +66 -0 New BitKeeper file ``scripts/mysql_system_tables.sql'' scripts/mysql_system_tables.sql@stripped, 2007-02-26 11:48:15+01:00, msvensson@stripped +0 -0 scripts/mysql_test_data_timezone.sql@stripped, 2007-02-26 11:48:15+01:00, msvensson@stripped +8 -0 New BitKeeper file ``scripts/mysql_test_data_timezone.sql'' scripts/mysql_test_data_timezone.sql@stripped, 2007-02-26 11:48:15+01:00, msvensson@stripped +0 -0 # This is a BitKeeper patch. What follows are the unified diffs for the # set of deltas contained in the patch. The rest of the patch, the part # that BitKeeper cares about, is below these diffs. # User: msvensson # Host: pilot.blaudden # Root: /home/msvensson/mysql/bug20166/my50-bug20166 --- 1.55/scripts/Makefile.am 2006-12-30 21:02:05 +01:00 +++ 1.56/scripts/Makefile.am 2007-02-26 11:48:15 +01:00 @@ -32,8 +32,7 @@ bin_SCRIPTS = @server_scripts@ \ mysql_explain_log \ mysql_tableinfo \ mysql_upgrade_shell \ - mysqld_multi \ - mysql_create_system_tables + mysqld_multi noinst_SCRIPTS = make_binary_distribution \ make_sharedlib_distribution \ @@ -60,15 +59,18 @@ EXTRA_SCRIPTS = make_binary_distributio mysqld_multi.sh \ mysql_tableinfo.sh \ mysql_upgrade_shell.sh \ - mysqld_safe.sh \ - mysql_create_system_tables.sh + mysqld_safe.sh EXTRA_DIST = $(EXTRA_SCRIPTS) \ mysqlaccess.conf \ mysqlbug \ - make_win_bin_dist + make_win_bin_dist \ + mysql_fix_privilege_tables.sql.in -dist_pkgdata_DATA = fill_help_tables.sql mysql_fix_privilege_tables.sql +dist_pkgdata_DATA = fill_help_tables.sql \ + mysql_fix_privilege_tables.sql \ + mysql_system_tables.sql \ + mysql_test_data_timezone.sql # mysqlbug should be distributed built so that people can report build # failures with it. @@ -98,6 +100,14 @@ DISTCLEANFILES = mysqlbug # We want the right version and configure comand line in mysqlbug 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 + @echo "Building $@"; + @cat mysql_system_tables.sql $@.in > $@ SUFFIXES = .sh --- 1.37/scripts/mysql_fix_privilege_tables.sh 2006-12-30 23:47:38 +01:00 +++ 1.38/scripts/mysql_fix_privilege_tables.sh 2007-02-26 11:48:15 +01:00 @@ -175,11 +175,7 @@ s_echo() } s_echo "This script updates all the mysql privilege tables to be usable by" -s_echo "MySQL 4.0 and above." -s_echo "" -s_echo "This is needed if you want to use the new GRANT functions," -s_echo "CREATE AGGREGATE FUNCTION, stored procedures, or" -s_echo "more secure passwords in 4.1" +s_echo "the current version of MySQL" s_echo "" if test $verbose = 1 --- 1.69/scripts/mysql_install_db.sh 2007-01-11 09:19:27 +01:00 +++ 1.70/scripts/mysql_install_db.sh 2007-02-26 11:48:15 +01:00 @@ -14,8 +14,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -# This scripts creates the privilege tables db, host, user, tables_priv, -# columns_priv, procs_priv in the mysql database, as well as the func table. +# This scripts creates the MySQL Server system tables # # All unrecognized arguments to this script are passed to mysqld. @@ -30,6 +29,14 @@ case "$1" in ;; esac +s_echo() +{ + if test "$in_rpm" -eq 0 -a "$windows" -eq 0 + then + echo $1 + fi +} + parse_arguments() { # We only need to pass arguments through to the server if we don't # handle them here. So, we collect unrecognized options (passed on @@ -53,9 +60,20 @@ parse_arguments() { # where a chown of datadir won't help) user=`echo "$arg" | sed -e 's/^[^=]*=//'` ;; --skip-name-resolve) ip_only=1 ;; - --verbose) verbose=1 ;; + --verbose) verbose=1 ;; # Obsolete --rpm) in_rpm=1 ;; - --windows) windows=1 ;; + + --windows) + # This is actually a "cross bootstrap" argument used when + # building the MySQL system tables on a different host + # than the target. The platform independent + # files that are created in --datadir on the host can + # be copied to the target system, the most common use for + # this feature is in the windows installer which will take + # the files from datadir and include them as part of the install + # package. + windows=1 ;; + *) if test -n "$pick_args" then @@ -93,8 +111,6 @@ bindir= basedir= srcdir= force=0 -verbose=0 -fill_help_tables="" parse_arguments `$print_defaults $defaults mysqld mysql_install_db` parse_arguments PICK-ARGS-FROM-ARGV "$@" @@ -119,29 +135,42 @@ else fi fi -# find fill_help_tables.sh +# Find SQL scripts needed for bootstrap +fill_help_tables="fill_help_tables.sql" +create_system_tables="mysql_system_tables.sql" if test -n "$srcdir" then - fill_help_tables=$srcdir/scripts/fill_help_tables.sql + fill_help_tables=$srcdir/scripts/$fill_help_tables + create_system_tables=$srcdir/scripts/$create_system_tables else for i in $basedir/support-files $basedir/share $basedir/share/mysql \ $basedir/scripts `pwd` `pwd`/scripts @pkgdatadir@ do - if test -f $i/fill_help_tables.sql + if test -f $i/$fill_help_tables then pkgdatadir=$i fi done - fill_help_tables=$pkgdatadir/fill_help_tables.sql + fill_help_tables=$pkgdatadir/$fill_help_tables + create_system_tables=$pkgdatadir/$create_system_tables +fi + +if test ! -f $create_system_tables +then + echo "FATAL ERROR: Could not find SQL file '$create_system_tables' in" + echo "@pkgdatadir@ or inside $basedir" + exit 1; fi if test ! -f $fill_help_tables then - echo "Could not find help file 'fill_help_tables.sql' in @pkgdatadir@ or inside $basedir". + echo "FATAL ERROR: Could not find help file '$fill_help_tables' in" + echo "@pkgdatadir@ or inside $basedir" exit 1; fi +# Find executables and paths mdata=$ldata/mysql mysqld=$execdir/mysqld mysqld_opt="" @@ -167,7 +196,7 @@ then echo "FATAL ERROR $mysqld not found!" exit 1 else - echo "Didn't find $mysqld" + echo "FATAL ERROR Didn't find $mysqld" echo "You should do a 'make install' before executing this script" exit 1 fi @@ -187,9 +216,10 @@ then then echo "Neither host '$hostname' nor 'localhost' could be looked up with" echo "$bindir/resolveip" - echo "Please configure the 'hostname' command to return a correct hostname." - echo "If you want to solve this at a later stage, restart this script with" - echo "the --force option" + echo "Please configure the 'hostname' command to return a correct" + echo "hostname." + echo "If you want to solve this at a later stage, restart this script" + echo "with the --force option" exit 1 fi echo "WARNING: The host '$hostname' could not be looked up with resolveip." @@ -208,104 +238,113 @@ then fi # Create database directories mysql & test - - if test ! -d $ldata; then mkdir $ldata; chmod 700 $ldata ; fi - if test ! -d $ldata/mysql; then mkdir $ldata/mysql; chmod 700 $ldata/mysql ; fi - if test ! -d $ldata/test; then mkdir $ldata/test; chmod 700 $ldata/test ; fi - if test -w / -a ! -z "$user"; then - chown $user $ldata $ldata/mysql $ldata/test; - fi - -if test ! -f $mdata/db.frm -then - c_d="yes" +if test ! -d $ldata; then + mkdir $ldata; + chmod 700 $ldata ; +fi +if test ! -d $ldata/mysql; then + mkdir $ldata/mysql; + chmod 700 $ldata/mysql ; +fi +if test ! -d $ldata/test; then + mkdir $ldata/test; + chmod 700 $ldata/test ; +fi +if test -w / -a ! -z "$user"; then + chown $user $ldata $ldata/mysql $ldata/test; fi -if test $verbose = 1 +# Check is "db" table already exist +if test ! -f $mdata/db.frm then - create_option="verbose" -else - create_option="real" + db_table_already_exist="yes" fi if test -n "$user"; then args="$args --user=$user" fi -if test "$in_rpm" -eq 0 -a "$windows" -eq 0 -then - echo "Installing all prepared tables" -fi +# Peform the install of system tables mysqld_bootstrap="${MYSQLD_BOOTSTRAP-$mysqld}" mysqld_install_cmd_line="$mysqld_bootstrap $defaults $mysqld_opt --bootstrap \ ---skip-grant-tables --basedir=$basedir --datadir=$ldata --skip-innodb \ ---skip-bdb --skip-ndbcluster $args --max_allowed_packet=8M --net_buffer_length=16K" -if $scriptdir/mysql_create_system_tables $create_option $mdata $hostname $windows \ - | eval "$mysqld_install_cmd_line" +--basedir=$basedir --datadir=$ldata --skip-innodb \ +--skip-bdb --skip-ndbcluster $args --max_allowed_packet=8M \ +--net_buffer_length=16K" + +# 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` then + s_echo "OK" + if test -n "$fill_help_tables" then - if test "$in_rpm" -eq 0 -a "$windows" -eq 0 - then - echo "Fill help tables" - fi - (echo "use mysql;"; cat $fill_help_tables) | eval "$mysqld_install_cmd_line" - res=$? - if test $res != 0 + s_echo "Filling help tables..." + # Pipe fill_help_tables.sql to "mysqld --bootstrap" + if `(echo "use mysql;"; cat $fill_help_tables) | $mysqld_install_cmd_line` then + # Fill suceeded + s_echo "OK" + else echo "" echo "WARNING: HELP FILES ARE NOT COMPLETELY INSTALLED!" echo "The \"HELP\" command might not work properly" echo "" fi fi - if test "$in_rpm" = 0 -a "$windows" = 0 - then - echo "" - echo "To start mysqld at boot time you have to copy support-files/mysql.server" - echo "to the right place for your system" - echo - fi + + s_echo "" + s_echo "To start mysqld at boot time you have to copy" + s_echo "support-files/mysql.server to the right place for your system" + s_echo + if test "$windows" -eq 0 then - echo "PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !" - echo "To do so, start the server, then issue the following commands:" - echo "$bindir/mysqladmin -u root password 'new-password'" - echo "$bindir/mysqladmin -u root -h $hostname password 'new-password'" - echo "See the manual for more instructions." - # - # Print message about upgrading unless we have created a new db table. - if test -z "$c_d" - then - echo - echo "NOTE: If you are upgrading from a MySQL <= 3.22.10 you should run" - echo "the $bindir/mysql_fix_privilege_tables. Otherwise you will not be" - echo "able to use the new GRANT command!" - fi - echo - if test "$in_rpm" = "0" - then - echo "You can start the MySQL daemon with:" - echo "cd @prefix@ ; $bindir/mysqld_safe &" + # A root password should of course also be set on Windows! + # The reason for not displaying these prompts here is that when + # executing this script with the --windows argument the script + # is used to generate system tables mainly used by the + # windows installer. And thus the password should not be set until + # those files has been copied to the target system + echo "PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !" + echo "To do so, start the server, then issue the following commands:" + echo "$bindir/mysqladmin -u root password 'new-password'" + echo "$bindir/mysqladmin -u root -h $hostname password 'new-password'" + echo "See the manual for more instructions." + + # Print message about upgrading unless we have created a new db table. + if test -z "$db_table_already_exist" + then + echo + echo "NOTE: If you are upgrading from a previous MySQL verision you " + echo "should run '$bindir/mysql_upgrade', to make sure all tables have " + echo "been upgraded for this version of MySQL" + fi echo - echo "You can test the MySQL daemon with the benchmarks in the 'sql-bench' directory:" - echo "cd sql-bench ; perl run-all-tests" + + if test "$in_rpm" = "0" + then + echo "You can start the MySQL daemon with:" + echo "cd @prefix@ ; $bindir/mysqld_safe &" + echo + echo "You can test the MySQL daemon with mysql-test-run.pl" + echo "cd mysql-test ; perl mysql-test-run.pl" + echo + fi + echo "Please report any problems with the @scriptdir@/mysqlbug script!" echo - fi - echo "Please report any problems with the @scriptdir@/mysqlbug script!" - echo - echo "The latest information about MySQL is available on the web at" - echo "http://www.mysql.com" - echo "Support MySQL by buying support/licenses at http://shop.mysql.com" + echo "The latest information about MySQL is available on the web at" + echo "http://www.mysql.com" + echo "Support MySQL by buying support/licenses at http://shop.mysql.com" fi exit 0 else echo "Installation of system tables failed!" echo echo "Examine the logs in $ldata for more information." - echo "You can also try to start the mysqld daemon with:" + echo "You can try to start the mysqld daemon with:" echo "$mysqld --skip-grant &" - echo "You can use the command line tool" + echo "and use the command line tool" echo "$bindir/mysql to connect to the mysql" echo "database and look at the grant tables:" echo --- 1.57/mysql-test/r/derived.result 2006-07-19 20:33:15 +02:00 +++ 1.58/mysql-test/r/derived.result 2007-02-26 11:48:15 +01:00 @@ -202,6 +202,7 @@ drop table t1,t2; SELECT a.x FROM (SELECT 1 AS x) AS a HAVING a.x = 1; x 1 +create user mysqltest_1; create table t1 select 1 as a; select 2 as a from (select * from t1) b; ERROR 3D000: No database selected @@ -380,3 +381,4 @@ ID DATA FID select t2.* from (select * from t1) as A inner join t2 on A.ID = t2.FID; ID DATA FID drop table t1, t2; +drop user mysqltest_1; --- 1.52/mysql-test/t/derived.test 2006-07-19 20:33:15 +02:00 +++ 1.53/mysql-test/t/derived.test 2007-02-26 11:48:15 +01:00 @@ -99,7 +99,8 @@ SELECT a.x FROM (SELECT 1 AS x) AS a HAV # # Test for select if database is not selected. # -# Connect without a database +# Connect without a database as user mysqltest_1 +create user mysqltest_1; create table t1 select 1 as a; connect (con1,localhost,mysqltest_1,,*NO-ONE*,$MASTER_MYPORT,$MASTER_MYSOCK); connection con1; @@ -270,5 +271,9 @@ select A.* from (t1 inner join (select * select t2.* from ((select * from t1) as A inner join t2 on A.ID = t2.FID); select t2.* from (select * from t1) as A inner join t2 on A.ID = t2.FID; drop table t1, t2; + +disconnect con1; +connection default; +drop user mysqltest_1; # End of 4.1 tests --- 1.8/mysql-test/t/init_connect.test 2006-11-15 10:23:23 +01:00 +++ 1.9/mysql-test/t/init_connect.test 2007-02-26 11:48:15 +01:00 @@ -2,6 +2,8 @@ # Test of init_connect variable # +--source include/add_anonymous_users.inc + # should work with embedded server after mysqltest is fixed -- source include/not_embedded.inc connect (con0,localhost,root,,); @@ -40,6 +42,8 @@ disconnect con2; disconnect con3; disconnect con4; disconnect con5; + +--source include/delete_anonymous_users.inc --echo End of 4.1 tests # --- 1.199/mysql-test/mysql-test-run.pl 2007-02-20 12:48:13 +01:00 +++ 1.200/mysql-test/mysql-test-run.pl 2007-02-26 11:48:15 +01:00 @@ -299,6 +299,8 @@ our $path_ndb_examples_dir; our $exe_ndb_example; our $path_ndb_testrun_log; +our $path_sql_dir; + our @data_dir_lst; our $used_binlog_format; @@ -1497,12 +1499,16 @@ sub executable_setup () { $exe_mysql_fix_system_tables= mtr_script_exists("$glob_basedir/scripts/mysql_fix_privilege_tables", "$path_client_bindir/mysql_fix_privilege_tables"); + } + # Look for SQL scripts directory + $path_sql_dir= mtr_path_exists("$glob_basedir/share", + "$glob_basedir/scripts"); + # Look for mysql_fix_privilege_tables.sql script $file_mysql_fix_privilege_tables= - mtr_file_exists("$glob_basedir/scripts/mysql_fix_privilege_tables.sql", - "$glob_basedir/share/mysql_fix_privilege_tables.sql"); + mtr_file_exists("$path_sql_dir/mysql_fix_privilege_tables.sql"); if ( ! $opt_skip_ndbcluster and executable_setup_ndb()) { @@ -1940,6 +1946,7 @@ sub environment_setup () { "--port=$master->[0]->{'port'} " . "--socket=$master->[0]->{'path_sock'}"; $ENV{'MYSQL_FIX_SYSTEM_TABLES'}= $cmdline_mysql_fix_system_tables; + } $ENV{'MYSQL_FIX_PRIVILEGE_TABLES'}= $file_mysql_fix_privilege_tables; @@ -2856,38 +2863,11 @@ sub install_db ($$) { my $type= shift; my $data_dir= shift; - my $init_db_sql= "lib/init_db.sql"; - my $init_db_sql_tmp= "/tmp/init_db.sql$$"; - my $args; - mtr_report("Installing \u$type Database"); - open(IN, $init_db_sql) - or mtr_error("Can't open $init_db_sql: $!"); - open(OUT, ">", $init_db_sql_tmp) - or mtr_error("Can't write to $init_db_sql_tmp: $!"); - while () - { - chomp; - s/\@HOSTNAME\@/$glob_hostname/; - if ( /^\s*$/ ) - { - print OUT "\n"; - } - elsif (/;$/) - { - print OUT "$_\n"; - } - else - { - print OUT "$_ "; - } - } - close OUT; - close IN; + my $args; mtr_init_args(\$args); - mtr_add_arg($args, "--no-defaults"); mtr_add_arg($args, "--bootstrap"); mtr_add_arg($args, "--basedir=%s", $path_my_basedir); @@ -2921,21 +2901,44 @@ sub install_db ($$) { # ---------------------------------------------------------------------- $ENV{'MYSQLD_BOOTSTRAP_CMD'}= "$exe_mysqld_bootstrap " . join(" ", @$args); + # ---------------------------------------------------------------------- + # Create the bootstrap.sql file + # ---------------------------------------------------------------------- + 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 + mtr_appendfile_to_file("$path_sql_dir/mysql_system_tables.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 + mtr_appendfile_to_file("$path_sql_dir/mysql_test_data_timezone.sql", + $bootstrap_sql_file); + + # Fill help tables, just an empty file when running from bk repo + # but will be replaced by a real fill_help_tables.sql when + # building the source dist + mtr_appendfile_to_file("$path_sql_dir/fill_help_tables.sql", + $bootstrap_sql_file); + # Log bootstrap command my $path_bootstrap_log= "$opt_vardir/log/bootstrap.log"; mtr_tofile($path_bootstrap_log, "$exe_mysqld_bootstrap " . join(" ", @$args) . "\n"); - if ( mtr_run($exe_mysqld_bootstrap, $args, $init_db_sql_tmp, + if ( mtr_run($exe_mysqld_bootstrap, $args, $bootstrap_sql_file, $path_bootstrap_log, $path_bootstrap_log, "", { append_log_file => 1 }) != 0 ) { - unlink($init_db_sql_tmp); mtr_error("Error executing mysqld --bootstrap\n" . - "Could not install $type test DBs"); + "Could not install system database, see $path_bootstrap_log"); } - unlink($init_db_sql_tmp); } --- 1.37/mysql-test/t/ndb_basic.test 2007-01-22 18:33:54 +01:00 +++ 1.38/mysql-test/t/ndb_basic.test 2007-02-26 11:48:15 +01:00 @@ -583,8 +583,8 @@ drop table t1; # Test auto_increment # -connect (con1,localhost,,,test); -connect (con2,localhost,,,test); +connect (con1,localhost,root,,test); +connect (con2,localhost,root,,test); create table t1 (counter int(64) NOT NULL auto_increment, @@ -617,7 +617,7 @@ drop table t1; # # Bug #17249 delete statement with join where clause fails # when table do not have pk -# + # create table t1 (a int) engine=ndb; create table t2 (a int) engine=ndb; --- 1.27/mysql-test/t/ndb_index_ordered.test 2007-01-08 13:53:05 +01:00 +++ 1.28/mysql-test/t/ndb_index_ordered.test 2007-02-26 11:48:15 +01:00 @@ -336,8 +336,8 @@ drop table t1; # bug#7798 create table t1(a int primary key, b int not null, index(b)); insert into t1 values (1,1), (2,2); -connect (con1,localhost,,,test); -connect (con2,localhost,,,test); +connect (con1,localhost,root,,test); +connect (con2,localhost,root,,test); connection con1; set autocommit=0; begin; --- 1.123/mysql-test/r/create.result 2006-10-19 01:01:52 +02:00 +++ 1.124/mysql-test/r/create.result 2007-02-26 11:48:15 +01:00 @@ -509,9 +509,11 @@ drop database mysqltest; select database(); database() NULL +create user mysqltest_1; select database(), user(); database() user() NULL mysqltest_1@localhost +drop user mysqltest_1; use test; create table t1 (a int, index `primary` (a)); ERROR 42000: Incorrect index name 'primary' --- 1.40/mysql-test/r/join.result 2007-01-11 18:09:55 +01:00 +++ 1.41/mysql-test/r/join.result 2007-02-26 11:48:15 +01:00 @@ -701,7 +701,7 @@ select * from information_schema.statist using(table_name,column_name) where table_name='user'; TABLE_NAME COLUMN_NAME TABLE_CATALOG TABLE_SCHEMA NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT TABLE_CATALOG TABLE_SCHEMA ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT user Host NULL mysql 0 mysql PRIMARY 1 A NULL NULL NULL BTREE NULL mysql 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI # -user User NULL mysql 0 mysql PRIMARY 2 A 5 NULL NULL BTREE NULL mysql 2 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI # +user User NULL mysql 0 mysql PRIMARY 2 A 3 NULL NULL BTREE NULL mysql 2 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI # drop table t1; drop table t2; drop table t3; --- 1.83/mysql-test/t/create.test 2006-11-20 21:41:40 +01:00 +++ 1.84/mysql-test/t/create.test 2007-02-26 11:48:15 +01:00 @@ -406,12 +406,14 @@ select database(); drop database mysqltest; select database(); -# Connect without a database +# Connect without a database as user mysqltest_1 +create user mysqltest_1; connect (user1,localhost,mysqltest_1,,*NO-ONE*); connection user1; select database(), user(); connection default; disconnect user1; +drop user mysqltest_1; use test; # --- 1.17/mysql-test/t/grant_cache.test 2006-12-19 15:28:25 +01:00 +++ 1.18/mysql-test/t/grant_cache.test 2007-02-26 11:48:15 +01:00 @@ -2,6 +2,8 @@ -- source include/not_embedded.inc -- source include/have_query_cache.inc +--source include/add_anonymous_users.inc + # # Test grants with query cache # @@ -71,6 +73,7 @@ show status like "Qcache_queries_in_cach show status like "Qcache_hits"; show status like "Qcache_not_cached"; + # Don't use '' as user because it will pick Unix login connect (unkuser,localhost,unkuser,,,$MASTER_MYPORT,$MASTER_MYSOCK); connection unkuser; @@ -149,5 +152,8 @@ drop table test.t1,mysqltest.t1,mysqltes drop database mysqltest; set GLOBAL query_cache_size=default; + +--source include/delete_anonymous_users.inc + # End of 4.1 tests --- 1.21/mysql-test/t/lock_multi.test 2006-12-26 17:22:13 +01:00 +++ 1.22/mysql-test/t/lock_multi.test 2007-02-26 11:48:15 +01:00 @@ -138,6 +138,10 @@ DROP DATABASE mysqltest_1; # # Bug#16986 - Deadlock condition with MyISAM tables # + +# Need a matching user in mysql.user for multi-table select +--source include/add_anonymous_users.inc + connection locker; use mysql; LOCK TABLES columns_priv WRITE, db WRITE, host WRITE, user WRITE; @@ -213,6 +217,8 @@ UNLOCK TABLES; # connection default; DROP TABLE t1; + +--source include/delete_anonymous_users.inc # # Bug #17264: MySQL Server freeze --- 1.39/scripts/mysql_fix_privilege_tables.sql 2006-11-29 12:04:25 +01:00 +++ 1.41/scripts/mysql_fix_privilege_tables.sql.in 2007-02-26 11:48:15 +01:00 @@ -1,27 +1,19 @@ --- This script converts any old privilege tables to privilege tables suitable --- for MySQL 4.1 +# This part converts any old privilege tables to privilege tables suitable +# for current version of MySQL --- You can safely ignore all 'Duplicate column' and 'Unknown column' errors" --- because these just mean that your tables are already up to date. --- This script is safe to run even if your tables are already up to date! - --- On unix, you should use the mysql_fix_privilege_tables script to execute --- this sql script. --- On windows you should do 'mysql --force mysql < mysql_fix_privilege_tables.sql' +# You can safely ignore all 'Duplicate column' and 'Unknown column' errors" +# because these just mean that your tables are already up to date. +# This script is safe to run even if your tables are already up to date! + +# On unix, you should use the mysql_fix_privilege_tables script to execute +# this sql script. +# On windows you should do 'mysql --force mysql < mysql_fix_privilege_tables.sql' set storage_engine=MyISAM; -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) -) CHARACTER SET utf8 COLLATE utf8_bin; - ALTER TABLE user add File_priv enum('N','Y') COLLATE utf8_general_ci NOT NULL; --- Detect whether or not we had the Grant_priv column +# Detect whether or not we had the Grant_priv column SET @hadGrantPriv:=0; SELECT @hadGrantPriv:=1 FROM user WHERE Grant_priv LIKE '%'; @@ -29,14 +21,14 @@ ALTER TABLE user add Grant_priv enum('N' ALTER TABLE host add Grant_priv enum('N','Y') NOT NULL,add References_priv enum('N','Y') COLLATE utf8_general_ci NOT NULL,add Index_priv enum('N','Y') COLLATE utf8_general_ci NOT NULL,add Alter_priv enum('N','Y') COLLATE utf8_general_ci NOT NULL; ALTER TABLE db add Grant_priv enum('N','Y') COLLATE utf8_general_ci NOT NULL,add References_priv enum('N','Y') COLLATE utf8_general_ci NOT NULL,add Index_priv enum('N','Y') COLLATE utf8_general_ci NOT NULL,add Alter_priv enum('N','Y') COLLATE utf8_general_ci NOT NULL; --- Fix privileges for old tables +# Fix privileges for old tables UPDATE user SET Grant_priv=File_priv,References_priv=Create_priv,Index_priv=Create_priv,Alter_priv=Create_priv WHERE @hadGrantPriv = 0; UPDATE db SET References_priv=Create_priv,Index_priv=Create_priv,Alter_priv=Create_priv WHERE @hadGrantPriv = 0; UPDATE host SET References_priv=Create_priv,Index_priv=Create_priv,Alter_priv=Create_priv WHERE @hadGrantPriv = 0; --- --- The second alter changes ssl_type to new 4.0.2 format --- Adding columns needed by GRANT .. REQUIRE (openssl)" +# +# The second alter changes ssl_type to new 4.0.2 format +# Adding columns needed by GRANT .. REQUIRE (openssl)" ALTER TABLE user ADD ssl_type enum('','ANY','X509', 'SPECIFIED') COLLATE utf8_general_ci NOT NULL, @@ -45,23 +37,9 @@ ADD x509_issuer BLOB NOT NULL, ADD x509_subject BLOB NOT NULL; ALTER TABLE user MODIFY ssl_type enum('','ANY','X509', 'SPECIFIED') NOT NULL; --- --- tables_priv --- -CREATE TABLE IF NOT EXISTS tables_priv ( - Host char(60) binary DEFAULT '' NOT NULL, - Db char(64) binary DEFAULT '' NOT NULL, - User char(16) binary DEFAULT '' NOT NULL, - Table_name char(64) binary DEFAULT '' NOT NULL, - Grantor char(77) DEFAULT '' NOT NULL, - Timestamp timestamp(14), - Table_priv set('Select','Insert','Update','Delete','Create', - 'Drop','Grant','References','Index','Alter') - 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) -) CHARACTER SET utf8 COLLATE utf8_bin; +# +# tables_priv +# ALTER TABLE tables_priv ADD KEY Grantor (Grantor); @@ -84,21 +62,11 @@ ALTER TABLE tables_priv COLLATE utf8_general_ci DEFAULT '' NOT NULL, COMMENT='Table privileges'; --- --- columns_priv --- -CREATE TABLE IF NOT EXISTS columns_priv ( - Host char(60) DEFAULT '' NOT NULL, - Db char(64) DEFAULT '' NOT NULL, - User char(16) DEFAULT '' NOT NULL, - Table_name char(64) DEFAULT '' NOT NULL, - Column_name char(64) DEFAULT '' NOT NULL, - Timestamp timestamp(14), - Column_priv set('Select','Insert','Update','References') COLLATE utf8_general_ci DEFAULT '' NOT NULL, - PRIMARY KEY (Host,Db,User,Table_name,Column_name) -) CHARACTER SET utf8 COLLATE utf8_bin; +# +# columns_priv +# --- Name change of Type -> Column_priv from MySQL 3.22.12 +# Name change of Type -> Column_priv from MySQL 3.22.12 ALTER TABLE columns_priv CHANGE Type Column_priv set('Select','Insert','Update','References') COLLATE utf8_general_ci DEFAULT '' NOT NULL; @@ -117,15 +85,15 @@ ALTER TABLE columns_priv MODIFY Column_priv set('Select','Insert','Update','References') COLLATE utf8_general_ci DEFAULT '' NOT NULL; --- --- Add the new 'type' column to the func table. --- +# +# Add the new 'type' column to the func table. +# ALTER TABLE func add type enum ('function','aggregate') COLLATE utf8_general_ci NOT NULL; --- --- Change the user,db and host tables to current format --- +# +# Change the user,db and host tables to current format +# # Detect whether we had Show_db_priv SET @hadShowDbPriv:=0; @@ -140,13 +108,13 @@ ADD Execute_priv enum('N','Y') COLLATE u ADD Repl_slave_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL AFTER Execute_priv, ADD Repl_client_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL AFTER Repl_slave_priv; --- Convert privileges so that users have similar privileges as before +# Convert privileges so that users have similar privileges as before UPDATE user SET Show_db_priv= Select_priv, Super_priv=Process_priv, Execute_priv=Process_priv, Create_tmp_table_priv='Y', Lock_tables_priv='Y', Repl_slave_priv=file_priv, Repl_client_priv=File_priv where user<>"" AND @hadShowDbPriv = 0; --- Add fields that can be used to limit number of questions and connections --- for some users. +# Add fields that can be used to limit number of questions and connections +# for some users. ALTER TABLE user ADD max_questions int(11) NOT NULL DEFAULT 0 AFTER x509_subject, @@ -154,9 +122,9 @@ ADD max_updates int(11) unsigned NOT N ADD max_connections int(11) unsigned NOT NULL DEFAULT 0 AFTER max_updates; --- --- Add Create_tmp_table_priv and Lock_tables_priv to db and host --- +# +# Add Create_tmp_table_priv and Lock_tables_priv to db and host +# ALTER TABLE db ADD Create_tmp_table_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, @@ -173,8 +141,8 @@ alter table host comment='Host privilege alter table user comment='Users and global privileges'; alter table func comment='User defined functions'; --- Convert all tables to UTF-8 with binary collation --- and reset all char columns to correct width +# Convert all tables to UTF-8 with binary collation +# and reset all char columns to correct width ALTER TABLE user MODIFY Host char(60) NOT NULL default '', MODIFY User char(16) NOT NULL default '', @@ -248,7 +216,7 @@ ALTER TABLE func # # Detect whether we had Create_view_priv -# +# SET @hadCreateViewPriv:=0; SELECT @hadCreateViewPriv:=1 FROM user WHERE Create_view_priv LIKE '%'; @@ -325,7 +293,7 @@ UPDATE db SET Create_routine_priv=Create UPDATE host SET Create_routine_priv=Create_priv, Alter_routine_priv=Alter_priv, Execute_priv=Select_priv where @hadCreateRoutinePriv = 0; # -# Add max_user_connections resource limit +# Add max_user_connections resource limit # ALTER TABLE user ADD max_user_connections int(11) unsigned DEFAULT '0' NOT NULL AFTER max_connections; @@ -342,22 +310,9 @@ UPDATE user LEFT JOIN db USING (Host,Use WHERE @hadCreateUserPriv = 0 AND (user.Grant_priv = 'Y' OR db.Grant_priv = 'Y'); --- --- procs_priv --- -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) -) CHARACTER SET utf8 COLLATE utf8_bin comment='Procedure privileges'; +# +# procs_priv +# ALTER TABLE procs_priv ENGINE=MyISAM, @@ -374,143 +329,9 @@ ALTER TABLE procs_priv ALTER TABLE procs_priv MODIFY Timestamp timestamp(14) AFTER Proc_priv; --- --- help_topic --- -CREATE TABLE IF NOT EXISTS help_topic ( -help_topic_id int unsigned not null, -name varchar(64) not null, -help_category_id smallint unsigned not null, -description text not null, -example text not null, -url varchar(128) not null, -primary key (help_topic_id), unique index (name) -) CHARACTER SET utf8 comment='help topics'; - -CREATE TABLE IF NOT EXISTS help_category ( -help_category_id smallint unsigned not null, -name varchar(64) not null, -parent_category_id smallint unsigned null, -url varchar(128) not null, -primary key (help_category_id), -unique index (name) -) CHARACTER SET utf8 comment='help categories'; - -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) -) CHARACTER SET utf8 comment='keyword-topic relation'; - -CREATE TABLE IF NOT EXISTS help_keyword ( -help_keyword_id int unsigned not null, -name varchar(64) not null, -primary key (help_keyword_id), -unique index (name) -) CHARACTER SET utf8 comment='help keywords'; - -# -# Create missing time zone related tables -# - -CREATE TABLE IF NOT EXISTS time_zone_name ( -Name char(64) NOT NULL, -Time_zone_id int unsigned NOT NULL, -PRIMARY KEY Name (Name) -) 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) -) CHARACTER SET utf8 comment='Time zones'; --- Make enum field case-insensitive -ALTER TABLE time_zone - MODIFY Use_leap_seconds enum('Y','N') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL; - -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) -) 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) -) 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) -) CHARACTER SET utf8 comment='Leap seconds information for time zones'; - - -# -# Create proc table if it does not exists -# - -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 DEFAULT '' NOT NULL, - returns char(64) DEFAULT '' NOT NULL, - body longblob DEFAULT '' NOT NULL, - definer char(77) collate utf8_bin DEFAULT '' NOT NULL, - created timestamp, - modified timestamp, - sql_mode set( - 'REAL_AS_FLOAT', - 'PIPES_AS_CONCAT', - 'ANSI_QUOTES', - 'IGNORE_SPACE', - 'NOT_USED', - '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' - ) DEFAULT '' NOT NULL, - comment char(64) collate utf8_bin DEFAULT '' NOT NULL, - PRIMARY KEY (db,name,type) -) engine=MyISAM - character set utf8 - comment='Stored Procedures'; +# +# proc +# # Correct the name fields to not binary, and expand sql_data_access ALTER TABLE proc MODIFY name char(64) DEFAULT '' NOT NULL, --- 1.10/mysql-test/t/ndb_multi.test 2006-10-31 16:09:29 +01:00 +++ 1.11/mysql-test/t/ndb_multi.test 2007-02-26 11:48:15 +01:00 @@ -19,8 +19,8 @@ select * from t2; show status like 'handler_discover%'; # Check dropping and recreating table on same server -connect (con1,localhost,,,test); -connect (con2,localhost,,,test); +connect (con1,localhost,root,,test); +connect (con2,localhost,root,,test); connection con1; select * from t1; connection con2; --- 1.1/mysql-test/r/mysql_upgrade.result 2006-11-13 13:39:47 +01:00 +++ 1.2/mysql-test/r/mysql_upgrade.result 2007-02-26 11:48:15 +01:00 @@ -20,63 +20,43 @@ mysql.user 1 1 1 -1 -1 @hadShowDbPriv:=1 1 1 1 -1 -1 @hadCreateViewPriv:=1 1 1 1 -1 -1 @hadCreateRoutinePriv:=1 1 1 1 -1 -1 @hadCreateUserPriv:=1 1 1 1 -1 -1 Run it again - should say already completed @hadGrantPriv:=1 1 1 1 -1 -1 @hadShowDbPriv:=1 1 1 1 -1 -1 @hadCreateViewPriv:=1 1 1 1 -1 -1 @hadCreateRoutinePriv:=1 1 1 1 -1 -1 @hadCreateUserPriv:=1 1 1 1 -1 -1 Force should run it regardless of wheter it's been run before mysql.columns_priv OK mysql.db OK @@ -99,29 +79,19 @@ mysql.user 1 1 1 -1 -1 @hadShowDbPriv:=1 1 1 1 -1 -1 @hadCreateViewPriv:=1 1 1 1 -1 -1 @hadCreateRoutinePriv:=1 1 1 1 -1 -1 @hadCreateUserPriv:=1 -1 -1 1 1 1 --- New file --- +++ scripts/mysql_system_tables.sql 07/02/26 11:48:15 -- -- The system tables of MySQL Server -- 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, 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'); INSERT INTO db VALUES ('%','test_%','','Y','Y','Y','Y','Y','Y','N','Y','Y','Y','Y','Y','Y','Y','Y','N','N'); 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, PRIMARY KEY Host (Host,Db) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Host privileges; Merged with database privileges'; CREATE TABLE IF NOT EXISTS user ( Host char(60) binary DEFAULT '' NOT NULL, User char(16) 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_rou! tine_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NO! T NULL, Create_user_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) unsigned DEFAULT 0 NOT NULL, PRIMARY KEY Host (Host,User) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Users and global privileges'; 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'; CREATE TABLE IF NOT EXISTS tables_priv ( Host char(60) binary DEFAULT '' NOT NULL, Db char(64) binary DEFAULT '' NOT NULL, User char(16) binary DEFAULT '' NOT NULL, Table_name char(64) binary DEFAULT '' NOT NULL, Grantor char(77) DEFAULT '' NOT NULL, Timestamp timestamp(14), Table_priv set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view') 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'; CREATE TABLE IF NOT EXISTS columns_priv ( Host char(60) binary DEFAULT '' NOT NULL, Db char(64) binary DEFAULT '' NOT NULL, User char(16) binary DEFAULT '' NOT NULL, Table_name char(64) binary DEFAULT '' NOT NULL, Column_name char(64) binary DEFAULT '' NOT NULL, Timestamp timestamp(14), 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'; 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 char(128) not null, primary key (help_topic_id), unique index (name) ) engine=MyISAM CHARACTER SET utf8 comment='help topics'; 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 char(128) not null, primary key (help_category_id), unique index (name) ) engine=MyISAM CHARACTER SET utf8 comment='help categories'; 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'; 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 DEFAULT '' NOT NULL, returns char(64) DEFAULT '' NOT NULL, body longblob DEFAULT '' NOT NULL, definer char(77) collate utf8_bin DEFAULT '' NOT NULL, created timestamp, modified timestamp, sql_mode set( 'REAL_AS_FLOAT', 'PIPES_AS_CONCAT', 'ANSI_QUOTES', 'IGNORE_SPACE', 'NOT_USED', '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' ) DEFAULT '' NOT NULL, comment char(64) collate utf8_bin DEFAULT '' NOT NULL, PRIMARY KEY (db,name,type) ) engine=MyISAM character set utf8 comment='Stored Procedures'; 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','','','','',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); --- New file --- +++ scripts/mysql_test_data_timezone.sql 07/02/26 11:48:15 INSERT INTO time_zone_name (Name, Time_Zone_id) VALUES ('MET', 1), ('UTC', 2), ('Universal', 2), ('Europe/Moscow',3), ('leap/Europe/Moscow',4), ('Japan', 5); INSERT INTO time_zone (Time_zone_id, Use_leap_seconds) VALUES (1,'N'), (2,'N'), (3,'N'), (4,'Y'), (5,'N'); INSERT INTO time_zone_transition (Time_zone_id, Transition_time, Transition_type_id) VALUES (1, -1693706400, 0) ,(1, -1680483600, 1) ,(1, -1663455600, 2) ,(1, -1650150000, 3) ,(1, -1632006000, 2) ,(1, -1618700400, 3) ,(1, -938905200, 2) ,(1, -857257200, 3) ,(1, -844556400, 2) ,(1, -828226800, 3) ,(1, -812502000, 2) ,(1, -796777200, 3) ,(1, 228877200, 2) ,(1, 243997200, 3) ,(1, 260326800, 2) ,(1, 276051600, 3) ,(1, 291776400, 2) ,(1, 307501200, 3) ,(1, 323830800, 2) ,(1, 338950800, 3) ,(1, 354675600, 2) ,(1, 370400400, 3) ,(1, 386125200, 2) ,(1, 401850000, 3) ,(1, 417574800, 2) ,(1, 433299600, 3) ,(1, 449024400, 2) ,(1, 465354000, 3) ,(1, 481078800, 2) ,(1, 496803600, 3) ,(1, 512528400, 2) ,(1, 528253200, 3) ,(1, 543978000, 2) ,(1, 559702800, 3) ,(1, 575427600, 2) ,(1, 591152400, 3) ,(1, 606877200, 2) ,(1, 622602000, 3) ,(1, 638326800, 2) ,(1, 654656400, 3) ,(1, 670381200, 2) ,(1, 686106000, 3) ,(1, 701830800, 2) ,(1, 717555600, 3) ,(1, 733280400, 2)! ,(1, 749005200, 3) ,(1, 764730000, 2) ,(1, 780454800, 3) ,(1, 796179600, 2) ,(1, 811904400, 3) ,(1, 828234000, 2) ,(1, 846378000, 3) ,(1, 859683600, 2) ,(1, 877827600, 3) ,(1, 891133200, 2) ,(1, 909277200, 3) ,(1, 922582800, 2) ,(1, 941331600, 3) ,(1, 954032400, 2) ,(1, 972781200, 3) ,(1, 985482000, 2) ,(1, 1004230800, 3) ,(1, 1017536400, 2) ,(1, 1035680400, 3) ,(1, 1048986000, 2) ,(1, 1067130000, 3) ,(1, 1080435600, 2) ,(1, 1099184400, 3) ,(1, 1111885200, 2) ,(1, 1130634000, 3) ,(1, 1143334800, 2) ,(1, 1162083600, 3) ,(1, 1174784400, 2) ,(1, 1193533200, 3) ,(1, 1206838800, 2) ,(1, 1224982800, 3) ,(1, 1238288400, 2) ,(1, 1256432400, 3) ,(1, 1269738000, 2) ,(1, 1288486800, 3) ,(1, 1301187600, 2) ,(1, 1319936400, 3) ,(1, 1332637200, 2) ,(1, 1351386000, 3) ,(1, 1364691600, 2) ,(1, 1382835600, 3) ,(1, 1396141200, 2) ,(1, 1414285200, 3) ,(1, 1427590800, 2) ,(1, 1445734800, 3) ,(1, 1459040400, 2) ,(1, 1477789200, 3) ,(1, 1490490000, 2) ,(1, 1509238800, 3)! ,(1, 1521939600, 2) ,(1, 1540688400, 3) ,(1, 1553994000, 2)! ,(1, 15 72138000, 3) ,(1, 1585443600, 2) ,(1, 1603587600, 3) ,(1, 1616893200, 2) ,(1, 1635642000, 3) ,(1, 1648342800, 2) ,(1, 1667091600, 3) ,(1, 1679792400, 2) ,(1, 1698541200, 3) ,(1, 1711846800, 2) ,(1, 1729990800, 3) ,(1, 1743296400, 2) ,(1, 1761440400, 3) ,(1, 1774746000, 2) ,(1, 1792890000, 3) ,(1, 1806195600, 2) ,(1, 1824944400, 3) ,(1, 1837645200, 2) ,(1, 1856394000, 3) ,(1, 1869094800, 2) ,(1, 1887843600, 3) ,(1, 1901149200, 2) ,(1, 1919293200, 3) ,(1, 1932598800, 2) ,(1, 1950742800, 3) ,(1, 1964048400, 2) ,(1, 1982797200, 3) ,(1, 1995498000, 2) ,(1, 2014246800, 3) ,(1, 2026947600, 2) ,(1, 2045696400, 3) ,(1, 2058397200, 2) ,(1, 2077146000, 3) ,(1, 2090451600, 2) ,(1, 2108595600, 3) ,(1, 2121901200, 2) ,(1, 2140045200, 3) ,(3, -1688265000, 2) ,(3, -1656819048, 1) ,(3, -1641353448, 2) ,(3, -1627965048, 3) ,(3, -1618716648, 1) ,(3, -1596429048, 3) ,(3, -1593829848, 5) ,(3, -1589860800, 4) ,(3, -1542427200, 5) ,(3, -1539493200, 6) ,(3, -1525323600, 5) ,! (3, -1522728000, 4) ,(3, -1491188400, 7) ,(3, -1247536800, 4) ,(3, 354920400, 5) ,(3, 370728000, 4) ,(3, 386456400, 5) ,(3, 402264000, 4) ,(3, 417992400, 5) ,(3, 433800000, 4) ,(3, 449614800, 5) ,(3, 465346800, 8) ,(3, 481071600, 9) ,(3, 496796400, 8) ,(3, 512521200, 9) ,(3, 528246000, 8) ,(3, 543970800, 9) ,(3, 559695600, 8) ,(3, 575420400, 9) ,(3, 591145200, 8) ,(3, 606870000, 9) ,(3, 622594800, 8) ,(3, 638319600, 9) ,(3, 654649200, 8) ,(3, 670374000, 10) ,(3, 686102400, 11) ,(3, 695779200, 8) ,(3, 701812800, 5) ,(3, 717534000, 4) ,(3, 733273200, 9) ,(3, 748998000, 8) ,(3, 764722800, 9) ,(3, 780447600, 8) ,(3, 796172400, 9) ,(3, 811897200, 8) ,(3, 828226800, 9) ,(3, 846370800, 8) ,(3, 859676400, 9) ,(3, 877820400, 8) ,(3, 891126000, 9) ,(3, 909270000, 8) ,(3, 922575600, 9) ,(3, 941324400, 8) ,(3, 954025200, 9) ,(3, 972774000, 8) ,(3, 985474800, 9) ,(3, 1004223600, 8) ,(3, 1017529200, 9) ,(3, 1035673200, 8) ,(3, 1048978800, 9) ,(3, 1067122800, 8) ,! (3, 1080428400, 9) ,(3, 1099177200, 8) ,(3, 1111878000, 9) ,! (3, 1130 626800, 8) ,(3, 1143327600, 9) ,(3, 1162076400, 8) ,(3, 1174777200, 9) ,(3, 1193526000, 8) ,(3, 1206831600, 9) ,(3, 1224975600, 8) ,(3, 1238281200, 9) ,(3, 1256425200, 8) ,(3, 1269730800, 9) ,(3, 1288479600, 8) ,(3, 1301180400, 9) ,(3, 1319929200, 8) ,(3, 1332630000, 9) ,(3, 1351378800, 8) ,(3, 1364684400, 9) ,(3, 1382828400, 8) ,(3, 1396134000, 9) ,(3, 1414278000, 8) ,(3, 1427583600, 9) ,(3, 1445727600, 8) ,(3, 1459033200, 9) ,(3, 1477782000, 8) ,(3, 1490482800, 9) ,(3, 1509231600, 8) ,(3, 1521932400, 9) ,(3, 1540681200, 8) ,(3, 1553986800, 9) ,(3, 1572130800, 8) ,(3, 1585436400, 9) ,(3, 1603580400, 8) ,(3, 1616886000, 9) ,(3, 1635634800, 8) ,(3, 1648335600, 9) ,(3, 1667084400, 8) ,(3, 1679785200, 9) ,(3, 1698534000, 8) ,(3, 1711839600, 9) ,(3, 1729983600, 8) ,(3, 1743289200, 9) ,(3, 1761433200, 8) ,(3, 1774738800, 9) ,(3, 1792882800, 8) ,(3, 1806188400, 9) ,(3, 1824937200, 8) ,(3, 1837638000, 9) ,(3, 1856386800, 8) ,(3, 1869087600, 9) ,(3, 188783640! 0, 8) ,(3, 1901142000, 9) ,(3, 1919286000, 8) ,(3, 1932591600, 9) ,(3, 1950735600, 8) ,(3, 1964041200, 9) ,(3, 1982790000, 8) ,(3, 1995490800, 9) ,(3, 2014239600, 8) ,(3, 2026940400, 9) ,(3, 2045689200, 8) ,(3, 2058390000, 9) ,(3, 2077138800, 8) ,(3, 2090444400, 9) ,(3, 2108588400, 8) ,(3, 2121894000, 9) ,(3, 2140038000, 8) ,(4, -1688265000, 2) ,(4, -1656819048, 1) ,(4, -1641353448, 2) ,(4, -1627965048, 3) ,(4, -1618716648, 1) ,(4, -1596429048, 3) ,(4, -1593829848, 5) ,(4, -1589860800, 4) ,(4, -1542427200, 5) ,(4, -1539493200, 6) ,(4, -1525323600, 5) ,(4, -1522728000, 4) ,(4, -1491188400, 7) ,(4, -1247536800, 4) ,(4, 354920409, 5) ,(4, 370728010, 4) ,(4, 386456410, 5) ,(4, 402264011, 4) ,(4, 417992411, 5) ,(4, 433800012, 4) ,(4, 449614812, 5) ,(4, 465346812, 8) ,(4, 481071612, 9) ,(4, 496796413, 8) ,(4, 512521213, 9) ,(4, 528246013, 8) ,(4, 543970813, 9) ,(4, 559695613, 8) ,(4, 575420414, 9) ,(4, 591145214, 8) ,(4, 606870014, 9) ,(4, 622594814, 8) ,! (4, 638319615, 9) ,(4, 654649215, 8) ,(4, 670374016, 10) ,(4,! 6861024 16, 11) ,(4, 695779216, 8) ,(4, 701812816, 5) ,(4, 717534017, 4) ,(4, 733273217, 9) ,(4, 748998018, 8) ,(4, 764722818, 9) ,(4, 780447619, 8) ,(4, 796172419, 9) ,(4, 811897219, 8) ,(4, 828226820, 9) ,(4, 846370820, 8) ,(4, 859676420, 9) ,(4, 877820421, 8) ,(4, 891126021, 9) ,(4, 909270021, 8) ,(4, 922575622, 9) ,(4, 941324422, 8) ,(4, 954025222, 9) ,(4, 972774022, 8) ,(4, 985474822, 9) ,(4, 1004223622, 8) ,(4, 1017529222, 9) ,(4, 1035673222, 8) ,(4, 1048978822, 9) ,(4, 1067122822, 8) ,(4, 1080428422, 9) ,(4, 1099177222, 8) ,(4, 1111878022, 9) ,(4, 1130626822, 8) ,(4, 1143327622, 9) ,(4, 1162076422, 8) ,(4, 1174777222, 9) ,(4, 1193526022, 8) ,(4, 1206831622, 9) ,(4, 1224975622, 8) ,(4, 1238281222, 9) ,(4, 1256425222, 8) ,(4, 1269730822, 9) ,(4, 1288479622, 8) ,(4, 1301180422, 9) ,(4, 1319929222, 8) ,(4, 1332630022, 9) ,(4, 1351378822, 8) ,(4, 1364684422, 9) ,(4, 1382828422, 8) ,(4, 1396134022, 9) ,(4, 1414278022, 8) ,(4, 1427583622, 9) ,(4, 1445727622,! 8) ,(4, 1459033222, 9) ,(4, 1477782022, 8) ,(4, 1490482822, 9) ,(4, 1509231622, 8) ,(4, 1521932422, 9) ,(4, 1540681222, 8) ,(4, 1553986822, 9) ,(4, 1572130822, 8) ,(4, 1585436422, 9) ,(4, 1603580422, 8) ,(4, 1616886022, 9) ,(4, 1635634822, 8) ,(4, 1648335622, 9) ,(4, 1667084422, 8) ,(4, 1679785222, 9) ,(4, 1698534022, 8) ,(4, 1711839622, 9) ,(4, 1729983622, 8) ,(4, 1743289222, 9) ,(4, 1761433222, 8) ,(4, 1774738822, 9) ,(4, 1792882822, 8) ,(4, 1806188422, 9) ,(4, 1824937222, 8) ,(4, 1837638022, 9) ,(4, 1856386822, 8) ,(4, 1869087622, 9) ,(4, 1887836422, 8) ,(4, 1901142022, 9) ,(4, 1919286022, 8) ,(4, 1932591622, 9) ,(4, 1950735622, 8) ,(4, 1964041222, 9) ,(4, 1982790022, 8) ,(4, 1995490822, 9) ,(4, 2014239622, 8) ,(4, 2026940422, 9) ,(4, 2045689222, 8) ,(4, 2058390022, 9) ,(4, 2077138822, 8) ,(4, 2090444422, 9) ,(4, 2108588422, 8) ,(4, 2121894022, 9) ,(4, 2140038022, 8) ,(5, -1009875600, 1); INSERT INTO time_zone_transition_type (Time_zone_id, Transition_type_id, Offset, Is_DST, Abbreviation) VALUES (1, 0, 7200, 1, 'MEST') ,(1, 1, 3600, 0, 'MET') ,(1, 2, 7200, 1, 'MEST') ,(1, 3, 3600, 0, 'MET') ,(2, 0, 0, 0, 'UTC') ,(3, 0, 9000, 0, 'MMT') ,(3, 1, 12648, 1, 'MST') ,(3, 2, 9048, 0, 'MMT') ,(3, 3, 16248, 1, 'MDST') ,(3, 4, 10800, 0, 'MSK') ,(3, 5, 14400, 1, 'MSD') ,(3, 6, 18000, 1, 'MSD') ,(3, 7, 7200, 0, 'EET') ,(3, 8, 10800, 0, 'MSK') ,(3, 9, 14400, 1, 'MSD') ,(3, 10, 10800, 1, 'EEST') ,(3, 11, 7200, 0, 'EET') ,(4, 0, 9000, 0, 'MMT') ,(4, 1, 12648, 1, 'MST') ,(4, 2, 9048, 0, 'MMT') ,(4, 3, 16248, 1, 'MDST') ,(4, 4, 10800, 0, 'MSK') ,(4, 5, 14400, 1, 'MSD') ,(4, 6, 18000, 1, 'MSD') ,(4, 7, 7200, 0, 'EET') ,(4, 8, 10800, 0, 'MSK') ,(4, 9, 14400, 1, 'MSD') ,(4, 10, 10800, 1, 'EEST') ,(4, 11, 7200, 0, 'EET') ,(5, 0, 32400, 0, 'CJT') ,(5, 1, 32400, 0, 'JST'); INSERT INTO time_zone_leap_second (Transition_time, Correction) VALUES (78796800, 1) ,(94694401, 2) ,(126230402, 3) ,(157766403, 4) ,(189302404, 5) ,(220924805, 6) ,(252460806, 7) ,(283996807, 8) ,(315532808, 9) ,(362793609, 10) ,(394329610, 11) ,(425865611, 12) ,(489024012, 13) ,(567993613, 14) ,(631152014, 15) ,(662688015, 16) ,(709948816, 17) ,(741484817, 18) ,(773020818, 19) ,(820454419, 20) ,(867715220, 21) ,(915148821, 22); --- 1.31/mysql-test/r/sp-security.result 2006-07-13 15:12:27 +02:00 +++ 1.32/mysql-test/r/sp-security.result 2007-02-26 11:48:15 +01:00 @@ -45,7 +45,7 @@ db1_secret select * from db1_secret.t1; ERROR 42000: SELECT command denied to user ''@'localhost' for table 't1' create procedure db1_secret.dummy() begin end; -ERROR 42000: Access denied for user ''@'localhost' to database 'db1_secret' +ERROR 42000: Access denied for user ''@'%' to database 'db1_secret' drop procedure db1_secret.dummy; ERROR 42000: PROCEDURE db1_secret.dummy does not exist select * from t1; @@ -76,9 +76,9 @@ ERROR 42000: Access denied for user 'use select db1_secret.db(); ERROR 42000: Access denied for user 'user1'@'localhost' to database 'db1_secret' call db1_secret.stamp(6); -ERROR 42000: Access denied for user ''@'localhost' to database 'db1_secret' +ERROR 42000: Access denied for user ''@'%' to database 'db1_secret' select db1_secret.db(); -ERROR 42000: Access denied for user ''@'localhost' to database 'db1_secret' +ERROR 42000: Access denied for user ''@'%' to database 'db1_secret' drop database if exists db2; create database db2; use db2; --- 1.241/BitKeeper/etc/ignore 2007-02-13 10:00:45 +01:00 +++ 1.242/BitKeeper/etc/ignore 2007-02-26 11:48:21 +01:00 @@ -1335,3 +1335,4 @@ win/vs71cache.txt win/vs8cache.txt zlib/*.ds? zlib/*.vcproj +scripts/mysql_fix_privilege_tables.sql --- 1.85/mysql-test/Makefile.am 2007-02-02 23:05:44 +01:00 +++ 1.86/mysql-test/Makefile.am 2007-02-26 11:48:15 +01:00 @@ -66,7 +66,6 @@ dist-hook: $(INSTALL_DATA) $(srcdir)/std_data/*.frm $(distdir)/std_data $(INSTALL_DATA) $(srcdir)/std_data/*.MY* $(distdir)/std_data $(INSTALL_DATA) $(srcdir)/std_data/*.cnf $(distdir)/std_data - $(INSTALL_DATA) $(srcdir)/lib/init_db.sql $(distdir)/lib $(INSTALL_DATA) $(srcdir)/lib/*.pl $(distdir)/lib install-data-local: @@ -98,7 +97,6 @@ install-data-local: $(INSTALL_DATA) $(srcdir)/std_data/*.frm $(DESTDIR)$(testdir)/std_data $(INSTALL_DATA) $(srcdir)/std_data/*.MY* $(DESTDIR)$(testdir)/std_data $(INSTALL_DATA) $(srcdir)/std_data/*.cnf $(DESTDIR)$(testdir)/std_data - $(INSTALL_DATA) $(srcdir)/lib/init_db.sql $(DESTDIR)$(testdir)/lib $(INSTALL_DATA) $(srcdir)/lib/*.pl $(DESTDIR)$(testdir)/lib uninstall-local: --- 1.8/mysql-test/t/overflow.test 2005-07-28 02:21:46 +02:00 +++ 1.9/mysql-test/t/overflow.test 2007-02-26 11:48:15 +01:00 @@ -1,4 +1,4 @@ -connect (con1,localhost,boo,,); +connect (con1,localhost,root,,); connection con1; -- error 1064,1102,1280 drop database AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA; --- 1.37/mysql-test/t/grant2.test 2006-08-10 04:23:40 +02:00 +++ 1.38/mysql-test/t/grant2.test 2007-02-26 11:48:15 +01:00 @@ -395,6 +395,8 @@ delete from mysql.user where user like ' flush privileges; drop database mysqltest_1; +--source include/add_anonymous_users.inc + # But anonymous users can't change their password connect (n5,localhost,test,,test,$MASTER_MYPORT,$MASTER_MYSOCK); connection n5; @@ -402,6 +404,8 @@ connection n5; set password = password("changed"); disconnect n5; connection default; + +--source include/delete_anonymous_users.inc # Bug #12423 "Deadlock when doing FLUSH PRIVILEGES and GRANT in --- 1.7/mysql-test/t/xa.test 2006-05-12 18:58:53 +02:00 +++ 1.8/mysql-test/t/xa.test 2007-02-26 11:48:15 +01:00 @@ -37,7 +37,7 @@ begin; --error 1399 create table t2 (a int); -connect (con1,localhost,,,); +connect (con1,localhost,root,,); connection con1; --error 1440 --- 1.22/mysql-test/t/rpl_temporary.test 2006-05-16 18:33:18 +02:00 +++ 1.23/mysql-test/t/rpl_temporary.test 2007-02-26 11:48:15 +01:00 @@ -1,3 +1,6 @@ +# Test need anonymous user when connection are made as "zedjzlcsjhd" +source include/add_anonymous_users.inc; + source include/master-slave.inc; # Clean up old slave's binlogs. @@ -20,8 +23,8 @@ connection master; connect (con1,localhost,root,,); connect (con2,localhost,root,,); # We want to connect as an unprivileged user. But if we use user="" then this -# will pick the Unix login, which will cause problems if you're running the test -# as root. +# will pick the Unix login, which will cause problems if you're running the +# test as root. connect (con3,localhost,zedjzlcsjhd,,); # We are going to use SET PSEUDO_THREAD_ID in this test; @@ -200,5 +203,8 @@ select * from t1; connection master; drop table t1; + +# Delete the anonymous users +source include/delete_anonymous_users.inc; # End of 5.0 tests