summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorunknown <msvensson@pilot.blaudden>2007-02-28 14:26:58 +0100
committerunknown <msvensson@pilot.blaudden>2007-02-28 14:26:58 +0100
commit838e89dea60b7215a39c80824764d92f951dd5c4 (patch)
tree6d9ef281e8fe580bf7b58a5e481dde0fd7a5c123 /scripts
parentdda46f74f0f9a69e20a7647bf76c5c3d1752f20f (diff)
downloadmariadb-git-838e89dea60b7215a39c80824764d92f951dd5c4.tar.gz
Bug#20166 mysql-test-run.pl does not test system privilege tables creation
- Split out initial data in mysql_system_tables.sql to it's own file - Use file from mysql_install_db and mysql-test-run scripts/mysql_system_tables_fix.sql: Rename: scripts/mysql_fix_privilege_tables.sql.in -> scripts/mysql_system_tables_fix.sql mysql-test/mysql-test-run.pl: - Add mysql_system_tables_data.sql as part of the bootstrap - Remove the addition of pid to end of bootstrap.sql, now to file used for bootstrap will be $opt_vardir/tmp/bootstrap.sql - Improve error message descibing how to find cause of a failed bootstrap scripts/Makefile.am: - Rename mysql_fix_privileg_tables.sql.in to mysql_system_tables_fix.sql - Build mysql_fix_privilege_tables from mysql_system_tables.sql and mysql_system_tables_fix.sql - Add mysql_system_tables_fix.sql to EXTRA_DIST scripts/mysql_install_db.sh: - Use mysql_system_tables_data.sql file when bootstrapping mysql, it will contain initial data for MysQL system tables scripts/mysql_system_tables.sql: Move initial data for system tables to it's own file scripts/mysql_system_tables_data.sql: Move initial data for system tables to it's own file
Diffstat (limited to 'scripts')
-rw-r--r--scripts/Makefile.am16
-rw-r--r--scripts/mysql_install_db.sh12
-rw-r--r--scripts/mysql_system_tables.sql10
-rw-r--r--scripts/mysql_system_tables_data.sql13
-rw-r--r--scripts/mysql_system_tables_fix.sql (renamed from scripts/mysql_fix_privilege_tables.sql.in)0
5 files changed, 33 insertions, 18 deletions
diff --git a/scripts/Makefile.am b/scripts/Makefile.am
index d1c3bd82050..cca81cd8818 100644
--- a/scripts/Makefile.am
+++ b/scripts/Makefile.am
@@ -65,15 +65,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 \
@@ -94,8 +93,11 @@ CLEANFILES = @server_scripts@ \
mysql_upgrade_shell \
mysqld_multi \
make_win_src_distribution \
- 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
@@ -104,10 +106,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 ed5c8c97d6b..5dd5d86c666 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 03a0b36b985..5f5aea20729 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, 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';
@@ -57,9 +53,3 @@ 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','','','','',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_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 205bc93efea..205bc93efea 100644
--- a/scripts/mysql_fix_privilege_tables.sql.in
+++ b/scripts/mysql_system_tables_fix.sql