summaryrefslogtreecommitdiff
path: root/scripts/mysql_fix_privilege_tables.sh
diff options
context:
space:
mode:
authorunknown <monty@mashka.mysql.fi>2003-01-16 20:47:46 +0200
committerunknown <monty@mashka.mysql.fi>2003-01-16 20:47:46 +0200
commit9c2267bf5837552999c2b1458310c66283683243 (patch)
treee1fdb60db4adfe4fafddb5d063b62fbb7cff6326 /scripts/mysql_fix_privilege_tables.sh
parent6392a2254779a655043ac0e5c06f91c675ad4c07 (diff)
parent86d47bec1d2f698fca2708e8625f04dda810df3b (diff)
downloadmariadb-git-9c2267bf5837552999c2b1458310c66283683243.tar.gz
Merge with 3.23
innobase/btr/btr0btr.c: Auto merged ltconfig: Auto merged innobase/include/btr0btr.h: Auto merged innobase/log/log0log.c: Auto merged libmysql/Makefile.shared: Auto merged man/isamlog.1: Auto merged man/mysql.1: Auto merged man/mysql_zap.1: Auto merged man/isamchk.1: Auto merged man/mysqlaccess.1: Auto merged man/mysqladmin.1: Auto merged man/mysqld_multi.1: Auto merged man/mysqld.1: Auto merged man/mysqld_safe.1: Auto merged man/mysqldump.1: Auto merged man/mysqlshow.1: Auto merged man/replace.1: Auto merged myisam/mi_unique.c: Auto merged scripts/mysqld_safe.sh: Auto merged sql/net_pkg.cc: Auto merged sql/sql_table.cc: Auto merged strings/Makefile.am: Auto merged man/perror.1: Auto merged Makefile.am: merge with 3.23 client/mysqltest.c: merge with 3.23 innobase/btr/btr0pcur.c: merge with 3.23 (use local file) innobase/row/row0purge.c: merge with 3.23 (use local file) scripts/mysql_fix_privilege_tables.sh: Merge with 3.23 (Apply debian patches) sql/ha_innodb.cc: merge with 3.23 (use local file) sql/mysqld.cc: Merge with 3.23 (use local file) sql/net_serv.cc: Merge with 3.23 (use local file) sql/sql_db.cc: Merge with 3.23 (use local file)
Diffstat (limited to 'scripts/mysql_fix_privilege_tables.sh')
-rw-r--r--scripts/mysql_fix_privilege_tables.sh40
1 files changed, 24 insertions, 16 deletions
diff --git a/scripts/mysql_fix_privilege_tables.sh b/scripts/mysql_fix_privilege_tables.sh
index 247e3399b8b..09259779855 100644
--- a/scripts/mysql_fix_privilege_tables.sh
+++ b/scripts/mysql_fix_privilege_tables.sh
@@ -1,19 +1,27 @@
#!/bin/sh
echo "This scripts updates the mysql.user, mysql.db, mysql.host and the"
-echo "mysql.func table to MySQL 3.22.14 and above."
+echo "mysql.func tables to MySQL 3.22.14 and above."
echo ""
echo "This is needed if you want to use the new GRANT functions,"
-echo "CREATE AGGREAGATE FUNCTION or want to use the more secure passwords in 3.23"
+echo "CREATE AGGREGATE FUNCTION or want to use the more secure passwords in 3.23"
echo ""
-echo "If you get Access denied errors, you should run this script again"
-echo "and give the MySQL root user password as a argument!"
+echo "If you get 'Access denied' errors, you should run this script again"
+echo "and give the MySQL root user password as an argument!"
root_password="$1"
host="localhost"
+user="root"
+
+if test -z $1 ; then
+ cmd="@bindir@/mysql -f --user=$user --host=$host mysql"
+else
+ root_password="$1"
+ cmd="@bindir@/mysql -f --user=$user --password=$root_password --host=$host mysql"
+fi
echo "Converting all privilege tables to MyISAM format"
-@bindir@/mysql -f --user=root --password="$root_password" --host="$host" mysql <<END_OF_DATA
+$cmd <<END_OF_DATA
ALTER TABLE user type=MyISAM;
ALTER TABLE db type=MyISAM;
ALTER TABLE host type=MyISAM;
@@ -28,7 +36,7 @@ echo ""
echo "If your tables are already up to date or partially up to date you will"
echo "get some warnings about 'Duplicated column name'. You can safely ignore these!"
-@bindir@/mysql -f --user=root --password="$root_password" --host="$host" mysql <<END_OF_DATA
+$cmd <<END_OF_DATA
alter table user change password password char(16) NOT NULL;
alter table user add File_priv enum('N','Y') NOT NULL;
CREATE TABLE if not exists func (
@@ -45,7 +53,7 @@ echo ""
echo "Creating Grant Alter and Index privileges if they don't exists"
echo "You can ignore any Duplicate column errors"
-@bindir@/mysql --user=root --password="$root_password" --host="$host" mysql <<END_OF_DATA
+$cmd <<END_OF_DATA
alter table user add Grant_priv enum('N','Y') NOT NULL,add References_priv enum('N','Y') NOT NULL,add Index_priv enum('N','Y') NOT NULL,add Alter_priv enum('N','Y') NOT NULL;
alter table host add Grant_priv enum('N','Y') NOT NULL,add References_priv enum('N','Y') NOT NULL,add Index_priv enum('N','Y') NOT NULL,add Alter_priv enum('N','Y') NOT NULL;
alter table db add Grant_priv enum('N','Y') NOT NULL,add References_priv enum('N','Y') NOT NULL,add Index_priv enum('N','Y') NOT NULL,add Alter_priv enum('N','Y') NOT NULL;
@@ -59,7 +67,7 @@ echo ""
if test $res = 0
then
echo "Setting default privileges for the new grant, index and alter privileges"
- @bindir@/mysql --user=root --password="$root_password" --host="$host" mysql <<END_OF_DATA
+ $cmd <<END_OF_DATA
UPDATE user SET Grant_priv=File_priv,References_priv=Create_priv,Index_priv=Create_priv,Alter_priv=Create_priv;
UPDATE db SET References_priv=Create_priv,Index_priv=Create_priv,Alter_priv=Create_priv;
UPDATE host SET References_priv=Create_priv,Index_priv=Create_priv,Alter_priv=Create_priv;
@@ -72,7 +80,7 @@ fi
echo "Adding columns needed by GRANT .. REQUIRE (openssl)"
echo "You can ignore any Duplicate column errors"
-@bindir@/mysql -f --user=root --password="$root_password" --host="$host" mysql <<END_OF_DATA
+$cmd <<END_OF_DATA
ALTER TABLE user
ADD ssl_type enum('','ANY','X509', 'SPECIFIED') NOT NULL,
ADD ssl_cipher BLOB NOT NULL,
@@ -88,7 +96,7 @@ echo ""
echo "Creating the new table and column privilege tables"
-@bindir@/mysql -f --user=root --password="$root_password" --host="$host" mysql <<END_OF_DATA
+$cmd <<END_OF_DATA
CREATE TABLE IF NOT EXISTS tables_priv (
Host char(60) DEFAULT '' NOT NULL,
Db char(60) DEFAULT '' NOT NULL,
@@ -119,7 +127,7 @@ END_OF_DATA
echo "Changing name of columns_priv.Type -> columns_priv.Column_priv"
echo "You can ignore any Unknown column errors from this"
-@bindir@/mysql -f --user=root --password="$root_password" --host="$host" mysql <<END_OF_DATA
+$cmd <<END_OF_DATA
ALTER TABLE columns_priv change Type Column_priv set('Select','Insert','Update','References') DEFAULT '' NOT NULL;
END_OF_DATA
echo ""
@@ -131,7 +139,7 @@ echo ""
echo "Fixing the func table"
echo "You can ignore any Duplicate column errors"
-@bindir@/mysql --user=root --password=$root_password mysql <<EOF
+$cmd <<EOF
alter table func add type enum ('function','aggregate') NOT NULL;
EOF
echo ""
@@ -143,7 +151,7 @@ echo ""
echo "Adding new fields used by MySQL 4.0.2 to the privilege tables"
echo "You can ignore any Duplicate column errors"
-@bindir@/mysql --user=root --password="$root_password" --host="$host" mysql <<END_OF_DATA
+$cmd <<END_OF_DATA
alter table user
add Show_db_priv enum('N','Y') DEFAULT 'N' NOT NULL AFTER alter_priv,
add Super_priv enum('N','Y') DEFAULT 'N' NOT NULL AFTER Show_db_priv,
@@ -159,7 +167,7 @@ then
# Convert privileges so that users have similar privileges as before
echo ""
echo "Updating new privileges in MySQL 4.0.2 from old ones"
- @bindir@/mysql --user=root --password="$root_password" --host="$host" mysql <<END_OF_DATA
+ $cmd <<END_OF_DATA
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<>"";
END_OF_DATA
echo ""
@@ -168,7 +176,7 @@ fi
# Add fields that can be used to limit number of questions and connections
# for some users.
-@bindir@/mysql -f --user=root --password="$root_password" --host="$host" mysql <<END_OF_DATA
+$cmd <<END_OF_DATA
alter table user
add max_questions int(11) NOT NULL AFTER x509_subject,
add max_updates int(11) unsigned NOT NULL AFTER max_questions,
@@ -179,7 +187,7 @@ END_OF_DATA
# Add Create_tmp_table_priv and Lock_tables_priv to db and host
#
-@bindir@/mysql --user=root --password="$root_password" --host="$host" mysql <<END_OF_DATA
+$cmd <<END_OF_DATA
alter table db
add Create_tmp_table_priv enum('N','Y') DEFAULT 'N' NOT NULL,
add Lock_tables_priv enum('N','Y') DEFAULT 'N' NOT NULL;