Check upgrade script added to warn about need for mysql_upgrade
This commit is contained in:
		
							parent
							
								
									c9f01efce7
								
							
						
					
					
						commit
						0d2208e0ac
					
				| @ -1,7 +1,7 @@ | |||||||
| diff -rup mysql-5.6.19-orig/scripts/CMakeLists.txt mysql-5.6.19/scripts/CMakeLists.txt
 | diff -rup mysql-5.6.19-orig/scripts/CMakeLists.txt mysql-5.6.19/scripts/CMakeLists.txt
 | ||||||
| --- mysql-5.6.19-orig/scripts/CMakeLists.txt	2014-07-22 10:07:12.053410263 +0200
 | --- mysql-5.6.19-orig/scripts/CMakeLists.txt	2014-07-22 10:07:12.053410263 +0200
 | ||||||
| +++ mysql-5.6.19/scripts/CMakeLists.txt	2014-07-22 10:10:44.102502369 +0200
 | +++ mysql-5.6.19/scripts/CMakeLists.txt	2014-07-22 10:10:44.102502369 +0200
 | ||||||
| @@ -381,6 +381,31 @@ ELSE()
 | @@ -381,6 +381,32 @@ ELSE()
 | ||||||
|      ENDIF() |      ENDIF() | ||||||
|      INSTALL_SCRIPT(${CMAKE_CURRENT_BINARY_DIR}/${file} COMPONENT ${${file}_COMPONENT}) |      INSTALL_SCRIPT(${CMAKE_CURRENT_BINARY_DIR}/${file} COMPONENT ${${file}_COMPONENT}) | ||||||
|    ENDFOREACH() |    ENDFOREACH() | ||||||
| @ -13,6 +13,7 @@ diff -rup mysql-5.6.19-orig/scripts/CMakeLists.txt mysql-5.6.19/scripts/CMakeLis | |||||||
| +    mysql-prepare-db-dir
 | +    mysql-prepare-db-dir
 | ||||||
| +    mysql-wait-ready
 | +    mysql-wait-ready
 | ||||||
| +    mysql-check-socket
 | +    mysql-check-socket
 | ||||||
|  | +    mysql-check-upgrade
 | ||||||
| +    mysql-scripts-common
 | +    mysql-scripts-common
 | ||||||
| +    mysql_config_multilib
 | +    mysql_config_multilib
 | ||||||
| +    mysql.init
 | +    mysql.init
 | ||||||
|  | |||||||
| @ -59,7 +59,7 @@ | |||||||
| 
 | 
 | ||||||
| Name:             %{pkgname} | Name:             %{pkgname} | ||||||
| Version:          5.6.21 | Version:          5.6.21 | ||||||
| Release:          2%{?dist} | Release:          3%{?dist} | ||||||
| Summary:          MySQL client programs and shared libraries | Summary:          MySQL client programs and shared libraries | ||||||
| Group:            Applications/Databases | Group:            Applications/Databases | ||||||
| URL:              http://www.mysql.com | URL:              http://www.mysql.com | ||||||
| @ -80,7 +80,8 @@ Source12:         mysql-prepare-db-dir.sh | |||||||
| Source13:         mysql-wait-ready.sh | Source13:         mysql-wait-ready.sh | ||||||
| Source14:         mysql-check-socket.sh | Source14:         mysql-check-socket.sh | ||||||
| Source15:         mysql-scripts-common.sh | Source15:         mysql-scripts-common.sh | ||||||
| Source18:         mysql.init.in | Source16:         mysql-check-upgrade.sh | ||||||
|  | Source19:         mysql.init.in | ||||||
| # To track rpmlint warnings | # To track rpmlint warnings | ||||||
| Source30:         mysql-5.6.10-rpmlintrc | Source30:         mysql-5.6.10-rpmlintrc | ||||||
| 
 | 
 | ||||||
| @ -403,7 +404,7 @@ add_test 'main.upgrade             : unknown' | |||||||
| popd | popd | ||||||
| 
 | 
 | ||||||
| cp %{SOURCE2} %{SOURCE3} %{SOURCE10} %{SOURCE11} %{SOURCE12} %{SOURCE13} \ | cp %{SOURCE2} %{SOURCE3} %{SOURCE10} %{SOURCE11} %{SOURCE12} %{SOURCE13} \ | ||||||
|    %{SOURCE14} %{SOURCE15} %{SOURCE18} scripts |    %{SOURCE14} %{SOURCE15} %{SOURCE16} %{SOURCE19} scripts | ||||||
| 
 | 
 | ||||||
| %build | %build | ||||||
| # fail quickly and obviously if user tries to build as root | # fail quickly and obviously if user tries to build as root | ||||||
| @ -519,6 +520,7 @@ install -D -p -m 755 scripts/mysql.init %{buildroot}%{_initddir}/%{daemon_name} | |||||||
| install -p -m 755 scripts/mysql-prepare-db-dir %{buildroot}%{_libexecdir}/mysql-prepare-db-dir | install -p -m 755 scripts/mysql-prepare-db-dir %{buildroot}%{_libexecdir}/mysql-prepare-db-dir | ||||||
| install -p -m 755 scripts/mysql-wait-ready %{buildroot}%{_libexecdir}/mysql-wait-ready | install -p -m 755 scripts/mysql-wait-ready %{buildroot}%{_libexecdir}/mysql-wait-ready | ||||||
| install -p -m 755 scripts/mysql-check-socket %{buildroot}%{_libexecdir}/mysql-check-socket | install -p -m 755 scripts/mysql-check-socket %{buildroot}%{_libexecdir}/mysql-check-socket | ||||||
|  | install -p -m 755 scripts/mysql-check-upgrade %{buildroot}%{_libexecdir}/mysql-check-upgrade | ||||||
| install -p -m 644 scripts/mysql-scripts-common %{buildroot}%{_libexecdir}/mysql-scripts-common | install -p -m 644 scripts/mysql-scripts-common %{buildroot}%{_libexecdir}/mysql-scripts-common | ||||||
| 
 | 
 | ||||||
| # mysql-test includes one executable that doesn't belong under /usr/share, | # mysql-test includes one executable that doesn't belong under /usr/share, | ||||||
| @ -852,6 +854,7 @@ fi | |||||||
| %{_libexecdir}/mysql-prepare-db-dir | %{_libexecdir}/mysql-prepare-db-dir | ||||||
| %{_libexecdir}/mysql-wait-ready | %{_libexecdir}/mysql-wait-ready | ||||||
| %{_libexecdir}/mysql-check-socket | %{_libexecdir}/mysql-check-socket | ||||||
|  | %{_libexecdir}/mysql-check-upgrade | ||||||
| %{_libexecdir}/mysql-scripts-common | %{_libexecdir}/mysql-scripts-common | ||||||
| 
 | 
 | ||||||
| %{?with_init_systemd:%{_tmpfilesdir}/%{name}.conf} | %{?with_init_systemd:%{_tmpfilesdir}/%{name}.conf} | ||||||
| @ -897,6 +900,9 @@ fi | |||||||
| %endif | %endif | ||||||
| 
 | 
 | ||||||
| %changelog | %changelog | ||||||
|  | * Mon Sep 29 2014 Honza Horak <hhorak@redhat.com> - 5.6.21-3 | ||||||
|  | - Check upgrade script added to warn about need for mysql_upgrade | ||||||
|  | 
 | ||||||
| * Thu Sep 25 2014 Bjorn Munch <bjorn.munch@oracle.com> - 5.6.21-2 | * Thu Sep 25 2014 Bjorn Munch <bjorn.munch@oracle.com> - 5.6.21-2 | ||||||
| - Using %%cmake macro break some tests, reverted | - Using %%cmake macro break some tests, reverted | ||||||
| - Unwanted dtrace dep fixed upstream | - Unwanted dtrace dep fixed upstream | ||||||
|  | |||||||
							
								
								
									
										39
									
								
								mysql-check-upgrade.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								mysql-check-upgrade.sh
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,39 @@ | |||||||
|  | #!/bin/sh | ||||||
|  | 
 | ||||||
|  | source "`dirname ${BASH_SOURCE[0]}`/mysql-scripts-common" | ||||||
|  | 
 | ||||||
|  | upgrade_info_file="$datadir/mysql_upgrade_info" | ||||||
|  | version=0 | ||||||
|  | # get version as integer from mysql_upgrade_info file | ||||||
|  | if [ -f "$upgrade_info_file" ] && [ -r "$upgrade_info_file" ] ; then | ||||||
|  |     version_major=$(cat "$upgrade_info_file" | head -n 1 | sed -e 's/\([0-9]*\)\.\([0-9]*\)\..*$/\1/') | ||||||
|  |     version_minor=$(cat "$upgrade_info_file" | head -n 1 | sed -e 's/\([0-9]*\)\.\([0-9]*\)\..*$/\2/') | ||||||
|  |     if [[ $version_major =~ ^[0-9]+$ ]] && [[ $version_minor =~ ^[0-9]+$ ]] ; then | ||||||
|  |         version=$((version_major*100+version_minor)) | ||||||
|  |     fi | ||||||
|  | fi | ||||||
|  | 
 | ||||||
|  | # compute current version as integer | ||||||
|  | thisversion=$((@MAJOR_VERSION@*100+@MINOR_VERSION@)) | ||||||
|  | 
 | ||||||
|  | # provide warning in cases we should run mysql_upgrade | ||||||
|  | if [ $version -ne $thisversion ] ; then | ||||||
|  | 
 | ||||||
|  |     # give extra warning if some version seems to be skipped | ||||||
|  |     if [ $version -gt 0 ] && [ $version -lt 505 ] ; then | ||||||
|  |         echo "The datadir located at $datadir seems to be older than of a version 5.5. Please, mind that as a general rule, to upgrade from one release series to another, go to the next series rather than skipping a series." >&2 | ||||||
|  |     fi | ||||||
|  | 
 | ||||||
|  |     cat <<EOF >&2 | ||||||
|  | The datadir located at $datadir needs to be upgraded using 'mysql_upgrade' tool. This can be done using the following steps: | ||||||
|  | 
 | ||||||
|  |   1. Back-up your data before running 'mysql_upgrade' | ||||||
|  |   2. Start the database daemon using 'systemctl start @DAEMON_NAME@.service' | ||||||
|  |   3. Run 'mysql_upgrade' with a database user that has sufficent privileges | ||||||
|  | 
 | ||||||
|  | Read more about 'mysql_upgrade' usage at: | ||||||
|  | http://dev.mysql.com/doc/refman/5.6/en/mysql-upgrade.html | ||||||
|  | EOF | ||||||
|  | fi | ||||||
|  | 
 | ||||||
|  | exit 0 | ||||||
| @ -80,6 +80,8 @@ if [ ! -d "$datadir/mysql" ] ; then | |||||||
|         fi |         fi | ||||||
|         exit $ret |         exit $ret | ||||||
|     fi |     fi | ||||||
|  |     # upgrade does not need to be run on a fresh datadir | ||||||
|  |     echo "@VERSION@" >"$datadir/mysql_upgrade_info" | ||||||
|     # In case we're running as root, make sure files are owned properly |     # In case we're running as root, make sure files are owned properly | ||||||
|     chown -R "$myuser:$mygroup" "$datadir" |     chown -R "$myuser:$mygroup" "$datadir" | ||||||
| fi | fi | ||||||
|  | |||||||
| @ -38,6 +38,7 @@ ExecStartPre=@libexecdir@/mysql-prepare-db-dir %n | |||||||
| # per bug #547485 | # per bug #547485 | ||||||
| ExecStart=@bindir@/mysqld_safe --basedir=@prefix@ | ExecStart=@bindir@/mysqld_safe --basedir=@prefix@ | ||||||
| ExecStartPost=@libexecdir@/mysql-wait-ready $MAINPID | ExecStartPost=@libexecdir@/mysql-wait-ready $MAINPID | ||||||
|  | ExecStartPost=@libexecdir@/mysql-check-upgrade | ||||||
| 
 | 
 | ||||||
| # Give a reasonable amount of time for the server to start up/shut down | # Give a reasonable amount of time for the server to start up/shut down | ||||||
| TimeoutSec=300 | TimeoutSec=300 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user