Commit 929e7eed authored by unknown's avatar unknown

Improved fix for bug#18516 (also 19353):

1) Rename the old shell tool "mysql_upgrade", to avoid a name collision.
2) Improve the spec file, to explicitly use a temporary socket.


scripts/mysql_upgrade_shell.sh:
  Rename: scripts/mysql_upgrade.sh -> scripts/mysql_upgrade_shell.sh
scripts/Makefile.am:
  The old shell script "mysql_upgrade" must be renamed, 
  so that its name does not collide with the new binary.
support-files/mysql.spec.sh:
  The previous version was incomplete, as it did not cover the case
  where the DBA had configured a non-default socket file.
  Solve that by creating and explicitly providing a temporary directory
  for the socket just for the duration of "mysql_upgrade", which also
  can be better protected than the default socket.
parent 3a216290
...@@ -32,7 +32,7 @@ bin_SCRIPTS = @server_scripts@ \ ...@@ -32,7 +32,7 @@ bin_SCRIPTS = @server_scripts@ \
mysqldumpslow \ mysqldumpslow \
mysql_explain_log \ mysql_explain_log \
mysql_tableinfo \ mysql_tableinfo \
mysql_upgrade \ mysql_upgrade_shell \
mysqld_multi \ mysqld_multi \
mysql_create_system_tables mysql_create_system_tables
...@@ -60,7 +60,7 @@ EXTRA_SCRIPTS = make_binary_distribution.sh \ ...@@ -60,7 +60,7 @@ EXTRA_SCRIPTS = make_binary_distribution.sh \
mysql_explain_log.sh \ mysql_explain_log.sh \
mysqld_multi.sh \ mysqld_multi.sh \
mysql_tableinfo.sh \ mysql_tableinfo.sh \
mysql_upgrade.sh \ mysql_upgrade_shell.sh \
mysqld_safe.sh \ mysqld_safe.sh \
mysql_create_system_tables.sh mysql_create_system_tables.sh
...@@ -89,7 +89,7 @@ CLEANFILES = @server_scripts@ \ ...@@ -89,7 +89,7 @@ CLEANFILES = @server_scripts@ \
mysqldumpslow \ mysqldumpslow \
mysql_explain_log \ mysql_explain_log \
mysql_tableinfo \ mysql_tableinfo \
mysql_upgrade \ mysql_upgrade_shell \
mysqld_multi \ mysqld_multi \
make_win_src_distribution \ make_win_src_distribution \
mysql_create_system_tables mysql_create_system_tables
......
...@@ -490,11 +490,19 @@ chown -R %{mysqld_user}:%{mysqld_group} $mysql_datadir ...@@ -490,11 +490,19 @@ chown -R %{mysqld_user}:%{mysqld_group} $mysql_datadir
# So ensure the server is isolated as much as possible, and start it so that # So ensure the server is isolated as much as possible, and start it so that
# passwords are not checked. # passwords are not checked.
# See the related change in the start script "/etc/init.d/mysql". # See the related change in the start script "/etc/init.d/mysql".
chmod 700 $mysql_datadir if type mktemp >/dev/null 2>&1
%{_sysconfdir}/init.d/mysql start --skip-networking --skip-grant-tables then
%{_bindir}/mysql_upgrade mysql_tmp_sockdir=`mktemp -dt`
else
PID=$$
mysql_tmp_sockdir=/tmp/mysql-$PID
( umask 077 ; mkdir $mysql_tmp_sockdir )
fi
chown %{mysqld_user}:%{mysqld_group} $mysql_tmp_sockdir
%{_sysconfdir}/init.d/mysql start --skip-networking --skip-grant-tables --socket=$mysql_tmp_sockdir/upgrade.sock
%{_bindir}/mysql_upgrade --socket=$mysql_tmp_sockdir/upgrade.sock
%{_sysconfdir}/init.d/mysql stop --skip-networking --skip-grant-tables %{_sysconfdir}/init.d/mysql stop --skip-networking --skip-grant-tables
chmod 755 $mysql_datadir rm -fr $mysql_tmp_sockdir
# Change permissions again to fix any new files. # Change permissions again to fix any new files.
chown -R %{mysqld_user}:%{mysqld_group} $mysql_datadir chown -R %{mysqld_user}:%{mysqld_group} $mysql_datadir
...@@ -732,6 +740,12 @@ fi ...@@ -732,6 +740,12 @@ fi
# itself - note that they must be ordered by date (important when # itself - note that they must be ordered by date (important when
# merging BK trees) # merging BK trees)
%changelog %changelog
* Thu Jun 22 2006 Joerg Bruehe <joerg@mysql.com>
- Close a gap of the previous version by explicitly using
a newly created temporary directory for the socket to be used
in the "mysql_upgrade" operation, overriding any local setting.
* Tue Jun 20 2006 Joerg Bruehe <joerg@mysql.com> * Tue Jun 20 2006 Joerg Bruehe <joerg@mysql.com>
- To run "mysql_upgrade", we need a running server; - To run "mysql_upgrade", we need a running server;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment